[問題]如何固定/dev/video*的編號?

如果您覺得您的問題不屬於 debian desktop 或是 debian server 版的範圍內,請在這裡發問。

版主: mufa

[問題]如何固定/dev/video*的編號?

文章ycfu » 週四 1月 25, 2007 2:52 am

各位前輩好,想詢問一下,有沒有辦法將/dev/video編號固定?

我的問題是這樣的,
家裏的電腦,我想到接個USB WebCam(羅技PRO4000,用的是pwc module),這台電腦上面也有電視卡(saa713x晶片)。

因為PRO4000的USB的關係,在開機進入Linux後插入,它會是/dev/video1;然而,在進入Linux之前,也就是電腦開機前插入(或RESET、REBOOT),它會是/dev/video0。

我希望這個編號能夠固定,否則電視卡的設定每次都會亂跑,該如何設定呢?

我試著用類似網路卡的方法,在/etc/modutils/aliases加入「alias usbvideo0 pwc」或者是「alias video1 pwc」,可是它都沒有作用,不知道有沒有人有過類似的經驗,或者設定方法?
ycfu
可愛的小學生
可愛的小學生
 
文章: 28
註冊時間: 週一 4月 03, 2006 1:34 am

文章csj » 週日 1月 28, 2007 3:09 am

你可以試試看自訂 udev rule,
首先先確定你 cam 和 tvcard 對應的 device node
假設你的 tvcard 現在是 /dev/video0,而 cam 是 /dev/video1

接著使用
代碼: 選擇全部
udevinfo --query path -n /dev/video0

來查詢他對應到 sys 的位置
假設出來結果是:
/class/video4linux/video0

然後在利用出來的結果來查他的詳細資料:
代碼: 選擇全部
udevinfo -a -p /class/video4linux/video0


會跑出來很多資訊,可以用來當作 udev rule 的判斷方式,
例如:
SUBSYSTEM=="video4linux"
ATTR{dev}=="81:0"

用這兩個條件來判斷他是 tvcard,
接著
代碼: 選擇全部
vim /etc/udev/rules.d/20-names.rules

在開頭加上:
# TV card
SUBSYSTEM=="video4linux",ATTR{dev}=="81:0",NAME="video0",SYMLINK="tvcard"

他就會確定你的電視卡一定是 /dev/video0 而且有個軟連結是 /dev/tvcard

同理接著設定 cam,把查到的 SUBSYSTEM 和 ATTR{dev} 當作判斷條件寫在 /etc/udev/rules.d/20-names.rules
例如我的是:
# Logitech Quickcam pro 5000
SUBSYSTEM=="video4linux",ATTR{dev}=="81:1",NAME="video1",SYMLINK="cam"


然後 /etc/ini.d/udev restart 看看 /dev 底下是不是多出了 tvcard 和 cam?
希望有幫上忙 :-)

更詳細的步驟也可以看一下
http://csj.homelinux.org/blog/index.php ... &tb=1&pb=1
歡迎光臨我的 blog:
http://csj.homelinux.org/blog
csj
可愛的小學生
可愛的小學生
 
文章: 56
註冊時間: 週五 8月 27, 2004 3:12 pm
來自: 台北

文章csj » 週日 1月 28, 2007 8:19 pm

剛剛發現兩個裝置在 register dev node 時,
順序也無法確定,
所以不應該用 ATTR{dev} 當作判斷條件,

所以我改成以 ATTR{dev} 來判斷:
改成如下:
# TV card
SUBSYSTEM=="video4linux",ATTR{name}=="saa7133*video*Stream Stud",NAME="video0",SYMLINK="tvcard"

# Logitech Quickcam pro 5000
SUBSYSTEM=="video4linux",ATTR{name}=="USB Video Class",NAME="video1",SYMLINK="cam"
歡迎光臨我的 blog:
http://csj.homelinux.org/blog
csj
可愛的小學生
可愛的小學生
 
文章: 56
註冊時間: 週五 8月 27, 2004 3:12 pm
來自: 台北

文章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一樣自動偵測電腦硬體,其他並不很清楚。
ycfu
可愛的小學生
可愛的小學生
 
文章: 28
註冊時間: 週一 4月 03, 2006 1:34 am

文章企鵝狂 » 週日 4月 22, 2007 11:53 pm

KERNEL=="video*",DRIVER=="pwc",NAME="webcam"

不知道這樣行不行...用module 名稱指定
http://news.bbc.co.uk/1/hi/world/asia-pacific/country_profiles/1285915.stm


Country profile: Taiwan
Map of Taiwan
Taiwan is the island which has for all practical purposes been independent for half a century, but which China regards as a rebel region that must be reunited with the mainland - by force if necessary.
企鵝狂
活潑的高中生
活潑的高中生
 
文章: 477
註冊時間: 週三 3月 31, 2004 11:13 am
來自: 台灣共和國


回到 debian misc

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron