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