Home Inhaltsverzeichnis Home Modulprogrammierung
 

1 Einleitung

Hier versuche ich meine ersten Treiberprogramme, zum Laufen zu bringen, nachdem erste Kontakte mit dem COBRA Board gepflegt worden waren.

Anlass ist das COBRA-Board. Auf diesem Board soll ein Treiber programmiert werden, mit welchem man einen Temperatursensor abfragen kann.

Unter:

file:/usr/share/doc/Books

habe ich das Buch lkmpg-1.1.0-1.pdf gefunden. Darin finden sich diese ersten Versuche beschrieben:

Hello, world

 
Mein Versuch, dieses Beispiel zu installieren, bringt aber unter SuSE 9.1 mit Kernel 2.6 folgende Meldung:
 
andreas@gericom:~/Development/driver> make
gcc  -Wall -DMODULE -D__KERNEL__ -DLINUX -DCONFIG_MPENTIUMM -c hello.c
hello.c:39:1: warning: no newline at end of file
echo insmod hello.o to turn it on
insmod hello.o to turn it on
echo rmmod hello to turn if off
rmmod hello to turn if off
echo

echo X and kernel programming do not mix.
X and kernel programming do not mix.
echo Do the insmod and rmmod from outside X.
Do the insmod and rmmod from outside X.
andreas@gericom:~/Development/driver> su
Password:
gericom:/home/andreas/Development/driver # ls
.  ..  hello.c  hello.c~  hello.o  Makefile  Makefile~  myreadme.txt  myreadme.txt~
gericom:/home/andreas/Development/driver # insmod hello.o
insmod: error inserting 'hello.o': -1 Invalid module format
gericom:/home/andreas/Development/driver #

Ich vermute, daß dieses Beispiel nur unter Kernel 2.2 funktioniert.
 
In der Zeitschrift "GoLinux 3/2000" auf Seite 88 wird ein ähnliches Beispiel gezeigt. Auch dort war der Kernel noch in der Version 2.2.x. Ebenso steht dort in einem Kasten, daß es unter "www.linuxdoc.org" weiterführende Dokumentation gäbe.
 

Der Blick auf die bei der Zeitschrift "GoLinux 3/2000" angegebene Seite für weiterführende Informationen bringt mich tatsächlich weiter!

Der Link "www.linuxdoc.org" wird umgeroutet auf "www.tldp.org". Dort finde ich dann einen Nachfolger des unter SuSE gefundenen Dokumentes. In diesem Dokument wird als dringende Option "-O2" angeraten, was auch im GoLinux-Artikel sich findet. Dieses Dokument habe ich sowohl auf den Psion als auch hierher transferiert.

Alle weiteren Untersuchungen beziehen sich auf dieses neue Dokument.

Allerdings auch das Beispiel "hello-2.c" aus dem neuen Buch brachte unter Kernel 2.6.5.111 das identisch gleiche Verhalten, daß das Format nicht stimmen würde.

Ich werde deshalb jetzt dieses Beispiel "hello-2.c" auf den älteren SuSE-Versionen testen...


Copyright © Andreas Birkert
Letzte Aktualisierung am 20. Dezember 2013
Home Inhaltsverzeichnis Home Modulprogrammierung