Pozdrav svima, koliko vas ima !
Ovaj problem koji cu vam opisati postoji odkad sam prvi put pokusao da
kompajliram kernel. Od tada proslo je oko godinu dana, a za to vreme
sam po ko
zna koliko puta brisao linux i ext2 particiju i ponovo istalirao i
uvek mi se
pojavljivao isti problem. Medjutim, nedavno sam kupio zvucnu karticu i
sada mi
je hitno potrebno resenje.
Evo i potrebnih podataka o mom racunaru i OS:
CPU: AMD Am5x86-WB stepping 04
Ram: 28MB
Zvucna kartica: CMedia CMI8738SX PCI
Linux: Red Hat 7.0
Kernel: 2.2.16-22
Arch: i486
Loader: Lilo
Takodje imam instalirane sledece pakete koji su potrebni za
kompajliranje
kernela:
cpp-2.96-54
dev86-0.15.0-5
gcc-2.96-54
gcc-c++-2.96-54
kernel-source-2.2.16
kgcc-1.1.2-40
make-3.79.1-5
Uz zvucnu karticu dobio sam CD na kome ima drajver za Linux, a skinuo
sam sa neta i alsa drajvere, verzije 0.9.0 i 1.0.5. 1.0.5 ne radi jer
treba
noviji glibc.
Drajver sa CD-a sam po uputstvu raspakovao u direktorijum gde mi je
src
kernela, dakle u /usr/src/linux-2.2.16/drivers/sound i krenuo da
kompajliram
kernel na sledeci nacin:
[root@robi root]#cd /usr/src/linux-2.2.16
[root@robi linux-2.2.16]# make clean
[root@robi linux-2.2.16]# make xconfig
Ukljucim drajver za moju zvucnu karticu kao modul
[root@robi linux-2.2.16]# make dep
I ondak prilikom sledeceg koraka javljaju se problemi.
[root@robi linux-2.2.16]# make bzImage
scripts/split-include include/linux/autoconf.h include/config
kgcc -D__KERNEL__ -I/usr/src/linux-2.2.16/include -Wall
-Wstrict-prototypes -O2
-fomi t-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce
-m486
-malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -c -o
init/main.o init/main.c
kgcc -D__KERNEL__ -I/usr/src/linux-2.2.16/include
-Wall -Wstrict-prototypes -O2 -fomi t-frame-pointer
-fno-strict-aliasing -pipe
-fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2
-malign-functions=2 -DCPU=586 -DUTS_MACHINE='"i386"' -c -o
init/version.o
init/version.c
make -C kernel
make[1]: Entering directory `/usr/src/linux-2.2.16/kernel'
make all_targets
make[2]: Entering directory `/usr/src/linux-2.2.16/kernel'
kgcc -D__KERNEL__-I/usr/src/linux-2.2.16/include -Wall
-Wstrict-prototypes -O2 -fomi
t-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486
-malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586
-DEXPORT_SYMTAB -c signal.c
In file included from
/usr/src/linux-2.2.16/include/linux/modversions.h:49,
from
/usr/src/linux-2.2.16/include/linux/module.h:19,
from signal.c:10:
/usr/src/linux-2.2.16/include/linux/modules/i386_ksyms.ver:6: warning:
`cpu_data' redefined
/usr/src/linux-2.2.16/include/asm/processor.h:96: warning: this is the
location of the previous definition
/usr/src/linux-2.2.16/include/linux/modules/i386_ksyms.ver:28:
warning: `smp_num_cpus ' redefined
/usr/src/linux-2.2.16/include/linux/smp.h:77: warning: this is the
location of the previous definition
/usr/src/linux-2.2.16/include/linux/modules/i386_ksyms.ver:118:
warning: `smp_call_fu e previous definition
/usr/src/linux-2.2.16/include/linux/modules/i386_ksyms.ver:28:
warning: `smp_num_cpus'
redefined /usr/src/linux-2.2.16/include/linux/smp.h:77: warning: this
is the location of the previous definition
/usr/src/linux-2.2.16/include/linux/modules/i386_ksyms.ver:118:
warning: `smp_call_function'
redefined /usr/src/linux-2.2.16/include/linux/smp.h:83: warning: this
is the location of the previous
definition In file included from
/usr/src/linux-2.2.16/include/linux/interrupt.h:51,
from ksyms.c:21:
/usr/src/linux-2.2.16/include/asm/hardirq.h:23: warning:
`synchronize_irq' redefined
/usr/src/linux-2.2.16/include/linux/modules/i386_ksyms.ver:138:
warning: this is the location of the
previous definition In file included from
/usr/src/linux-2.2.16/include/linux/interrupt.h:52,
from ksyms.c:21:
/usr/src/linux-2.2.16/include/asm/softirq.h:75: warning:
`synchronize_bh' redefined
/usr/src/linux-2.2.16/include/linux/modules/i386_ksyms.ver:142:
warning: this is the location of
the previous definition
/usr/src/linux-2.2.16/include/linux/kernel_stat.h: In function
`kstat_irqs':
In file included from ksyms.c:17:
/usr/src/linux-2.2.16/include/linux/kernel_stat.h:47: `smp_num_cpus'
undeclared (first use in this function)
/usr/src/linux-2.2.16/include/linux/kernel_stat.h:47: (Each undeclared
identifier is reported only once
/usr/src/linux-2.2.16/include/linux/kernel_stat.h:47: for each
function it appears in.)
make[2]: *** [ksyms.o] Error 1
make[2]: Leaving directory `/usr/src/linux-2.2.16/kernel'
make[1]: *** [first_rule] Error 2
make[1]: Leaving directory `/usr/src/linux-2.2.16/kernel'
make: *** [_dir_kernel] Error 2
Verovatno ste primetili da sam stavio 586 za CPU ali isto se desava i
kada je
486, i kada stavim make zImage, bzlilo ili zlilo.
Ovo mi se NE pojavljuje kada iskljucim Loadable Modul Support u
kernelu !!!
Ali onda ne mogu odabrati m za zvuk, samo y.
Znaci nema mi druge, moram da pravim monolitni kernel (bez modula).
Tada
prilikom kompajliranja dobijam sledeca upozorenja:
gcc -D__KERNEL__ -I/usr/src/linux-2.2.16/include -Wall
-Wstrict-prototypes -O2 -fomit
-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486
-malign-loops=2
-malign-jumps=2 -malign-functions=2 -DCPU=586 -c -o cdrom.o cdrom.c
cdrom.c:391:73: warning: pasting would not give a valid preprocessing
token
cdrom.c:422:75: warning: pasting would not give a valid preprocessing
token
cdrom.c:480:88: warning: pasting would not give a valid preprocessing
token
cdrom.c:498:57: warning: pasting would not give a valid preprocessing
token
cdrom.c:550:67: warning: pasting would not give a valid preprocessing
token
cdrom.c:563:64: warning: pasting would not give a valid preprocessing
token
cdrom.c:605:57: warning: pasting would not give a valid preprocessing
token
cdrom.c:664:83: warning: pasting would not give a valid preprocessing
token
cdrom.c:892:61: warning: pasting would not give a valid preprocessing
token
cdrom.c:896:40: warning: pasting would not give a valid preprocessing
token
cdrom.c:1128:76: warning: pasting would not give a valid preprocessing
token
cdrom.c:1243:84: warning: pasting would not give a valid preprocessing
token
cdrom.c:1277:57: warning: pasting would not give a valid preprocessing
token
cdrom.c:1307:48: warning: pasting would not give a valid preprocessing
token
cdrom.c:1598:74: warning: pasting would not give a valid preprocessing
token
cdrom.c:1611:76: warning: pasting would not give a valid preprocessing
token
rm -f cdrom.a
gcc -D__KERNEL__ -I/usr/src/linux-2.2.16/include -Wall
-Wstrict-prototypes -O2 -fomit
-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486
-malign-loops=2
-malign-jumps=2 -malign-functions=2 -DCPU=586 -c -o dir.o dir.c
dir.c: In function `uni16_to_x8':
dir.c:72: warning: unused variable `uni_page'
dir.c:71: warning: unused variable `cl'
dir.c:71: warning: unused variable `ch'
inode.c: In function `init_sysv_fs':
inode.c:1022: warning: `ouch' might be used uninitialized in this
function
In file included from
/usr/src/linux-2.2.16/include/linux/sunrpc/types.h:14,
from
/usr/src/linux-2.2.16/include/linux/sunrpc/sched.h:14,
from /usr/src/linux-2.2.16/include/linux/nfs_fs.h:16,
from super.c:31:
/usr/src/linux-2.2.16/include/linux/sunrpc/debug.h:53:57: warning:
nothing can be pasted after this token
slab.c: In function `kmem_cache_shrink':
slab.c:1051: warning: control reaches end of non-void function
{standard input}: Assembler messages:
{standard input}:1910: Warning: using `%eax' instead of `%ax' due to
`l' suffix
{standard input}:1910: Warning: using `%eax' instead of `%ax' due to
`l' suffix
I jos mnogo toga samo me mrzilo da prebacujem u ovu poruku.
Kada se zavrsi kompajliranje (ponavljam: morao sam za drajver da
stavim y
umesto m) onda presnimim bzImage iz arch/i386/boot u /boot i
System.map u /,
editujem /etc/lilo.conf kako bih pustio novi kernel u opticaj.
Bootujem ga i
to radi. Medjutim sada kao sto se moze pretpostavit kada pokrenem
sndconfig,
prijavi mi sledecu gresku:
The following error occurred running the modprobe program:
modprobe: QM_MODULES: Function not implemented
insmod: QM_MODULES: Function not implemented
insmod: insmod /lib/modules/2.2.16-22/misc/soundcore.o failed
insmod: QM_MODULES: Function not implemented
insmod: QM_MODULES: Function not implemented
insmod: insmod sound-slot-0 failed
Nesto slicno ispise i prilikom bootovanja.
I sta sve treba da se izbrise da bih uklonio ovaj novi kernel sto sam
kompajlirao?
Ajde, ja vas molim da se angazujte malo i da mi pomognete. :)
Nalazacu sledi nagrada. :)