linux中的熱插拔和mdev機(jī)制
作用是在系統(tǒng)啟動和熱插拔 或動態(tài)加載驅(qū)動程序時(shí),自動產(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就利用這些信息為這個(gè)設(shè)備在/dev下創(chuàng)建設(shè)備節(jié)點(diǎn)
用法:
1. 執(zhí)行mdev前要掛載 /sys
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys
2.命令內(nèi)核在增刪設(shè)備時(shí)執(zhí)行/sbin/mdev,使設(shè)備節(jié)點(diǎn)會被創(chuàng)建和刪除
echo /sbin/mdev > /proc/sys/kernel/hotplug
3.設(shè)置mdev,讓它在系統(tǒng)啟動時(shí)創(chuàng)建所有的設(shè)備節(jié)點(diǎn)
mdev -s
嵌入式linux文件系統(tǒng)中etc/fstab的內(nèi)容如下
- #devicemount-pointtypeoptionsdumpfsckorder
- proc/procprocdefaults00
- tmpfs/tmptmpfsdefaults00
- sysfs/syssysfsdefaults00
- tmpfs/devtmpfsdefaults00
- var/devtmpfsdefaults00
etc/fstab對etc/fstab的解釋
1. 第1列是需要掛載的文件系統(tǒng)或存儲設(shè)備
2. 第2列是掛載點(diǎn)
3. 第3列指定文件系統(tǒng)或分區(qū)的類型
4. 掛載選項(xiàng),下面列出一些常用的選項(xiàng)
掛載選項(xiàng):
auto: 系統(tǒng)自動掛載,fstab默認(rèn)就是這個(gè)選項(xiàng)
ro: read-only
rw: read-write
defaults: rw, suid, dev, exec, auto, nouser, and async
5. 第5列為dump選項(xiàng),設(shè)置是否讓備份程序dump備份文件系統(tǒng),0為忽略,1為備份。
6. 第6列為fsck選項(xiàng),告訴fsck程序以什么順序檢查文件系統(tǒng),0為忽略。
嵌入式linux文件系統(tǒng)中etc/init.d/rcS的的內(nèi)容如下
- #!/bin/sh
- PATH=/sbin:/bin:/usr/sbin:/usr/bin
- runlevel=S
- prevlevel=N
- umask022
- exportPATHrunlevelprevlevel
- #
- #TrapCTRL-C&conlyinthisshellsowecaninterruptsubprocesse.
- mount-a
- mkdir/dev/pts
- mount-tdevptsdevpts/dev/pts
- echo/sbin/mdev>/proc/sys/kernel/hotplug
- mdev-s
- mkdir-p/var/lock
關(guān)于熱插拔:
需要內(nèi)核中支持hotplug
編寫mdev配置文件:/etc/mdev.conf
該文件的作用是:mdev在找到匹配設(shè)備時(shí)自動執(zhí)行自定義命令
格式為:
@ 創(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è)備時(shí),執(zhí)行/etc/hotplug/usb里的腳本,腳本的內(nèi)容就是掛載和卸載U盤
當(dāng)檢測到類似mmcblk0p1這樣的設(shè)備時(shí),執(zhí)行/etc/hotplug/sd里的腳本,腳本的內(nèi)容就是掛載和卸載SD卡
評論