由 ycfu » 週二 2月 06, 2007 6:24 am
不好意思,這兩天才看到這篇。
我這幾天稍微試了一下,問題依然一樣,並沒有解決,不過這篇的確有命中問題核心的感覺,我也覺得改udev是最有效的。
我按照設定之後,它有產生/dev/tvcard和/dev/webcam(我取/dev/webcam),也分別是對應到/dev/video0和/dev/video1,可是video0一樣是抓到webcam,video1一樣是抓成saa7133。
我得設定是:
建立/etc/udev/rules.d/20-names.rules
內容如下:
# TV card
SUBSYSTEM=="video4linux",ATTR{name}=="saa7133*",NAME="video0",SYMLINK="tvcard"
# Logitech Quickcam pro 4000
SUBSYSTEM=="video4linux",ATTR{name}=="Logitech*",NAME="video1",SYMLINK="webcam"
接著直接重新開機,並沒有修改權限,而權限是:
root/root 644
和其他幾個檔案相同。
我用
udevinfo -a -p /class/video4linux/video1
和
udevinfo -a -p /class/video4linux/video0
查到的資訊分別如下(開機後插USB webcam):
Udevinfo 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 '/class/video4linux/video1':
KERNEL=="video1"
SUBSYSTEM=="video4linux"
DRIVER==""
ATTR{button}=="0"
ATTR{name}=="Logitech QuickCam Pro 4000"
ATTR{dev}=="81:1"
.....略
Udevinfo 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 '/class/video4linux/video0':
KERNEL=="video0"
SUBSYSTEM=="video4linux"
DRIVER==""
ATTR{name}=="saa7133_0_ video _FlyTV mini As"
ATTR{dev}=="81:0"
.....略
我用 grep 查了一下,發現
/etc/udev/permissions.rules
有
# video devices
SUBSYSTEM=="video4linux", GROUP="video"
這樣的區段,而
/etc/udev/devfs.rules
有
# video devices
KERNEL=="video[0-9]*", NAME="v4l/%k"
這樣的區段,這些和/etc/udev/rules.d/20-names.rules有沒有影響?
另外,如果要看udev,有沒有哪些資料是可以參考的,我對udev一直頗陌生,只大概知道它用來協助管理module,並且會像Windows一樣自動偵測電腦硬體,其他並不很清楚。