新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > linux中的熱插拔和mdev機(jī)制

linux中的熱插拔和mdev機(jī)制

作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
mdev是busybox自帶的一個簡化版的udev。

作用是在系統(tǒng)啟動和熱插拔 或動態(tài)加載驅(qū)動程序時,自動產(chǎn)生驅(qū)動程序所需的節(jié)點(diǎn)文件,在文件系統(tǒng)中的/dev目錄下的設(shè)備節(jié)點(diǎn)都是由mdev創(chuàng)建的
mdev掃描/sys/class和/sys/block中所有的類設(shè)備目錄,如果在目錄中含有名為"dev"的文件,且文件中包含的是設(shè)備號,則mdev就利用這些信息為這個設(shè)備在/dev下創(chuàng)建設(shè)備節(jié)點(diǎn)

本文引用地址:http://butianyuan.cn/article/201611/319976.htm


用法:
1. 執(zhí)行mdev前要掛載 /sys
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys
2.命令內(nèi)核在增刪設(shè)備時執(zhí)行/sbin/mdev,使設(shè)備節(jié)點(diǎn)會被創(chuàng)建和刪除
echo /sbin/mdev > /proc/sys/kernel/hotplug
3.設(shè)置mdev,讓它在系統(tǒng)啟動時創(chuàng)建所有的設(shè)備節(jié)點(diǎn)
mdev -s

嵌入式linux文件系統(tǒng)中etc/fstab的內(nèi)容如下

[plain]view plaincopy
print?
  1. #devicemount-pointtypeoptionsdumpfsckorder
  2. proc/procprocdefaults00
  3. tmpfs/tmptmpfsdefaults00
  4. sysfs/syssysfsdefaults00
  5. tmpfs/devtmpfsdefaults00
  6. var/devtmpfsdefaults00


etc/fstab對etc/fstab的解釋

1. 第1列是需要掛載的文件系統(tǒng)或存儲設(shè)備

2. 第2列是掛載點(diǎn)

3. 第3列指定文件系統(tǒng)或分區(qū)的類型

4. 掛載選項,下面列出一些常用的選項

掛載選項:

auto: 系統(tǒng)自動掛載,fstab默認(rèn)就是這個選項
ro: read-only
rw: read-write
defaults: rw, suid, dev, exec, auto, nouser, and async

5. 第5列為dump選項,設(shè)置是否讓備份程序dump備份文件系統(tǒng),0為忽略,1為備份。
6. 第6列為fsck選項,告訴fsck程序以什么順序檢查文件系統(tǒng),0為忽略。

嵌入式linux文件系統(tǒng)中etc/init.d/rcS的的內(nèi)容如下

[plain]view plaincopy
print?
  1. #!/bin/sh
  2. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  3. runlevel=S
  4. prevlevel=N
  5. umask022
  6. exportPATHrunlevelprevlevel
  7. #
  8. #TrapCTRL-C&conlyinthisshellsowecaninterruptsubprocesse.
  9. mount-a
  10. mkdir/dev/pts
  11. mount-tdevptsdevpts/dev/pts
  12. echo/sbin/mdev>/proc/sys/kernel/hotplug
  13. mdev-s
  14. mkdir-p/var/lock


關(guān)于熱插拔:
需要內(nèi)核中支持hotplug
編寫mdev配置文件:/etc/mdev.conf
該文件的作用是:mdev在找到匹配設(shè)備時自動執(zhí)行自定義命令
格式為:
: issions> [<@$*>]
@ 創(chuàng)建節(jié)點(diǎn)后執(zhí)行的
$ 刪除節(jié)點(diǎn)前執(zhí)行的
* 創(chuàng)建后和刪除前都運(yùn)行的


如自動掛載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
當(dāng)檢測到類似sda1這樣的設(shè)備時,執(zhí)行/etc/hotplug/usb里的腳本,腳本的內(nèi)容就是掛載和卸載U盤
當(dāng)檢測到類似mmcblk0p1這樣的設(shè)備時,執(zhí)行/etc/hotplug/sd里的腳本,腳本的內(nèi)容就是掛載和卸載SD卡



關(guān)鍵詞: linux熱插拔mdev機(jī)

評論


技術(shù)專區(qū)

關(guān)閉