1,251 瀏覽數

Linux – udev(3) 裝置命名方式

前面有提到裝置名稱可以依據需要自行命名,加上系統有一套預設的命名規則.而這些規則都是存放在目錄 /etc/udev/rules.d 下.所有的檔名都必須以 .rules 為結尾!!

先來看看預設的 udev rules 檔案在 /etc/udev/rules.d/50-udev.rules不過不建議將你新的 rules 直接寫在這一個檔案,你可以自行產生新的 rules 檔.
還有一點前面的 50-udev.rules "50"(16 位元的數字) 數字是有其用意的,系統會依據數字的大小依序執行,所以你要新增的 rule 已經登錄在 50-udev.rules 時
你要產生的 rules 數是就要比 50-udev.rules 要小比如 /etc/udev/rules.d/10-local.rules.

在撰寫 rule 時需一段完成,不可使用分段撰寫,可以使用 "#" 來當注釋.

我們來看一下 /etc/udev/rules.d/50-udev.rules 對 cdrom / dvdrom 光碟裝置的定義

[root@benjr ~]# cat /etc/udev/rules.d/50-udev.rules
# old compat symlinks with enumeration
KERNEL=="sr[0-9]*",             SYMLINK+="cdrom cdrom-%k"
KERNEL=="scd[0-9]*",            SYMLINK+="cdrom cdrom-%k"
KERNEL=="pcd[0-9]*",            SYMLINK+="cdrom cdrom-%k"
KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", SYSFS{device/media}=="cdrom", SYMLINK+="cdrom cdrom-%k"

KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="check-cdrom.sh %k DVD", SYMLINK+="dvd dvd-%k"
KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="check-cdrom.sh %k DVD", SYMLINK+="dvd dvd-%k"

KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="check-cdrom.sh %k CD-R", SYMLINK+="cdwriter cdwriter-%k cdrw cdrw-%k"
KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="check-cdrom.sh %k CD-R", SYMLINK+="cdwriter cdwriter-%k cdrw cdrw-%k"

KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM="check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter dvdwriter-%k dvdrw dvdrw-%k"
KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter dvdwriter-%k dvdrw dvdrw-%k"

可以看到光是 cdrom / dvdrom 光碟裝置或是其他相關的裝置都被命名成不同的裝置名稱.

目前我系統上有兩個光碟裝置(),光是符合上面的 rules 所產生的裝置就會這麼多了!!不過他們最終的連結還是會連結到 cdrom / dvdrom 真實的裝置.

[root@benjr mnt]# ll /dev/cd*
lrwxrwxrwx 1 root root 4 Mar 20 05:46 /dev/cdrom -> scd0
lrwxrwxrwx 1 root root 3 Mar 17 01:23 /dev/cdrom-hdc -> hdc
lrwxrwxrwx 1 root root 4 Mar 20 05:46 /dev/cdrom-sr0 -> scd0
lrwxrwxrwx 1 root root 4 Mar 20 05:46 /dev/cdrw -> scd0
lrwxrwxrwx 1 root root 4 Mar 20 05:46 /dev/cdrw-sr0 -> scd0
lrwxrwxrwx 1 root root 4 Mar 20 05:46 /dev/cdwriter -> scd0
lrwxrwxrwx 1 root root 4 Mar 20 05:46 /dev/cdwriter-sr0 -> scd0

所以不管你為這裝置設了多少 rules (可以在同一個檔案或是不同的檔案)來定義 cdrom /dvdrom 系統都會加以產生.

網友的想法

  1. 自動參照通知: Linux – udev | Benjr.tw

發表迴響