嵌入式linux的mdev機制

2021-08-10 11:34:36 字數 1903 閱讀 1015

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 的檔...