OpenWrt 添加usb驱动及相关脚本

本文介绍了如何在OpenWrt中添加USB驱动并实现开机自动挂载。首先,通过添加内核相关支持如usbutils来启用USB设备功能。接着,创建并编辑启动脚本`usbdisk`,赋予其执行权限,并将其加入启动目录以在开机时挂载USB硬盘。最后,讨论了如何实现USB设备的热插拔支持。

第一步,添加内核相关支持

编译openwrt支持USB自动mount功能

make menuconfig
1). 添加USB相关支持
Kernel modules —> USB Support —> <*> kmod-usb-core.  
Kernel modules —> USB Support —> <*> kmod-usb-ohci.  
Kernel modules —> USB Support —> <*> kmod-usb-uhci.  
Kernel modules —> USB Support —> <*> kmod-usb-storage.
Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.
Kernel modules —> USB Support —> <*> kmod-usb2.  

2). 添加SCSI支持
Kernel modules —> Block Devices —> <*>kmod-scsi-core

3). 添加USB挂载
Base system —> <*>block-mount

4). 添加自动挂载工具
Utilities —> Filesystem —> <*> badblocks

5). 添加文件系统支持
Kernel modules —> Filesystems —> <*> kmod-fs-ext4
Kernel modules —> Filesystems —> <*> kmod-fs-vfat
Kernel modules —> Filesystems —> <*> kmod-fs-ntfs


6). 添加UTF8编码,CP437编码,ISO8859-1编码
Kernel modules —> Native Language Support —> <*> kmod-nls-cp437
Kernel modules —> Native Language Support —> <*> kmod-nls-iso8859-1
Kernel modules —> Native Language Support —> <*> kmod-nls-utf8

Utilities  ---> disc ---> <*> fdisk.................................... manipulate disk partition table

Utilities  ---> <*> usbutils................................... USB devices listing utilities

第二步,开机自动挂载

df一下应该就可以看到挂载的USB硬盘了

下面写一个启动脚本,让路由器在启动时自动挂载USB硬盘。

vim /etc/init.d/usbdisk

写入脚本:

#!/bin/sh /etc/rc.common 
START=99 
STOP=10 
start() { 
mount -t ext3 -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /mnt 
} 
stop() 
{ 
sync 
umount /dev/scsi/host0/bus0/target0/lun0/part1 
}
restart() 
{ 
stop
start 
}

加入可执行权限

chmod 755 /etc/init.d/usbdisk

加入到启动目录

ln -s /etc/init.d/usbdisk /etc/rc.d/S99usbdisk

第三步,热插拔支持


自动挂载脚本,在/etc/hotplug.d/block/创建一个30-usbmount的文件,
#!/bin/sh
  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
                   done 
             ;;
  esac


http://wenku.baidu.com/link?url=UIUZFGuZ0iNXmjh6N3EWodiR_Ybbw7q_MFxBnwbDusg12eWkVcEFEAiRwg9jRSmPyO_mPKfA7XijVDgjpAeNHfoyIiR7z8Gdmev8yWuVHxG###

【相关资源来自网络】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱国正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值