openwrt U盘热插拔自动挂载

本文介绍如何在Linux环境下配置USB设备的支持,并实现U盘的自动挂载功能。主要内容包括添加USB及相关文件系统的内核模块支持,设置自动挂载脚本等。
  • 添加USB相关支持
    Kernel modules —> USB Support —> <*> kmod-usb-core.  ##默认已经选了
    Kernel modules —> USB Support —> <*> kmod-usb-ohci.  ##默认已选 old usb1.0
    Kernel modules —> USB Support —> <*> kmod-usb-uhci.  ## usb1.1
    Kernel modules —> USB Support —> <*> kmod-usb-storage.
    Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.
    Kernel modules —> USB Support —> <*> kmod-usb2.  ##默认已经选了 usb2.0

  • 添加SCSI支持
    Kernel modules —> Block Devices —> <*>kmod-scsi-core  ##默认已经选了 usb3.0

  • 添加USB挂载
    Base system —> <*>block-mount

  • 添加文件系统支持
    Kernel modules —> Filesystems —> <*> kmod-fs-ext4 (移动硬盘EXT4格式选择)
    Kernel modules —> Filesystems —> <*> kmod-fs-vfat(FAT16 / FAT32 格式 选择)
    Kernel modules —> Filesystems —> <*> kmod-fs-ntfs (NTFS 格式 选择)

  • 退出保存 make V=99

自动挂载U盘:编辑 /etc/hotplug.d/block/10-mount 写入以下内容
#!/bin/ash

case "$ACTION" in
	add)
		for i in $(ls /dev/ | grep 'sd[a-z][1-9]')
		do
			mkdir -p /mnt/$i
			mount -o iocharset=utf8,rw /dev/$i /mnt/$i
			if [ $? -ne 0 ]
			then
				mount -o rw /dev/$i /mnt/$i
			fi
		done
		;;
	remove)
		MOUNT=`mount | grep -o '/mnt/sd[a-z][1-9]'`
		for i in $MOUNT
		do
			umount $i
			if [ $? -eq 0 ]
			then
				rm -r $i
			fi
		done
		;;
esac

### OpenWRT 中实现按键热插拔功能的方法 在OpenWRT环境中,通过`gpio-button-hotplug`模块可以实现按键的热插拔事件处理。此机制允许系统检测并响应GPIO按钮的状态变化,并将这些状态变化作为热插拔事件传递给Procd进程管理系统。 #### 安装必要的软件包 为了使按键能够触发热插拔事件,需先安装`kmod-input-gpio-buttons`内核模块以及对应的用户空间工具: ```bash opkg update && opkg install kmod-input-gpio-buttons hotplug2 ``` #### 配置 GPIO 按钮 编辑或创建文件 `/etc/hotplug.d/input/10-gpio-keys` 来定义具体的GPIO引脚及其对应的动作。例如,假设有一个连接到GPIO编号为7的开关,则可以在上述文件中加入如下内容来配置按下时的行为[^2]: ```bash #!/bin/sh case "$ACTION" in pressed) logger "Button on GPIO 7 was pressed" ;; esac ``` 这段脚本会在每次检测到指定GPIO上的电平发生变化(即按钮被按下的时候)执行相应的命令。这里仅记录了一条日志消息;实际应用中可以根据需求替换为其他操作,比如重启路由器、运行特定程序等。 #### 启用服务 确保 `procd` 和 `hotplug2` 已经启动并且正在监听来自硬件层面的消息。通常情况下,默认安装后的OpenWRT已经启用了这两个组件,但如果遇到问题可以通过以下命令手动启用它们: ```bash /etc/init.d/procd enable /etc/init.d/hotplug2 enable ``` 最后记得保存更改并重新加载配置以生效新的设置: ```bash uci commit reboot ``` 这样就可以完成基本的按键热插拔功能实现了。当物理按键被激活时,会触发预设好的动作序列,从而达到预期的效果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值