Wie füge ich ein Kernel Module hinzu?

Hallo allerseits,

ich bin gerade dabei mein WLAN einzurichten. Ich habe eine SpeedTouch 120 WLAN-Karte (USB) und habe endlich die passenden Treiber gefunden (orinoco_usb).
Making it work:
--------------

As usual when building external kernel modules, you need a Linux
kernel source tree configured properly.

$ make KERNEL_SRC=/path/to/my/kernel/source
$ su
# make install
# make load

You should now have an wlan0 network device ready for use.

NOTE: Keep in mind that you will have to copy the kernel modules
manually to the appropriate place for them to get loaded automatically
when you reboot.
Okay, ich hänge schon bei Schritt 1. :D
Ich habe als KERNEL_SRC /usr/src/linux (Link auf /usr/src/linux-2.6.20-gentoo-r8) angegeben, aber so ganz möchte er das nicht.


daniel@meinpc ~/orinoco-usb-0.2.2 $ make KERNEL_SRC=/usr/src/linux
make -C driver
make[1]: Entering directory `/home/daniel/orinoco-usb-0.2.2/driver'
mkdir -p .tmp_versions
cp /usr/src/linux/.tmp_versions/*.mod /home/daniel/orinoco-usb-0.2.2/driver/.tmp_versions
cp: cannot stat `/usr/src/linux/.tmp_versions/*.mod': No such file or directory
make[1]: [modules] Error 1 (ignored)
make -C /usr/src/linux SUBDIRS=/home/daniel/orinoco-usb-0.2.2/driver MODVERDIR=/home/daniel/orinoco-usb-0.2.2/driver/.tmp_versions modules
make[2]: Entering directory `/usr/src/linux-2.6.20-gentoo-r8'
CC [M] /home/daniel/orinoco-usb-0.2.2/driver/hermes.o
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:41:26: error: linux/config.h: No such file or directory
In file included from /home/daniel/orinoco-usb-0.2.2/driver/hermes.c:53:
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h: In function 'hermes_present':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h:379: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h: In function 'hermes_set_irqmask':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h:385: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h: In function 'hermes_read_words':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h:426: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h: In function 'hermes_write_words':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h:446: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h: In function 'hermes_clear_words':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.h:462: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c: In function 'hermes_issue_cmd':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:121: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:125: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:131: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:132: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:133: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:134: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c: In function 'hermes_init_direct':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:174: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:175: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:184: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:192: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:201: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:202: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:210: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:215: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:218: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:235: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:237: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c: In function 'hermes_docmd_wait_direct':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:273: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:278: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:297: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:300: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:301: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:302: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:305: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c: In function 'hermes_allocate_direct':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:328: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:333: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:350: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:351: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c: In function 'hermes_bap_seek':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:375: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:379: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:399: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:400: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:404: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:408: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c: In function 'hermes_read_ltv_direct':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:503: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:508: warning: passing argument 1 of 'readw' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c: In function 'hermes_write_ltv_direct':
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:544: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
/home/daniel/orinoco-usb-0.2.2/driver/hermes.c:545: warning: passing argument 2 of 'writew' makes pointer from integer without a cast
make[3]: *** [/home/daniel/orinoco-usb-0.2.2/driver/hermes.o] Error 1
make[2]: *** [_module_/home/daniel/orinoco-usb-0.2.2/driver] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.20-gentoo-r8'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/home/daniel/orinoco-usb-0.2.2/driver'
make: *** [all] Error 2


Was habe vergessen/falsch gemacht? Danke für eure Bemühungen. :)
 
Sind die Kernel-Sources vorkompiliert und mit 'make all' vorkompiliert?
 
Nein, bis jetzt habe ich nur emerge gentoo-sources ausgefürt, da ich eben dachte ich muss die Module bzw. das Modul irgendwie vor make menuconfig oder so machen.
 
Hm, du kannst entweder den Kernel kompilieren (make), dann werden die Module automatisch erstellt (müsstest du für Gentoo nicht sowieso einen Kernel kompilieren ?) oder du gehst in den Kernel-Source Ordner und führst "make modules_prepare" aus.
 
Original von metax.
(müsstest du für Gentoo nicht sowieso einen Kernel kompilieren ?)
Ja, habe ich ja schon. Nur damals (gestern. :D) ohne WLAN. Bin heute erst auf die glorreiche Idee gekommen, dass WLAN ganz nett wäre, deswegen müsste ich das jetzt neu kompilieren.

Wenn ich "make modules_prepare" ausführe hab ich ja wieder nicht "mein" Modul dabei, den orinoco_usb-Treiber.

Laut Gentoo-Handbuch installiere ich so einen Kerne (in Gentoo)l:

emerge gentoo-sources
cd /usr/src/linux
make menuconfig
make -j2
make modules_install
cp arch/386/boot/bzImage /boot/kernel


Ja und irgendwann dazwischen müsste ich wohl das make KERNEL_SRC=... ausführen. Aber ich weiß nicht wo, im Handbuch sind leider auch keine Kommentare dazu.


Ach und etwas abschweifend, aber auch interessant für mich: Wie mounte ich CDs/DVDs automatisch wenn ich darauf zugreife? Ich habe im gentoo-wiki da eine Menge von wegen "Autofs" gelesen. Allerdings hatte ich bei Zenwalk kein autofs und trotzdem hat das mit der automatischen Einbindung dort funktioniert? Wie? Ist das evtl. einfacher als autofs?
 
Hm, ich vermute "make KERNEL_SRC=... " ist ein Befehl, den du in deinem Wlan-Verzeichnis ausführen musst, damit der Compiler an dieser Stelle die Modulinterfaces findet.
Wenn du mir mal den Link für das WLAn-Modul gibst, dann schaue ich es mir mal an ...
 
* orinoco-usb-9999 requires kernel 2.6.21 or above.

Kann ja wohl schlecht sein? Immerhin ist das Teil schon 3 Jahre alt oder so. Wozu braucht das einen so neuen Kernel? Natürlich ist das neueste was man mit emerge bekommt 2.6.20-gentoo-r8. -.-
 
Du solltest mal emerge --sync ausführen, in meiner Liste ist nämlich schon gentoo-sources-2.6.21-r4 (sogar als stable) verfügbar ;)

Immerhin ist das Teil schon 3 Jahre alt oder so.
Vermutlich haben sie das Kernel-Interface im Lauf der Zeit immer wieder angepasst ;)

mfg, metax.
 
Zurück
Oben