Hejsa.
Jeg ville gerne til at lege med noget qos, og i den forbindelse skal jeg
have compiled qos modulerne. Istedet for at starte helt fra bunden vil jeg
gerne brykke vidre på min eksisterne kernel. Kernel 2.4.19.
Jeg booter op med den gamle kernel 2.2.20. cd'er ind i kernel source diret.
rm -Rf /lib/modules/2.4.19
make clean
make menuconfig, og tilføjer qos som moduler,
make dep && make bzImage && make modules && make modules_install
Kopiere den nye kernel over i den gamle 2.4.19 kernel.
cp arch/i386/boot/bzImage /boot/bzImage
Og køre lilo -v
Jeg får ingen errors under prosessen.
Genstarter så op med den ny compiled kernel.
Men, når jeg så prøver at læse et qos modul ind med modprobe, får jeg
unresolved symbols!
debian:/# modprobe sch_prio
/lib/modules/2.4.19/kernel/net/sched/sch_prio.o: unresolved symbol
unregister_qdisc
/lib/modules/2.4.19/kernel/net/sched/sch_prio.o: unresolved symbol
register_qdisc
/lib/modules/2.4.19/kernel/net/sched/sch_prio.o: unresolved symbol
pfifo_qdisc_ops
/lib/modules/2.4.19/kernel/net/sched/sch_prio.o: insmod
/lib/modules/2.4.19/kernel/net/sched/sch_prio.o failed
/lib/modules/2.4.19/kernel/net/sched/sch_prio.o: insmod sch_prio failed
debian:/#
Efter noget søgen på nettet fandt jeg så frem til den her:
http://www.tldp.org/HOWTO/Module-HOWTO/basekerncompat.html
Som beskriver lidt om problemet. Og forslår blandt andet at søge i
/proc/kysms efter de manglende symbols. Og så støder jeg på denne her!
debian:/# egrep unregister_qdisc /proc/ksyms
c01fcb40 unregister_qdisc_R__ver_unregister_qdisc
debian:/#
Så er det jeg begynder at tænke, kan det være at de symbols er navngivet
forkert, i præsis qos sourcen, eller om de skal se sådan ud, og modulet kan
bare ikke finde den i /proc/ksyms (eller hvor det nu en er den leder efter
det)
Linket forsår ogsk at køre depmod på modulet, men den's output er græsk for
mig!
debian:/# depmod sch_prio
# module id=string
# pci module vendor device subvendor subdevice class
class_mask driver_data
# isapnp module cardvendor carddevice driver_data vendor function
....
# usb module match_flags idVendor idProduct bcdDevice_lo
bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass
bInterfaceSubClass bInterfaceProtocol driver_info
# module pattern
# ieee1394 module match_flags vendor_id model_id specifier_id version
# module id
debian:/#
Jeg har også prøvet al loade alle modulerne fra netfilter. Alle med
success. Og prøvet modprobe sch_prio igen, med samme resultat.
Det er ikke kun sch_prio modulet det er galt med. Det er alle modulerne,
fra qos der fejler på samme måde.
Er det mig der har lavet noget galt, da jeg compiled kernel?
Hvis ikke, hvad kan der så være galt?
På forhånd tak.
--
Mvh
Heine Laursen