LINUX.ORG.RU

udev не слушается

 , , ,


0

1

Доброй ночи!

ubuntu 18.04. Пытаюсь дать название звуковым картам через /etc/udev/rules.d/10-sound-cards.rules:

SUBSYSTEM!="sound", GOTO="sound_cards_end"
ACTION!="add", GOTO="sound_cards_end"

DEVPATH=="/devices/pci0000:00/0000:00:1c.6/0000:05:00.0/sound/card?", ATTR{id}="SB1570-1"
DEVPATH=="/devices/pci0000:00/0000:00:1c.7/0000:06:00.0/sound/card?", ATTR{id}="SB1570-2"
DEVPATH=="/devices/pci0000:00/0000:00:1f.3/sound/card?", ATTR{id}="INTEL"
DEVPATH=="/devices/pci0000:00/0000:00:1c.5/0000:03:00.0/0000:04:00.0/sound/card?", ATTR{id}="SB0790"

LABEL="sound_cards_end"

но udev не совсем «слушается»

**** Список CAPTURE устройств ****
карта 0: SB0790 [CA0106], устройство 0: ca0106 [CA0106]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 0: SB0790 [CA0106], устройство 1: ca0106 [CA0106]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 0: SB0790 [CA0106], устройство 2: ca0106 [CA0106]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 0: SB0790 [CA0106], устройство 3: ca0106 [CA0106]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 1: INTEL [HDA Intel PCH], устройство 0: ALC887-VD Analog [ALC887-VD Analog]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 1: INTEL [HDA Intel PCH], устройство 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 2: SB15701 [HDA Creative], устройство 0: ALC898 Analog [ALC898 Analog]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 2: SB15701 [HDA Creative], устройство 2: ALC898 Alt Analog [ALC898 Alt Analog]
  Подустройства: 2/2
  Подустройство №0: subdevice #0
  Подустройство №1: subdevice #1
карта 3: SB15702 [HDA Creative], устройство 0: ALC898 Analog [ALC898 Analog]
  Подустройства: 1/1
  Подустройство №0: subdevice #0
карта 3: SB15702 [HDA Creative], устройство 2: ALC898 Alt Analog [ALC898 Alt Analog]
  Подустройства: 2/2
  Подустройство №0: subdevice #0
  Подустройство №1: subdevice #1

В правила, находящиеся в каталоге /lib/udev/rules.d/ правки не вносил.

И еще такой момент: если в файле /etc/udev/rules.d/10-sound-cards.rules сменить имена на SB15701 и SB15702, то в выводе arecord -l получаю SB1570-1 и SB1570-2. Потом, если заменить на SB1570_A и SB1570_B, то получу SB1570A и SB1570B (либо SB15701 и SB15702).

По ощущениям примерно так: udev запоминает имена, которые когда-либо давались карточкам и потом их не использует, но точной закономерности я не нашел. Так же, как и не нашел ничего полезного с помощью grep -r SB1570 /*

Решил заменой события add на change в /etc/udev/rules.d/10-sound-cards.rules после того, как заметил, что при перезагрузке модуля ядра snd_hda_intel последними в логе появляются строки вида

~# udevadm monitor -u
...
[403.162350] change   /devices/pci0000:00/0000:00:1c.6/0000:05:00.0/sound/card1 (sound)
...
[403.205591] change   /devices/pci0000:00/0000:00:1f.3/sound/card0 (sound)
...
[404.127128] change   /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/sound/card2 (sound)
fingerskillz
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.