Forums Neueste Beiträge
 

Zusammenspiel sysfs und udev

15/11/2009 - 16:43 von Bjoern Hinrichs | Report spam
Moin!

Ich versuche gerade, einen bestehenden Kerneltreiber für eine PCI-Karte
um sysfs-Fàhigkeiten zu erweitern. Der Treiber taucht inzwischen auch im
sysfs auf und wird als PCI-Treiber registriert. Auch ein Link zur
PCI-Adresse der Karte wird gesetzt:

stoopid:/sys/bus/pci/drivers/xyz# ls -la
total 0
drwxr-xr-x 2 root root 0 2009-11-15 13:53 .
drwxr-xr-x 13 root root 0 2009-11-15 13:53 ..
lrwxrwxrwx 1 root root 0 2009-11-15 13:53 0000:00:0b.0 ->
../../../../devices/pci0000:00/0000:00:0b.0
lrwxrwxrwx 1 root root 0 2009-11-15 13:53 module ->
../../../../module/xyz

Ich möchte jetzt eigentlich gerne, daß udev mir ein Device-File anlegt.

udemadm sagt mir:

# udevadm info -a -p /sys/bus/pci/drivers/xyz/0000\:00\:0b.0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

looking at device '/devices/pci0000:00/0000:00:0b.0':
KERNEL=="0000:00:0b.0"
SUBSYSTEM=="pci"
DRIVER=="xyz"
ATTR{vendor}=="0x[...]"
ATTR{device}=="0x[...]"
ATTR{subsystem_vendor}=="0x[...]"
ATTR{subsystem_device}=="0x[...]"
ATTR{class}=="0x048000"
ATTR{irq}=="9"
ATTR{local_cpus}=="1"
ATTR{local_cpulist}=="0"
ATTR{modalias}=="pci:v[...]"
ATTR{enable}=="1"
ATTR{broken_parity_status}=="0"
ATTR{msi_bus}==""

Ich habe bislang verschiedene udev-Regeln getestet, um ein Device-File
anzulegen, im einfachsten Fall:

ACTION=="add", DRIVERS=="xyz", NAME="xyz"

Leider ohne Ergebnis.

Ich werde also entweder bei der udev-Regel etwas falsch machen oder
bereits im Treiber mehr machen müssen als ich habe. Außer einer
(unbeantworteten) Frage[1] wegen einem àhnlichen Problem mag mir auch
Tante Google nicht wirklich helfen.

Mag mir jemand Tips geben, wo mein Fehler liegt?
Ideen, wo ich ansonsten Hilfe bekommen kann?

Gruß,
Björn

[1] http://lkml.indiana.edu/hypermail/l.../0357.html
 

Lesen sie die antworten

#1 Thomas Bächler
15/11/2009 - 23:07 | Warnen spam
Bjoern Hinrichs schrieb:
Ich habe bislang verschiedene udev-Regeln getestet, um ein Device-File
anzulegen, im einfachsten Fall:

ACTION=="add", DRIVERS=="xyz", NAME="xyz"

Leider ohne Ergebnis.

Ich werde also entweder bei der udev-Regel etwas falsch machen oder
bereits im Treiber mehr machen müssen als ich habe. Außer einer
(unbeantworteten) Frage[1] wegen einem àhnlichen Problem mag mir auch
Tante Google nicht wirklich helfen.



Ohne mich besonders gut auszukennen, kann ich so viel sagen: Das liegt
am Kerneltreiber. Wenn du einen korrekten uevent sendest wird das Geràt
in /dev auch ohne jede Udev-Regel angelegt. Die Regel brauchst du dann
nur um das noch zu verfeinern, funktionieren muss es ohne.

Genaues weiß ich nicht, da ich selber nie in einen Treiber so weit
eingestiegen bin.

Ähnliche fragen