Problem beim Erweitern eines alten Kerneltreibers

From: Bjoern Hinrichs <bjh-lugo_at_fewo-anika.de>
Date: Mon, 30 Nov 2009 10:01:41 +0100

Moin!

Ich versuche gerade zum ersten Mal, einem älteren Kerneltreiber für eine PCI-
Karte sysfs-Unterstützung beizubringen.

Dazu habe ich unter anderem dem bestehenden Treiber ein

---
static struct pci_driver titan_driver = {
  .name = DRV_NAME,
  .id_table = titan_pci_tbl,
  .probe = titan_probe,
  .remove = titan_remove,
};
---
spendiert und Aufrufe von pci_register_driver / pci_unregister_driver 
eingefügt.
Der Treiber taucht danach auch im sysfs auf und hat dort einen Link zur PCI-
Adresse:
---
$ ls -la /sys/bus/pci/drivers/titan/
total 0
drwxr-xr-x  2 root root    0 2009-11-30 09:14 .
drwxr-xr-x 13 root root    0 2009-11-30 09:14 ..
lrwxrwxrwx  1 root root    0 2009-11-30 09:14 0000:00:0b.0 -> 
../../../../devices/pci0000:00/0000:00:0b.0
--w-------  1 root root 4096 2009-11-30 09:14 bind
lrwxrwxrwx  1 root root    0 2009-11-30 09:14 module -> 
../../../../module/titan
--w-------  1 root root 4096 2009-11-30 09:14 new_id
--w-------  1 root root 4096 2009-11-30 09:14 remove_id
--w-------  1 root root 4096 2009-11-30 09:14 uevent
--w-------  1 root root 4096 2009-11-30 09:14 unbind
---
Soweit ja alles schön, ich möchte aber außerdem gerne, daß per udev ein 
Devicefile eingerichtet wird -- und genau das klappt nicht. Wenn ich mir mit 
udevadm ansehe, was da für uevents gesendet werde, sieht das alles auch recht 
mager aus:
---
KERNEL[1259568653.205951] add      /module/titan (module)
UDEV_LOG=3                                               
ACTION=add                                               
DEVPATH=/module/titan                                    
SUBSYSTEM=module                                         
SEQNUM=682                                               
KERNEL[1259568653.206472] add      /bus/pci/drivers/titan (drivers)
UDEV_LOG=3                                                         
ACTION=add                                                         
DEVPATH=/bus/pci/drivers/titan                                     
SUBSYSTEM=drivers                                                  
SEQNUM=683
UDEV  [1259568653.215901] add      /module/titan (module)
UDEV_LOG=3
ACTION=add
DEVPATH=/module/titan
SUBSYSTEM=module
SEQNUM=682
UDEV  [1259568653.236102] add      /bus/pci/drivers/titan (drivers)
UDEV_LOG=3
ACTION=add
DEVPATH=/bus/pci/drivers/titan
SUBSYSTEM=drivers
SEQNUM=683
KERNEL[1259568653.205951] add      /module/titan (module)
UDEV_LOG=3
ACTION=add
DEVPATH=/module/titan
SUBSYSTEM=module
SEQNUM=682
---
Ich kann zwar händisch per mknod Devicefiles anlegen, aber das wäre ja 
langweilig. *Irgendwas* wird mir also noch fehlen, nur was?
Weder der Vergleich mit bestehenden Treibern noch "Linux Device Drivers -- 
Third Edition" von Corbet/Rubini/Kroah-Hartman bringen mich weiter -- hat von 
euch vielleicht jemand Vorschläge/Hinweise?
Gruß,
Björn
Received on Mon Nov 30 2009 - 10:01:41 CET

This archive was generated by hypermail 2.2.0 : Mon Nov 30 2009 - 10:02:02 CET