udev@kitchen01 †kitchen01のサウンドデバイスのパスを固定するための作業です。kitchen01では/dev/dspと/dev/dsp1が入れ替わることがあるので、このコンフリクトを解消する方向で作業手順を述べます。 目次 †環境 †
作業 †udev †
permission †せっかくなので起動時にデバイスのパーミッションも設定してしまう作業。 大変参考になるサイトの(2)によると /etc/security/console.perms.d/XX-*****.perms なファイルで起動時のデバイスのパーミッションを変更できるとのこと。 50-default.permsを51-local.permsにコピーし、次のように設定: # device classes -- these are shell-style globs <sound>=/dev/dsp* # permission definitions <console> 0666 <sound> 0666 root これでokですた♪ 大変参考になるサイトw †ログ †↓うまくいっていない PCI <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 17:37:43 JST crw------- 1 root root 14, 3 6月 21 17:35 /dev/dsp crw------- 1 root root 14, 19 6月 21 17:35 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 17:35 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 17:35 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p /class/sound/dsp|head -n 20|tail -n 8 looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:04:00.0': ID=="0000:04:00.0" BUS=="pci" DRIVER=="EMU10K1_Audigy" SYSFS{msi_bus}=="" SYSFS{broken_parity_status}=="0" SYSFS{enable}=="1" SYSFS{modalias}=="pci:v00001102d00000004sv00001102sd00002002bc04sc01i00" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 rules.d]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 17:51:46 JST crw------- 1 root root 14, 3 6月 21 17:43 /dev/dsp crw------- 1 root root 14, 19 6月 21 17:43 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 17:43 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 17:43 /dev/soundUSB -> dsp [root@KITCHEN01 rules.d]# udevinfo -a -p /class/sound/dsp|head -n 20|tail -n 8 looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" SYSFS{bInterfaceSubClass}=="01" SYSFS{bInterfaceClass}=="ff" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 18:02:51 JST crw------- 1 root root 14, 3 6月 21 17:52 /dev/dsp crw------- 1 root root 14, 19 6月 21 17:52 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 17:52 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 17:52 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p /class/sound/dsp|head -n 20|tail -n 8 looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" SYSFS{bInterfaceSubClass}=="01" SYSFS{bInterfaceClass}=="ff" ↓うまくいっていない PCI <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 18:05:48 JST crw------- 1 root root 14, 3 6月 21 18:03 /dev/dsp crw------- 1 root root 14, 19 6月 21 18:03 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 18:03 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 18:03 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p /class/sound/dsp|head -n 20|tail -n 8 looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:04:00.0': ID=="0000:04:00.0" BUS=="pci" DRIVER=="EMU10K1_Audigy" SYSFS{msi_bus}=="" SYSFS{broken_parity_status}=="0" SYSFS{enable}=="1" SYSFS{modalias}=="pci:v00001102d00000004sv00001102sd00002002bc04sc01i00" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 19:40:26 JST crw------- 1 root root 14, 3 6月 21 18:22 /dev/dsp crw------- 1 root root 14, 19 6月 21 18:22 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 18:22 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 18:22 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 19:43:08 JST crw------- 1 root root 14, 3 6月 21 19:41 /dev/dsp crw------- 1 root root 14, 19 6月 21 19:41 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 19:41 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 19:41 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 19:44:58 JST crw------- 1 root root 14, 3 6月 21 19:44 /dev/dsp crw------- 1 root root 14, 19 6月 21 19:44 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 19:44 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 19:44 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 19:46:41 JST crw------- 1 root root 14, 3 6月 21 19:45 /dev/dsp crw------- 1 root root 14, 19 6月 21 19:45 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 19:45 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 19:45 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 19:46:41 JST crw------- 1 root root 14, 3 6月 21 19:45 /dev/dsp crw------- 1 root root 14, 19 6月 21 19:45 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 19:45 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 19:45 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっていない PCI <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 20:49:45 JST crw------- 1 root root 14, 3 6月 21 19:47 /dev/dsp crw------- 1 root root 14, 19 6月 21 19:47 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 19:47 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 19:47 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:04:00.0': ID=="0000:04:00.0" BUS=="pci" DRIVER=="EMU10K1_Audigy" SYSFS{msi_bus}=="" SYSFS{broken_parity_status}=="0" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 21:21:54 JST crw------- 1 root root 14, 3 6月 21 21:18 /dev/dsp crw------- 1 root root 14, 19 6月 21 21:18 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 21:18 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 21:18 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっていない PCI <=> soundUSB。ここでパーミッションに関する設定を加えたので/dev/dsp*が666になっている。 [root@KITCHEN01 ~]# date; ll /dev/so* /dev/dsp* 2008年 6月 21日 土曜日 21:41:23 JST crw-rw-rw- 1 root root 14, 3 6月 21 21:40 /dev/dsp crw-rw-rw- 1 root root 14, 19 6月 21 21:40 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 21:40 /dev/soundPCI -> dsp1 lrwxrwxrwx 1 root root 3 6月 21 21:40 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:04:00.0': ID=="0000:04:00.0" BUS=="pci" DRIVER=="EMU10K1_Audigy" SYSFS{msi_bus}=="" SYSFS{broken_parity_status}=="0" ↓うまくいっていない そもそもSYMLINKが作られていない。このへんまで、設定ファイルをいろいろいじって迷走していた。 [root@KITCHEN01 ~]# date; ll /dev/sou* /dev/dsp* 2008年 6月 21日 土曜日 23:13:34 JST ls: /dev/sou*: そのようなファイルやディレクトリはありません crw-rw-rw- 1 root root 14, 3 6月 21 23:12 /dev/dsp crw-rw-rw- 1 root root 14, 19 6月 21 23:12 /dev/dsp1 [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB。ここからはばっちり。 [root@KITCHEN01 ~]# date; ll /dev/sou* /dev/dsp* 2008年 6月 21日 土曜日 23:24:33 JST crw-rw-rw- 1 root root 14, 3 6月 21 23:21 /dev/dsp crw-rw-rw- 1 root root 14, 19 6月 21 23:21 /dev/dsp1 lrwxrwxrwx 1 root root 3 6月 21 23:21 /dev/soundUSB -> dsp [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/sou* /dev/dsp*; udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 2008年 6月 21日 土曜日 23:27:10 JST crw-rw-rw- 1 root root 14, 3 6月 21 23:26 /dev/dsp crw-rw-rw- 1 root root 14, 19 6月 21 23:26 /dev/dsp1 lrwxrwxrwx 1 root root 3 6月 21 23:26 /dev/soundUSB -> dsp looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/sou* /dev/dsp*; udevinfo -a -p `udevinfo -q path -n /dev/dsp`|head -n 18|tail -n 11 2008年 6月 21日 土曜日 23:28:30 JST crw-rw-rw- 1 root root 14, 3 6月 21 23:28 /dev/dsp crw-rw-rw- 1 root root 14, 19 6月 21 23:28 /dev/dsp1 lrwxrwxrwx 1 root root 3 6月 21 23:28 /dev/soundUSB -> dsp looking at device '/class/sound/dsp': KERNEL=="dsp" SUBSYSTEM=="sound" SYSFS{dev}=="14:3" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" ↓うまくいっている USB <=> soundUSB [root@KITCHEN01 ~]# date; ll /dev/sou* /dev/dsp* 2008年 6月 21日 土曜日 23:49:28 JST crw-rw-rw- 1 root root 14, 3 6月 21 23:37 /dev/dsp crw-rw-rw- 1 root root 14, 19 6月 21 23:37 /dev/dsp1 lrwxrwxrwx 1 root root 4 6月 21 23:37 /dev/soundUSB -> dsp1 [root@KITCHEN01 ~]# udevinfo -a -p `udevinfo -q path -n /dev/dsp1`|head -n 18|tail -n 11 looking at device '/class/sound/dsp1': KERNEL=="dsp1" SUBSYSTEM=="sound" SYSFS{dev}=="14:19" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-7/5-7:1.0': ID=="5-7:1.0" BUS=="usb" DRIVER=="snd-usb-audio" SYSFS{modalias}=="usb:v0582p0044d0107dcFFdsc00dpFFicFFisc01ip01" SYSFS{bInterfaceProtocol}=="01" 検索キー †linux fedora core 6 udev udevinfo udevtest udevtrigger デバイス パスが変わる |