Pagina 1 di 1

lista della spesa del buon compilatore di kernels... :)

Inviato: dom 3 lug 2005, 17:23
da absinthe
salve,

ho da poco riformattato la partizione di linux reinstallando un sistema minimale per poi aggiungere ad ogni evenienza i pacchetti indispensabili per una certa operazione. mi trovo ora a dover ricompilare il kernel 2.6.10 fornito con la slackc 10.1 però make menuconfig mi produce una fracca di errori che riporto in coda a questo messaggio. credo mi manchi qualche libreria di c. io ho installato i seguenti pacchetti:

sorgente completo del kernel 2.6.10
binutils
gcc
make
ncurses (per make menuconfig)
e le glibc

...cosa manca?

grazie,
M.

l'errore:

HOSTCC scripts/basic/fixdep
In file included from /usr/include/bits/posix1_lim.h:153,
from /usr/include/limits.h:144,
from /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/include/limits.h:122,
from /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/include/syslimits.h:7,
from /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/include/limits.h:11,
from scripts/basic/fixdep.c:113:
/usr/include/bits/local_lim.h:36:26: linux/limits.h: No such file or directory
In file included from /usr/include/sys/socket.h:35,
from /usr/include/netinet/in.h:24,
from /usr/include/arpa/inet.h:23,
from scripts/basic/fixdep.c:115:
/usr/include/bits/socket.h:304:24: asm/socket.h: No such file or directory
scripts/basic/fixdep.c: In function `use_config':
scripts/basic/fixdep.c:201: error: `PATH_MAX' undeclared (first use in this function)
scripts/basic/fixdep.c:201: error: (Each undeclared identifier is reported only once
scripts/basic/fixdep.c:201: error: for each function it appears in.)
scripts/basic/fixdep.c:201: warning: unused variable `s'
scripts/basic/fixdep.c: In function `parse_dep_file':
scripts/basic/fixdep.c:297: error: `PATH_MAX' undeclared (first use in this function)
scripts/basic/fixdep.c:297: warning: unused variable `s'
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2

Inviato: dom 3 lug 2005, 18:48
da wasabi
Gli header del kernel li hai installati?

Inviato: dom 3 lug 2005, 20:32
da absinthe
... ma se metto tutto il source del 2.6.10 gli header non sono compresi????

Inviato: dom 3 lug 2005, 20:49
da absinthe
boia!!!!! o questa????????????
che babbeo... io credevo che gli headers fossero inclusi nel souce! pernsavo che il tgz con gli headers servisse per installare solo i .h invece che tutto il codice... ora funge tutto....
ma guarda te...
ma che sistemi....

ehehe

grazie,
M.

Inviato: dom 3 lug 2005, 22:13
da samiel
Gli headers non sono inclusi nel sorgente,
ma si creano compilandolo! Meritil docet...
Ci sono dei post importanti sul tema qui
in slacky, dacci un'occhio!

M.

PS
Ragà, ho sfondato quota 2000 post !!!!!!!
Voglio un regalo da Lorys, un premio, qualcosa... :lol:

Inviato: dom 3 lug 2005, 23:38
da Loris
samiel ha scritto:Ragà, ho sfondato quota 2000 post !!!!!!!
Voglio un regalo da Lorys, un premio, qualcosa... :lol:
:roll:

Inviato: lun 4 lug 2005, 0:25
da useless
in realtà il discorso è + complesso. gli header non si creano durante la compilazione, e in linea di max ha senso pensare che gli header sono inclusi nei sorgenti. insomma, la cosa non è chiara nemmeno a me, ma credo che abbia a che fare col fatto che servano i kernel-headers con cui si è compilata la glibc.
se qualcuno trova + info...

Inviato: lun 4 lug 2005, 1:47
da samiel
Ho verificato: in effetti nel sorgente ci sono
delle dir con file che poi si trovano degli headers,
anche se ovviamente diverse da quelle in cui
poi gli headers vanno a finire. Per il resto,
parecchie cose mi restano oscure. Tutti abbiamo letto
lo HEADERS WARNING che dice che è rischioso
usare headers diversi da quello con cui sono
state compilate le glibc. A me sono capitati
un paio di pacchetti che si compilavano però
solo con gli headers del 2.6. Conviene ricompilare
le glibc se si adopera un kernel recente
con i suoi headers?

M.

Inviato: lun 4 lug 2005, 10:09
da absinthe
mmm... non per andare OT ma nella mia ignoranza credevo che la glibc fosse la collezione di librerie gnu C , insomma quella roba dove si trovano anche stdio.h malloc.h etc..., invece no eh?... vabbè ora sono a lavoro... mi sa che stasera tocca leggere quancolsina :)

ps: sempre perchè impossibilitato posterò meglio + tardi, però è accaduta na roba...:

ho usato il config del kertnel 2.6.10 generic, ho modificato il processore in pentium m ed ho abilitato l'acpi, i governarors e il cpufrequency scaling per il centrino, poi ho dato make bzImage...
il compilatore inizia a compilare poi però mi viene un errore del tipo che "la shell non può eseguire un comando...."

ma che cacchio... sulla (deprecated:) suse ho ricompilato il kernel 5 volte e non si intruppava mai: ma che so rincitrullito???

con questo avvincente mistero vi lascio... a stasera,
M.

Inviato: lun 4 lug 2005, 19:04
da pennega
io conm i 2.6.X uso solo

make xconfig (o altro configuratore)
make
make modules_install

copio il file arch/i386/boot/bzImage in /boot/vmlinuz-versione_kernel
aggiorno lilo ....

Inviato: lun 4 lug 2005, 19:07
da pennega
ps mi sono scordato controlla di avere installato gli init-tool che servono x la compilazione dei 2.6

Inviato: mar 5 lug 2005, 11:12
da absinthe
ecco qua in allegato il bel log con tutto l'uot put di

$> make

fondamentalmente mi dice che bin/sh non può eseguire il comendo cmd... ma....

per quanto riguarda il kernel, ho preso il config di patrick ed ho modificato il tipo di cpu (pentium M) aggiustando il supporto per cpu freq scaling niente altro.....



error.log

CHK include/linux/version.h
/bin/sh: cmp: command not found
UPD include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
CHK include/linux/compile.h
/usr/src/linux-2.6.10/scripts/mkcompile_h: line 72: cmp: command not found
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
CHK usr/initramfs_list
/bin/sh: cmp: command not found
UPD usr/initramfs_list
CPIO usr/initramfs_data.cpio
GZIP usr/initramfs_data.cpio.gz
AS usr/initramfs_data.o
LD usr/built-in.o
CC kernel/module.o
CC kernel/power/swsusp.o
LD kernel/power/built-in.o
LD kernel/built-in.o
CC drivers/block/floppy.o
LD drivers/block/built-in.o
CC [M] drivers/net/s2io.o
CC drivers/scsi/sg.o
LD drivers/scsi/built-in.o
CC [M] drivers/scsi/dpt_i2o.o
drivers/scsi/dpt_i2o.c: In function `adpt_isr':
drivers/scsi/dpt_i2o.c:2032: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2033: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2044: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2045: warning: passing arg 2 of `writel' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2048: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2050: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2057: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2064: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2071: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c: In function `adpt_i2o_to_scsi':
drivers/scsi/dpt_i2o.c:2241: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2245: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2250: warning: passing arg 1 of `readl' makes pointer from integer without a cast
drivers/scsi/dpt_i2o.c:2261: warning: passing arg 1 of `readl' makes pointer from integer without a cast
CC drivers/usb/core/hcd.o
LD drivers/usb/core/usbcore.o
LD drivers/usb/core/built-in.o
LD drivers/usb/built-in.o
LD drivers/built-in.o
CC sound/core/info.o
LD sound/core/snd.o
LD sound/core/snd-timer.o
LD sound/core/snd-pcm.o
LD sound/core/snd-page-alloc.o
LD sound/core/built-in.o
LD sound/built-in.o
GEN .version
CHK include/linux/compile.h
/usr/src/linux-2.6.10/scripts/mkcompile_h: line 72: cmp: command not found
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
KSYM .tmp_kallsyms1.S
AS .tmp_kallsyms1.o
LD .tmp_vmlinux2
KSYM .tmp_kallsyms2.S
AS .tmp_kallsyms2.o
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
/bin/sh: cmp: command not found
Inconsistent kallsyms data
Try setting CONFIG_KALLSYMS_EXTRA_PASS
make: *** [vmlinux] Error 1




[/url][/code]

Inviato: mer 6 lug 2005, 12:27
da absinthe
ok lo so sono accidioso....

ho preso 5 secondi della mia vita ed ho scoperto che cmp guarda vcaso serve a comparere i files e giustamente sta tra le diff utils... indi aggiornamento. la lista della spesa è:

sorgente completo del kernel 2.6.10: source + headers
binutils
diffutils
gcc
make
ncurses (per make menuconfig)
e le glibc

proverò oggi e sperem...
M.

Inviato: mer 6 lug 2005, 14:31
da salbutamolo
Ciao a tutti,
vi propongo il mio pidocchioso script, che si occupa di "creare" gli headers nuovi quando si passa da un kernnel all'altro. Due cose: passando dal 2.4.x kernel di default della slack, ad un qualsiasi 2.6.x bisogna rimuovere il pacchetto kernel-headers-vattelapesca prima di eseguire lo script. Quest'ultimo inoltre funziona solo se il nuovo kernel è lincato a linux in /usr/src!

Codice: Seleziona tutto

#!/bin/bash
echo +++ Rimozione Precedenti Headers +++
rm -R -f /usr/include/asm
rm -R -f /usr/include/asm-generic
rm -R -f /usr/include/asm-i386
rm -R -f /usr/include/linux
echo +++ Rimozione Completata +++
echo +++ Installazione Kernel Headers +++
cp -Rafx /usr/src/linux/include/asm-i386 /usr/include
ln -sf /usr/include/asm-i386 /usr/include/asm
ln -sf /usr/src/linux/include/asm-generic /usr/include
cp -Rafx /usr/src/linux/include/linux /usr/include
echo +++ Installazione Kernel Headers Completata Con Successo +++
Rozzo ma funzionante :-)

Have a nice day

Inviato: mer 6 lug 2005, 19:55
da absinthe
ok compilare compila, ancora non lo ho installato... ma mi viene un dubbio: il config fornito nel tgz è quello usato per creare il kernel precompilato??? no perchè mi è parso di capire che l' ext3 sia compilato statico nel kernel mentre nel readme per la creazione dell' initrd patrick dice che il kernel non contiene il supporto per ext3... boh...


@salbutamolo:

#!/bin/bash
...
echo +++ Installazione Kernel Headers +++
cp -Rafx /usr/src/linux/include/asm-i386 /usr/include
ln -sf /usr/include/asm-i386 /usr/include/asm
ln -sf /usr/src/linux/include/asm-generic /usr/include
cp -Rafx /usr/src/linux/include/linux /usr/include
echo +++ Installazione Kernel Headers Completata Con Successo +++

mo lo studio un pò poi ti dico :)