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