mdev是busybox自帶的乙個簡化版的udev
作用是在系統啟動和熱插拔 或動態載入驅動程式時,自動產生驅動程式所需的節點檔案,在檔案系統中的/dev目錄下的裝置節點都是由mdev建立的
使用mdev時不加引數就是用hotplug機制來決定建立什麼樣的裝置檔案。而用mdev -s是用sys檔案系統提供的資訊來建立裝置檔案的.
mdev -s掃瞄/sys/class和/sys/block中所有的類裝置目錄,如果在目錄中含有名為"dev"的檔案,且檔案中包含的是裝置號,則mdev就利用這些資訊為這個裝置在/dev下建立裝置節點
配置核心makefile
make menuconfig
general setup ---->
configure standard kernel features (for small systems) ---->
[*] load all symbols for debugging/ksymoops
[*] include all symbols in kallsyms
[*] support for hot-pluggable devices
[*] enable support for printk
配置busybox makefile
make menuconfig
linux system utilities ---->
[*] mdev
[*] support /etc/mdev.conf
[*] support subdirs/symlinks
[*] support regular expressions substitutions when renaming device
[*] support command execution at device addition/removal
[*] support loading of firmwares
用法:
1. 執行mdev前要掛載 /sys
以下是**片段:
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys
2.命令核心在增刪裝置時執行/sbin/mdev,使裝置節點會被建立和刪除
以下是**片段:
echo /sbin/mdev > /proc/sys/kernel/hotplug
3.設定mdev,讓它在系統啟動時建立所有的裝置節點
以下是**片段:
mdev -s
關於熱插拔:
需要核心中支援hotplug
編寫mdev配置檔案:/etc/mdev.conf
該檔案的作用是:mdev在找到匹配裝置時自動執行自定義命令
格式為:
: [<@$*>]
@ 建立節點後執行的
$ 刪除節點前執行的
* 建立後和刪除前都執行的
如自動掛載u盤和sd卡指令碼:
以下是**片段:
sd[a-z][0-9] 0:0 0660 @/etc/hotplug/usb/udisk_insert
sd[a-z] 0:0 0660 $/etc/hotplug/usb/udisk_remove
mmcblk[0-9]p[0-9] 0:0 0660 @/etc/hotplug/sd/sd_insert
mmcblk[0-9] 0:0 0660 $/etc/hotplug/sd/sd_remove
當檢測到類似sda1這樣的裝置時,執行/etc/hotplug/usb裡的指令碼,指令碼的內容就是掛載和解除安裝u盤
當檢測到類似mmcblk0p1這樣的裝置時,執行/etc/hotplug/sd裡的指令碼,指令碼的內容就是掛載和解除安裝sd卡
嵌入式Linux用mdev實現U盤自動掛載
原帖 在arm嵌入式linux下,要讓u盤自動掛載,可以用到mdev方式實現 mdev是busybox中的乙個udev管理程式的乙個精簡版,它可以實現裝置節點的自動建立和裝置的自動掛載 下面是實現的步驟 1 確認busybox做的根檔案系統如下選項有選中 linuxsystem utilities ...
linux嵌入式程式設計 基礎 鎖機制
共享資源被併發使用的時候,當有可能破壞資源的一致性的時候,就需要一種同步機制,保證資源可以被使用正確。廁所浴室 一種共享資源 爸爸 媽媽 小孩 使用者 當有乙個人進入廁所後,該資源已經被占用,就會將門鎖住。另乙個人只能排隊等待,直到資源被釋放 開門離開 下乙個人才能使用。名稱 定義特點 應用場景 備...
linux中的mdev機制
mdev是busybox自帶的乙個簡化版的udev。作用是在系統啟動和熱插拔 或動態載入驅動程式時,自動產生驅動程式所需的節點檔案,在檔案系統中的 dev目錄下的裝置節點都是由mdev建立的 mdev掃瞄 sys class和 sys block中所有的類裝置目錄,如果在目錄中含有名為 dev 的檔...