udev
出自DebianWiki
目錄 |
[編輯] udev
devfs 在 kernel 2.6 中被標示為 OBSOLETE, 取代的方案為 udev。 udev 結合 sysfs 和 hotplug, 提供和 devfs 相似的功能, 當系統中新增或移除裝置時, 會產生 hotplug event, 再由 udev 依 sysfs 的內容生成或是移除對應的 device file。和 devfs 不同的是, devfs 是在 kernel 中完成的, 而 udev 則是完完全全的 userspace 程式。
udev 共分為三個部份:
- namedev: 處理 device file naming 及 permission。
- libsysfs: 提供統一的 access sysfs 介面。
- udev: 處理 /dev 下檔案的生成及移除。
[編輯] 安裝
- 安裝 DebianPackages:udev。
- 重新製作 kernel, 有兩個選擇:
- 用新的 kernel 開機。
[編輯] 命名原則
/etc/udev/rules.d/ 目錄中的內容決定了命名的方式。
該目錄預設的內容為一 symbolic link 指向 ../udev.rules , 使用傳統的 /dev 命令方式。root@debian:/etc/udev/rules.d# ls -l total 0 lrwxrwxrwx 1 root root 13 Jul 2 17:52 udev.rules -> ../udev.rules若您想使用 devfs 的命名方式, 請先刪除該 symbolic link, 並在 /etc/udev/rules.d/ 中建立三個分別指向 ../devfs.rules ../compat.rules 和 ../compat-full.rules 的 symbolic link:
root@debian:/etc/udev/rules.d# rm -f udev.rules root@debian:/etc/udev/rules.d# ln -s ../devfs.rules . root@debian:/etc/udev/rules.d# ln -s ../compat.rules . root@debian:/etc/udev/rules.d# ln -s ../compat-full.rules .然後重開機即可。
[編輯] 可能會碰到的問題
- 開機後看到
WARNING: Unable to open an initial console.
就停住了, 沒有 login promt。- 這是因為系統在 udev 產生 /dev/console 和 /dev/null 之前就要用到這兩個裝置, 解決的方式是在 /dev 中先建好這兩個 device node。請用 knoppix 或是其它的系統開機, mount 原本的 root device (這裡假定原先的 root device 為 /dev/hda3)
debian:~# mount /dev/hda3 /mnt/hda3
再來, 建立這兩個檔案debian:~# cd /mnt/hda3/dev
- 這是因為系統在 udev 產生 /dev/console 和 /dev/null 之前就要用到這兩個裝置, 解決的方式是在 /dev 中先建好這兩個 device node。請用 knoppix 或是其它的系統開機, mount 原本的 root device (這裡假定原先的 root device 為 /dev/hda3)
debian:/mnt/hda3/dev# mknod -m 660 console c 5 1
debian:/mnt/hda3/dev# mknod -m 660 null c 1 3[編輯] 參考資料
- FAQ about udev
- Greg KH 在 OLS 2003 中關於 udev 的投影片
- http://webpages.charter.net/decibelshelp/LinuxHelp_UDEVPrimer.html
![[Main Page]](/upload/4/49/Debian_taiwan_out.png)