我最近将我的一台 ubuntu 机器升级到 Karmic,但在将 /dev/raw1394 的权限设置为 0666 时遇到了问题。
这台机器的唯一用途是通过 jackd 使用 /dev/raw1394 的 firepod 录制音频,并且没有连接其他 FireWire 设备,因此该设备的安全性并不是什么问题。
如果我以 root 身份运行,一切都会按预期运行,但我有一些运行录音机的人,我不希望他们拥有 root 访问权限。然而,我搞不清楚哪些行设置了权限
我已经把这个绑住了:
/etc/udev/permissions.d/raw1394.rules:raw1394:root:root:0666
我有这个设置(默认安装)
/lib/udev/rules.d/75-persistent-net-generator.rules:SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})"
/lib/udev/rules.d/75-cd-aliases-generator.rules:# the "path" of usb/ieee1394 devices changes frequently, use "id"
/lib/udev/rules.d/75-cd-aliases-generator.rules:ACTION=="add", SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", \
/lib/udev/rules.d/60-persistent-storage-tape.rules:KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
/lib/udev/rules.d/50-udev-default.rules:# FireWire (deprecated dv1394 and video1394 drivers)
/lib/udev/rules.d/50-udev-default.rules:KERNEL=="dv1394-[0-9]*", NAME="dv1394/%n", GROUP="video"
/lib/udev/rules.d/50-udev-default.rules:KERNEL=="video1394-[0-9]*", NAME="video1394/%n", GROUP="video"
/lib/udev/rules.d/60-persistent-storage.rules:KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
/lib/udev/rules.d/60-persistent-storage.rules:KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
我在 /var/log/syslog 中找到这些行
Apr 30 09:11:30 record kernel: [ 3.284010] ieee1394: Node added: ID:BUS[0-00:1023] GUID[000a9200c7062266]
Apr 30 09:11:30 record kernel: [ 3.284195] ieee1394: Host added: ID:BUS[0-01:1023] GUID[00d0035600a97b9f]
Apr 30 09:11:30 record kernel: [ 18.372791] ieee1394: raw1394: /dev/raw1394 device initialized
我不明白的是,哪一行实际上首先创建了该 raw1394 设备。
如何让 /dev/raw1394 具有权限 0666?
答案1
在这里找到答案: https://help.ubuntu.com/community/Firewire
简而言之,我创建了 /etc/udev/rules.d/raw1394.rules 并在其中添加了以下行:
KERNEL=="raw1394", GROUP="video", MODE="0666"