2.1 Erstes Modul auf Gericom-Laptop unter Kernel 2.6Die Anfangsschwierigkeiten waren überwunden durch vor allem das veränderte Makefile. Der entscheidende Tip kam von dem Artikel Porting device drivers to the 2.6 kernel. Ich habe mir speziell den Abschnitt compiling external modules lokal abgespeichert. Beim Make und nachträglichem Laden des neuen Moduls mit "insmod" erhielt ich folgenden Output: andreas@gericom:~/Development/driver> ls hello-2.c hello-2.c~ hello-2.o hello-3.c hello.c hello.c~ hello.o Makefile Makefile~ myreadme.txt myreadme.txt~ V_1_0 V_1_2 andreas@gericom:~/Development/driver> make make -C /lib/modules/2.6.5-7.111-default/build SUBDIRS=/home/andreas/Development/driver modules make[1]: Entering directory `/usr/src/linux-2.6.5-7.111-obj/i386/default' make -C ../../../linux-2.6.5-7.111 O=../linux-2.6.5-7.111-obj/i386/default modules WARNING: Symbol version dump /usr/src/linux-2.6.5-7.111-obj/i386/default/Module.symvers is missing, modules will have CONFIG_MODVERSIONS disabled. CC [M] /home/andreas/Development/driver/hello-3.o Building modules, stage 2. MODPOST CC /home/andreas/Development/driver/hello-3.mod.o LD [M] /home/andreas/Development/driver/hello-3.ko make[1]: Leaving directory `/usr/src/linux-2.6.5-7.111-obj/i386/default' andreas@gericom:~/Development/driver> ls hello-2.c hello-2.o hello-3.ko hello-3.mod.o hello.c hello.o Makefile~ myreadme.txt~ V_1_2 hello-2.c~ hello-3.c hello-3.mod.c hello-3.o hello.c~ Makefile myreadme.txt V_1_0 andreas@gericom:~/Development/driver> insmod hello-3.ko bash: insmod: command not found andreas@gericom:~/Development/driver> su Password: gericom:/home/andreas/Development/driver # insmod hello-3.ko gericom:/home/andreas/Development/driver # Da ich alles unter der graphischen Oberfläche in einem "xterminal" angestoßen habe, war nichts von meinem Modul zu sehen. Im Logfile sah man aber dann doch: gericom:/var/log # tail -f messages May 21 20:37:02 gericom kernel: hello_3: no version for "struct_module" found: k ernel tainted. May 21 20:37:02 gericom kernel: hello_3: unsupported module, tainting kernel. May 21 20:37:02 gericom kernel: hello_3: module license 'unspecified' taints ker nel. May 21 20:37:02 gericom kernel: Hello, world 2 May 21 20:37:05 gericom kernel: ISO 9660 Extensions: RRIP_1991A Der Text "Hello, world 2" stammt von dem geladenen Modul. Copyright © Andreas Birkert Letzte Aktualisierung am 20. Dezember 2013 |