udev是一個(gè)設(shè)備管理工具,udev以守護(hù)進(jìn)程的形式運(yùn)行,通過偵聽內(nèi)核發(fā)出來(lái)的uevent來(lái)管理/dev目錄下的設(shè)備文件。udev在用戶空間運(yùn)行,而不在內(nèi)核空間 運(yùn)行。它能夠根據(jù)系統(tǒng)中的硬件設(shè)備的狀態(tài)動(dòng)態(tài)更新設(shè)備文件,包括設(shè)備文件的創(chuàng)建,刪除等。設(shè)備文件通常放在/dev目錄下。
本文介紹如何在SSD20x上使用udev,并通過U盤的自動(dòng)掛載和卸載來(lái)了解udev的工作原理。
在buildroot中添加udev服務(wù)
1、進(jìn)入buildroot
2、make menuconfig
3、打開eudev
4.重新編譯后重新打包rootfs.tar.gz,替換project/image/rootfs/rootfs.tar.gz。
5.為了避免mdev對(duì)udev的影響,需要關(guān)閉mdev:
使用udev自動(dòng)掛載和卸載U盤
系統(tǒng)啟動(dòng)后,編輯/etc/udev/udev.conf:
新建/etc/udev/rules.d/10-usb.rules:
當(dāng)/dev/出現(xiàn)sd*設(shè)備時(shí),如sda1,會(huì)執(zhí)行腳本/etc/udev/disk-hotplug.sh。
新建/etc/udev/disk-hotplug.sh:
當(dāng)U盤插入時(shí),會(huì)新增sda1設(shè)備,$ACTION=add,$DEVNAME=sda1,最終會(huì)執(zhí)行mount /dev/sda1 /mnt實(shí)現(xiàn)掛載。
當(dāng)U盤拔掉時(shí),會(huì)刪除sda1設(shè)備,$ACTION=remove,$DEVNAME=sda1,最終執(zhí)行umount /mnt。
U盤的自動(dòng)掛載和卸載就實(shí)現(xiàn)了。