udev模型管理hotplug

本文详细介绍了udev在Linux kernel 2.6系列中的作用及其配置方法。包括udev的启动配置、热插拔规则设置以及如何自动挂载SD卡等。通过实际操作演示了udev管理设备节点的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

udevLinux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。它同时也是用来接替devfs及热插拔的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为。

创建/etc/init.d/S01udev文件,内容如下:

#!/bin/sh  

mkdir /dev/pts  
mount -t devpts devpts /dev/pts  
 
udevd --daemon  
udevstart  

配置udev配置文件,创建/etc/udev/udev.conf文件,内容如下:

# udev.conf  
# The initial syslog(3) priority: "err", "info", "debug" or its  
# state can be changed with: "udevcontrol log_priority=<value>".  

udev_root="/dev/"  
udev_rules="/etc/udev/rules.d"  
udev_log="err"  

配置热插拔规则文件,创建/etc/udev/rules.d/11-sdcard-hotplug.rules文件,内容如下:

#
# udev rules file for sdcard hotplug
#

ACTION=="add",KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/etc/udev/sdcard_hotplug.sh add /media %k"
ACTION=="remove",KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/etc/udev/sdcard_hotplug.sh remove /media %k"

配置热插拔脚本文件,创建/etc/udev/sdcard_hotplug.sh文件,内容如下:

#!/bin/sh

case $1 in
    add)
        mkdir -p $2
        mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=0000 /dev/$3 $2
#       mount -t vfat /dev/$2 /media
        ;;
        
    remove)
        umount $2
        rm -rf $2
        ;;
esac

按以上步骤配置完,插上SD卡,串口打印信息如下:

# card connected!
mmc0: new SDHC card at address 0001
mmcblk0: mmc0:0001 00000 29.8 GiB 
 mmcblk0: p1
FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

通过df命令查看到sd卡的挂载目录为/media

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 3.0M      2.7M    308.0K  90% /
tmpfs                    16.6M      4.0K     16.6M   0% /dev
/dev/mtdblock3           10.0M      7.0M      3.0M  70% /mnt/mtd
tmpfs                    16.6M         0     16.6M   0% /mnt/mtd/dvs/mobile/tmpfs
/dev/mmcblk0p1           29.8G     77.2M     29.7G   0% /media

拔掉SD卡后,目录/media消失。

参考文章

脚本实现U盘自动挂载(linux平台)
详解udev
linux下实现U盘和sd卡的自动挂载
udev模型管理hotplug
linux中的热插拔和mdev机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值