去年买的TP-wr703n路由器,刷了openWRT的系统,做了一个简单的无线监控装置,最近又给翻出来了想再扩充一下功能,发现内存太小,挂载U盘路程好艰辛,现在写下来与君共享。
首先什么是openwrt,这个维基百科里有很详细的介绍,这里只简要介绍,所谓的openwrt就是一个开源的路由器专用的嵌入式linux系统,辅助庞大的opkg软件包能扩展很多很多功能。
TP-WR703N路由器 是 TP 在 2011 年推出的一款便携式 3G 路由器,具备一个可连接 3G 上网卡的标准 USB 口,802.11N 150M 无线网络,microUSB 供电接口,搭载 Atheros AR7240 CPU 及 Atheros AR9331 芯片组。小巧省电,不到手掌心大,功耗不及 0.5W。
openwrt通用固件中默认不包含usb存储设备的支持,需要额外安装,但是由于是一年前刷的固件,现在的软件包好多都不支持了,opkg update的时候发现所有软件包源的地址都是错误的,只能重新升级固件版本才行。
升级最新固件
1、从 OpenWrt 官网下载对应型号的固件,由于这个时基于 AR7240 CPU 的,所以在名为 ar71xx 的目录下寻找 wr703n 即可。
2、通过 ssh连接上路由器,并用wget 命令下载最新的固件。
3、使用 mtd -r write /tmp/固件名字.bin firmware 成功后会出现 rebooting……
安装usb存储设备支持包
1、opkg update 更新包列表
2、opkg install kmod-usb-storage block-mount kmod-fs-ext4
安装完后会出现以下结果
root@OpenWrt:~# opkg install kmod-usb-storage block-mount kmod-fs-ext4
Installing kmod-usb-storage (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-storage_3.10.49-1_ar71xx.ipk.
Installing kmod-scsi-core (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-scsi-core_3.10.49-1_ar71xx.ipk.
Installing block-mount (2014-06-22-e0430f5c62f367e5a8e02755412977b02c3fc45e) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/block-mount_2014-06-22-e0430f5c62f367e5a8e02755412977b02c3fc45e_ar71xx.ipk.
Installing kmod-fs-ext4 (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-fs-ext4_3.10.49-1_ar71xx.ipk.
Installing kmod-lib-crc16 (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-lib-crc16_3.10.49-1_ar71xx.ipk.
Installing kmod-crypto-hash (3.10.49-1) to root...
Downloading http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-crypto-hash_3.10.49-1_ar71xx.ipk.
Configuring kmod-scsi-core.
kmod: failed to insert /lib/modules/3.10.49/sd_mod.ko
Configuring kmod-usb-storage.
Configuring kmod-crypto-hash.
Configuring kmod-lib-crc16.
Configuring block-mount.
Configuring kmod-fs-ext4.
kmod: failed to insert /lib/modules/3.10.49/ext4.ko
不知道为什么会出现以上错误(有大神知道的话请不吝赐教),
#cat /proc/filesystems 发现并没有ext4 格式文件系统的支持
#ls /dev 也没有sdX的设备。
重启并查看启动信息
#reboot
#dmesg
发现有以下几行
[ 9.750000] scsi 0:0:0:0: Direct-Access General USB Flash Disk 1.00 PQ: 0 ANSI: 2
[ 9.760000] sd 0:0:0:0: [sda] 15669248 512-byte logical blocks: (8.02 GB/7.47 GiB)
[ 9.770000] sd 0:0:0:0: [sda] Write Protect is off
[ 9.770000] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 9.770000] sd 0:0:0:0: [sda] No Caching mode page found
[ 9.780000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9.790000] sd 0:0:0:0: [sda] No Caching mode page found
[ 9.790000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9.810000] sda: unknown partition table
[ 9.810000] sd 0:0:0:0: [sda] No Caching mode page found
[ 9.820000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 9.820000] sd 0:0:0:0: [sda] Attached SCSI removable disk
说明已经检测到我的U盘了,再查看 /dev 发现 多了一个 sda的文件 ,这就是U盘
df -h 一下
root@OpenWrt:/mnt/usb# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 640.0K 564.0K 76.0K 88% /
/dev/root 2.3M 2.3M 0 100% /rom
tmpfs 14.1M 76.0K 14.0M 1% /tmp
/dev/mtdblock3 640.0K 564.0K 76.0K 88% /overlay
overlayfs:/overlay 640.0K 564.0K 76.0K 88% /
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda 7.2G 16.8M 6.8G 0% /mnt/usb