udev是一個設備管理工具,udev以守護進程的形式運行,通過偵聽內核發(fā)出來的uevent來管理/dev目錄下的設備文件。udev在用戶空間運行,而不在內核空間 運行。它能夠根據系統(tǒng)中的硬件設備的狀態(tài)動態(tài)更新設備文件,包括設備文件的創(chuàng)建,刪除等。設備文件通常放在/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的影響,需要關閉mdev:
使用udev自動掛載和卸載U盤
系統(tǒng)啟動后,編輯/etc/udev/udev.conf:
新建/etc/udev/rules.d/10-usb.rules:
當/dev/出現sd*設備時,如sda1,會執(zhí)行腳本/etc/udev/disk-hotplug.sh。
新建/etc/udev/disk-hotplug.sh:
當U盤插入時,會新增sda1設備,$ACTION=add,$DEVNAME=sda1,最終會執(zhí)行mount /dev/sda1 /mnt實現掛載。
當U盤拔掉時,會刪除sda1設備,$ACTION=remove,$DEVNAME=sda1,最終執(zhí)行umount /mnt。
U盤的自動掛載和卸載就實現了。