Bonjour,
J'ai 2 adaptateurs differents pour manette console vers usb
looking at device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:0E8F:1006.000A/input/input26/js0':
KERNEL=="js0"
SUBSYSTEM=="input"
DRIVER==""looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:0E8F:1006.000A/input/input26':
KERNELS=="input26"
SUBSYSTEMS=="input"
DRIVERS==""
ATTRS{name}=="HuiJia USB GamePad"
ATTRS{phys}=="usb-0000:00:1a.0-1.2/input0"
ATTRS{uniq}==""
ATTRS{properties}=="0"looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:0E8F:1006.000A':
KERNELS=="0003:0E8F:1006.000A"
SUBSYSTEMS=="hid"
DRIVERS=="hid-generic"looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0':
KERNELS=="1-1.2:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="usbhid"
ATTRS{bInterfaceClass}=="03"
ATTRS{bInterfaceSubClass}=="00"
ATTRS{bInterfaceProtocol}=="00"
ATTRS{bNumEndpoints}=="01"
ATTRS{supports_autosuspend}=="1"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceNumber}=="00"looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2':
KERNELS=="1-1.2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="1.2"
ATTRS{idVendor}=="0e8f"
ATTRS{speed}=="1.5"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{busnum}=="1"
ATTRS{devnum}=="6"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="300mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="80"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="0"
ATTRS{bcdDevice}=="0110"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{version}==" 1.10"
ATTRS{urbnum}=="13"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="HuiJia "
ATTRS{removable}=="removable"
ATTRS{idProduct}=="1006"
ATTRS{bDeviceClass}=="00"
ATTRS{product}=="USB GamePad"looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1/1-1':
KERNELS=="1-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="01"
ATTRS{devpath}=="1"
ATTRS{idVendor}=="8087"
ATTRS{speed}=="480"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{busnum}=="1"
ATTRS{devnum}=="2"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="0mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="6"
ATTRS{bcdDevice}=="0000"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{version}==" 2.00"
ATTRS{urbnum}=="115"
ATTRS{ltm_capable}=="no"
ATTRS{removable}=="fixed"
ATTRS{idProduct}=="0024"
ATTRS{bDeviceClass}=="09"looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="0"
ATTRS{idVendor}=="1d6b"
ATTRS{speed}=="480"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{authorized_default}=="1"
ATTRS{busnum}=="1"
ATTRS{devnum}=="1"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="0mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="2"
ATTRS{bcdDevice}=="0314"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{serial}=="0000:00:1a.0"
ATTRS{version}==" 2.00"
ATTRS{urbnum}=="24"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 3.14.14-gentoo ehci_hcd"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="0002"
ATTRS{bDeviceClass}=="09"
ATTRS{product}=="EHCI Host Controller"looking at parent device '/devices/pci0000:00/0000:00:1a.0':
KERNELS=="0000:00:1a.0"
SUBSYSTEMS=="pci"
DRIVERS=="ehci-pci"
ATTRS{irq}=="16"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0320"
ATTRS{companion}==""
ATTRS{enabled}=="1"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{dma_mask_bits}=="32"
ATTRS{local_cpus}=="ff"
ATTRS{device}=="0x1c2d"
ATTRS{uframe_periodic_max}=="100"
ATTRS{msi_bus}==""
ATTRS{local_cpulist}=="0-7"
ATTRS{vendor}=="0x8086"
ATTRS{subsystem_device}=="0x844d"
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="1"looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Et
looking at device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb2/2-1/2-1:1.0/0003:0E8F:3010.000B/input/input30/js2':
KERNEL=="js2"
SUBSYSTEM=="input"
DRIVER==""looking at parent device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb2/2-1/2-1:1.0/0003:0E8F:3010.000B/input/input30':
KERNELS=="input30"
SUBSYSTEMS=="input"
DRIVERS==""
ATTRS{name}=="HuiJia USB GamePad"
ATTRS{phys}=="usb-0000:03:00.0-1/input0"
ATTRS{uniq}==""
ATTRS{properties}=="0"looking at parent device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb2/2-1/2-1:1.0/0003:0E8F:3010.000B':
KERNELS=="0003:0E8F:3010.000B"
SUBSYSTEMS=="hid"
DRIVERS=="hid-generic"looking at parent device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb2/2-1/2-1:1.0':
KERNELS=="2-1:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="usbhid"
ATTRS{bInterfaceClass}=="03"
ATTRS{bInterfaceSubClass}=="00"
ATTRS{bInterfaceProtocol}=="00"
ATTRS{bNumEndpoints}=="01"
ATTRS{supports_autosuspend}=="1"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceNumber}=="00"looking at parent device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb2/2-1':
KERNELS=="2-1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{devpath}=="1"
ATTRS{idVendor}=="0e8f"
ATTRS{speed}=="1.5"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{busnum}=="2"
ATTRS{devnum}=="2"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="300mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="80"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="0"
ATTRS{bcdDevice}=="0111"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{version}==" 1.10"
ATTRS{urbnum}=="12"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="HuiJia "
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="3010"
ATTRS{bDeviceClass}=="00"
ATTRS{product}=="USB GamePad"looking at parent device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/usb2':
KERNELS=="usb2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="01"
ATTRS{devpath}=="0"
ATTRS{idVendor}=="1d6b"
ATTRS{speed}=="480"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{authorized_default}=="1"
ATTRS{busnum}=="2"
ATTRS{devnum}=="1"
ATTRS{configuration}==""
ATTRS{bMaxPower}=="0mA"
ATTRS{authorized}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bNumConfigurations}=="1"
ATTRS{maxchild}=="2"
ATTRS{bcdDevice}=="0314"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{serial}=="0000:03:00.0"
ATTRS{version}==" 2.00"
ATTRS{urbnum}=="27"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 3.14.14-gentoo xhci_hcd"
ATTRS{removable}=="unknown"
ATTRS{idProduct}=="0002"
ATTRS{bDeviceClass}=="09"
ATTRS{product}=="xHCI Host Controller"looking at parent device '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0':
KERNELS=="0000:03:00.0"
SUBSYSTEMS=="pci"
DRIVERS=="xhci_hcd"
ATTRS{irq}=="17"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0330"
ATTRS{enabled}=="1"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{dma_mask_bits}=="64"
ATTRS{local_cpus}=="ff"
ATTRS{device}=="0x0194"
ATTRS{msi_bus}==""
ATTRS{local_cpulist}=="0-7"
ATTRS{vendor}=="0x1033"
ATTRS{subsystem_device}=="0x8413"
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="1"looking at parent device '/devices/pci0000:00/0000:00:1c.1':
KERNELS=="0000:00:1c.1"
SUBSYSTEMS=="pci"
DRIVERS=="pcieport"
ATTRS{irq}=="17"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x060400"
ATTRS{enabled}=="2"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{dma_mask_bits}=="32"
ATTRS{local_cpus}=="ff"
ATTRS{device}=="0x1c12"
ATTRS{msi_bus}=="1"
ATTRS{local_cpulist}=="0-7"
ATTRS{vendor}=="0x8086"
ATTRS{subsystem_device}=="0x844d"
ATTRS{numa_node}=="-1"
ATTRS{d3cold_allowed}=="0"looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Les 2 ont pour ATTRS{name} "HuiJia USB GamePad", j'aimerai qu'ils portent 2 noms différents (ATTRS{name} semble être la concaténation de ATTRS{manufacturer} et ATTRS{product}).
Après lecture de la doc udev, je pensais que quelque chose comme çà fonctionnerait :
KERNEL=="js*", SUBSYSTEM=="input", ATTRS{idVendor}=="0e8f", ATTRS{idProduct}=="3010", ATTRS{product}="USB GamePad SS"
KERNEL=="js*", SUBSYSTEM=="input", ATTRS{idVendor}=="0e8f", ATTRS{idProduct}=="1006", ATTRS{product}="USB GamePad PS"
Malheureusement, ni ATTRS{product} ni ATTRS{name} ne semblent être modifiés, quelqu'un sait-il où est mon erreur ?
# tu peux pas
Posté par NeoX . Évalué à 3.
apparemment ce n'est pas prevu par udev
ici : http://unix.stackexchange.com/questions/119593/is-there-a-way-to-change-device-names-in-dev-directory
la personne lance un programme pour faire le montage dans un dossier qui porte le nom qui l'interesse,
au mieux tu pourras t'inspirer de ce qui est fait pour les cartes reseaux :
http://www.debianhelp.co.uk/udev.htm
ou tu va utiliser les attrs du peripherique pour trouver lequel est connecté,
puis lui changer son "NAME" qui sera alors /dev/MONDEVICE plutot que /dev/eth0 (par exemple)
[^] # Re: tu peux pas
Posté par Pierre Roc . Évalué à 2. Dernière modification le 02 septembre 2014 à 14:09.
Oui, je suis dedans aussi. Les attributs sont ceux qui sont renvoyés par le noyau et qui se trouvent dans /sys, ils servent à faire des comparaisons, qui va ensuite permettre une affectation, qui va elle impacter dans /dev.
On peut utiliser soit NAME="blabla" pour créer un fichier /dev/blabla, ou mieux : SYMLINK+="blabla", pour créer un lien symbolique /dev/blabla qui pointe vers le nom original (créé automatiquement par udev).
# pas sûr qu'on peut pas
Posté par barbudreadmon . Évalué à 1.
Je ne cherche pas à renommer le device, çà ne présenterai aucun interet dans mon cas, les liens évoqués concernent justement le renommage des devices dans /dev (par exemple si je voulais renommer js0 en toto1). Là je cherche juste à modifier la chaine de caractères dans un attribut, ce qui semble possible (j'ai vu des gens modifier ces attributs dans d'autres topics). A noter que les valeurs des attributs ne sont pas définis par le noyau (j'ai déjà cherché dans les sources), si quelqu'un sait où le système va les chercher (et si ce n'est pas dans l'eprom de l'adaptateur), çà peut m'interesser.
[^] # Re: pas sûr qu'on peut pas
Posté par Pierre Roc . Évalué à 2.
J’ai du mal à voir à quoi ça peut bien servir, mais dans tous les cas,
man 7 udev
est formel :Du coup, essayez de matcher le device parent, plutôt que le device fils, changez l’ATTR, et il se pourrait que ça fonctionne.
Je propose un truc du genre :
Voilà. Sur le papier ça doit être ok.
# la règle est bonne, mais...
Posté par barbudreadmon . Évalué à 1.
La règle est bonne, mais d'après udevadm test, le fichier product n'est pas modifiable, et quand je le rend modifiable à coup de chmod et que je tente un echo "test" > product, il me retourne une erreur d'entrée/sortie, donc effectivement impossible d'après vous ?
[^] # Re: la règle est bonne, mais...
Posté par Pierre Roc . Évalué à 1.
En particulier :
C’est donc bien le noyau qui exporte les données. Ceci dit il est possible qu’il y ait aussi une ou des bases de données pour renseigner les info (c’est le cas des lspci&co), mais de ce que j’ai compris ça n’est pas lié à udev.
[^] # Re: la règle est bonne, mais...
Posté par Pierre Roc . Évalué à 1. Dernière modification le 03 septembre 2014 à 19:30.
En fait udev utilise des bases de données de ce genre,
hwids
que ça s’appelle (sous Gentoo), mais je n’y comprends pas grand chose.[^] # Re: la règle est bonne, mais...
Posté par NeoX . Évalué à 2.
doit y avoir aussi
lspciid
etlsusbid
qui renseignent les noms des peripheriques par rapport aux ids
[^] # Re: la règle est bonne, mais...
Posté par Pierre Roc . Évalué à 1. Dernière modification le 04 septembre 2014 à 01:41.
Je me rends compte que j’ai été expéditif. Je programme un peu, mais je n’ai jamais rien fait qui soit lié de près ou de loin au noyau. Ceci dit, si je comprends bien, à première vue
umode_t mode
permet de définir les droits des fichiers du sysfs en écriture–lecture, dans la doc que j’ai cité ils donnent en exemple les flags S_IWUSR (écriture pour l’utilisateur j’imagine) et S_IRUGO (lecture pour l’utilisateur et le groupe et les autres itou).Quand qu’il soit ce sont les auteurs des pilotes du noyau qui définissent les attributs disponibles dans le sysfs et les droits rattachés, au moins partiellement. Alors je vous souhaite bon courage s’il faut vous plonger dans tout ça. Peut-être vaudrait-il mieux interroger votre besoin de changer ces attributs.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.