Home Entwicklung des Treibers QADC Wie erhalte ich ein weiteres Device Der Befehl "open" funktioniert nicht wie gewünscht
 

3.4 Neuer Versuch, den Treiber qadc zu laden

Hier die Ausgabe auf dem minicom-Fenster:

/usr> insmod qadc-1_0.o
Using qadc-1_0.o
QADC Driver 1.0
Device registered using major 254.
To talk to the driver, create a dev file with
'mknod /dev/qadc c 254 0'.
Try various minor numbers.  Try to cat and echo to
the device file.
Remove the device file and module when done.
/usr> lsmod
Module                  Size  Used by    Not tainted
qadc-1_0                 832   0 (unused)
/usr> rmmod qadc-1_0
Goodbye, world
/usr> insmod qadc-1_0.o
Using qadc-1_0.o
QADC Driver 1.0
Device registered using major 0.
To talk to the driver, create a dev file with
'mknod /dev/qadc c 0 0'.
Try various minor numbers.  Try to cat and echo to
the device file.
Remove the device file and module when done.
/usr>

Nachdem im Code des Treibers auch die Major-Nummer fest auf 124 gesetzt war, kehrt die Routine i = register_chrdev(124, "qadc", &qadc_fops); jetzt nicht mehr mit der vom Kernel ausgesuchten Major-Nummer zurück, sondern jetzt einfach mit Null. Die Registrierung müßte also erfolgreich gewesen sein.

Hier der Output:

/usr> cat /proc/devices
Character devices:
  1 mem
  2 pty
  3 ttyp
  4 ttyS
  5 cua
 10 misc
124 qadc
162 raw

Block devices:
  1 ramdisk
 31 Blkmem
/usr>

Aha! Ist also erfolgreich unter der Major-Nummer 124 registriert!


Copyright © Andreas Birkert
Letzte Aktualisierung am 20. Dezember 2013
Home Entwicklung des Treibers QADC Wie erhalte ich ein weiteres Device Der Befehl "open" funktioniert nicht wie gewünscht