本文应用与改了8M的flash, 4M flash的同学请自行酌情修改。
本文为原创,如要转载请注明出处。放在blog上是为了下次自己升级时看看方便。
1. 刷官方openwrt trunk版本,下载地址
http://downloads.openwrt.org/snapshots/trunk/ar71xx/
2. 设置本机ip为192.168.1.2,网线连接703N的网口。
用Putty telent 192.168.1.1上。
passwd root
修改路由器root账户密码。
3. 用WinSCP,使用SCP方式登录路由器,192.168.1.1,修改几个配置文档(当然用命令行的vi也行,自己想吧,WinSCP方便而已)
/etc/config/wireless
config wifi-device radio0
config wifi-iface
/etc/config/network
config ‘interface’ ‘loopback’
config ‘interface’ ‘lan’
config ‘interface’ ‘wan’
修改好后,重启703N。 同时把703N用网线接到上一级带DHCP的可上网的路由器上。
4. 无线连接703N. 用putty通过ssh连接到703N上,路由器地址为上面network中的设置,这里假设为192.168.10.1。然后开始安装相应的package。 我安装的如下:
opkg update
opkg install luci
//luci界面
opkg install luci-i18n-chinese
//luci中文支持
–opkg install luci-theme-bootstrap
//luci的theme,可不装
opkg install luci-app-ddns
//ddns
opkg install luci-app-hd-idle
// usb硬盘自动休眠,usb口接硬盘用的,可不装
opkg install luci-app-samba
// samba
opkg install luci-app-upnp
–opkg install luci-app-qos
//qos,喜欢的装
opkg install luci-app-ushare
// dlna服务,看个人喜好
opkg install luci-proto-3g
// 3g拨号支持
opkg install nfs-kernel-server
// nfs文件服务器, 要的装
opkg install usb-modeswitch-data // 国内的3g上网卡要装这个,比如我的中兴583
opkg install kmod-usb-serial-option //
3g上网卡要的
opkg install kmod-usb-storage
// 外挂usb硬盘要的
opkg install kmod-usb-ohci
//usb1.1的设备,似乎默认就装了
opkg install kmod-usb2 //默认就装了
opkg install kmod-usb-uhci
//外挂usb硬盘要的, 似乎不装也行,好像只是针对intel,via的一些控制器。
opkg install block-mount
// 自动挂载用的
opkg install kmod-fs-ntfs
// ntfs,只读
opkg install kmod-fs-ext4
// linux的ext2,3,4系统
opkg install kmod-fs-vfat
// fat,fat32
opkg install kmod-nls-utf8
// 文件系统的语言支持,想支持中文必须的
opkg install kmod-nls-cp437
// 文件系统的语言支持,可不装
opkg install kmod-nls-iso8859-1
// 文件系统的语言支持,可不装
opkg install ntfs-3g // ntfs的读写支持
–opkg install e2fsprogs // ext格式工具
–opkg install usbutils
// usb的工具
–opkg install restorefactory // reset,可不装
opkg install luci-app-transmission // transmission,爱装不装
装好后,执行下面命令,启动luci界面。
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
在这之后就可以进入web页面配置了。详细的就不列举的。
5. 下面说些有点意思的,仅供参考,并不对所有人适用。
6. 如果经常要插usb硬盘到路由器的话,一般用自动挂载即可,如果有特殊需要,可以看下用uuid或者卷标来挂载设备。
通过sda1(sda2…)还是sdb1(sdb2…)来加载有点麻烦,因为换了设备后,根据响应速度,是a还是b就不一定了,所以,推荐用uuid或卷标
安装udev(不确认是否需要,各位可以先不装试试看)
opkg install udev
opkg install udev
在没插入一个新设备后,先挂载,然后用blkid命令查看下uuid,记下来
# blkid
然后修改下/etc/config/fstab,就可以如下写(文件内容局部),把设备名sda1之类的换成uuid即可
….
config mount
option target
/mnt/usbstorage
option uuid
“409f6cf6-59f7-4f4e-bacb-14b355679c73″
option fstype
ntfs-3g
option options
rw,sync
option enabled
1
option enabled_fsck 0
config mount
config mount
option target
/mnt/usbstorage
option uuid
” b06e758a-2355-485e-8ff5-b5d9d7334797
“
option fstype
ext4
option options
rw,sync
option enabled
1
option enabled_fsck 0
重启就能生效了。这样不会出现设备名有sda1变为sdb1之类的问题。
当然openwrt支持用卷标来识别。偷懒的用卷标也行。
7. NFS设置,待补充
然后根据自己的需要修改/etc/exports
root@OpenWrt:~# cat /etc/exports
/mnt
(ro,all_squash,insecure)
root@OpenWrt:~# cat /etc/exports
/mnt
8. ushare设置
9. Samba设置,待补充
模版里添加utf8
unix charset = utf-8
dos charset = uts-8
10. 利用reset键,做一个一键切换路由模式,比如按住reset0-2秒放开,切换到3g配置, 按住reset3-8秒放开,切换到ap模式,reset 9秒以上放开,切换到二级路由dhcp模式。
这部分请自行研究下,因为每个人的要求不一样,这里是自用的配置,仅仅供你们参考。
操作基本都在WinSCP下完成
a. 检测一下路由器reset按钮的名称
在/etc/hotplug.d/ 下面建立一个button的新目录。
在/etc/hotplug.d/button目录下,建议一个文件名为buttons的文件,内容如下
#!/bin/sh
logger $BUTTON
logger $ACTION
保存,然后按一下路由器上的reset按钮, 然后用putty ssh到路由上,用logread命令看下,比如
Jan 1 00:01:15 OpenWrt user.notice root:
reset
Jan 1 00:01:15 OpenWrt user.notice root: pressed
Jan 1 00:01:16 OpenWrt user.notice root:
reset
Jan 1 00:01:16 OpenWrt user.notice root: released
红色的就是按钮的名称,以下操作假设按钮名称为reset
b. 在/etc/hotplug.d/button目录下,在建立一个00-button的文件,内容如下
. /etc/functions.sh
do_button () {
}
config_load system
config_foreach do_button button
保存。
c.在/usr/bin/ 下键三个文件
文件change2ap: //仅作ap的配置,ip会从上级路由的dhcp获得
#!/bin/sh
uci delete network.wan
uci delete network.lan
uci set network.lan=interface
uci set network.lan.ifname=eth0
uci set network.lan.type=bridge
uci set network.lan.proto=static
uci set network.lan.ipaddr=192.168.1.2
//ip地址不要和上级路由重复,但需要在同一个网段
uci set network.lan.netmask=255.255.255.0
uci set network.lan.gateway=192.168.1.1
//上级路由ip
uci set network.lan.dns=192.168.1.1
//上级路由ip
uci commit network
uci set dhcp.lan.ignore=1
//关闭本机dhcp,这样无线连接的设备会从上级路由得到ip地址
uci commit dhcp
reboot
文件change23g:
//3g配置
#!/bin/sh
uci delete network.wan
uci delete network.lan
uci set network.lan=interface
uci set network.lan.ifname=eth0
uci set network.lan.type=bridge
uci set network.lan.proto=static
uci set network.lan.ipaddr=192.168.1.1
//路由ip
uci set network.lan.netmask=255.255.255.0
uci set network.wan=interface
uci set network.wan.ifname=ppp0
uci set network.wan.proto=3g
uci set network.wan.maxwait=0
uci set network.wan.service=evdo
// 3g这段请根据自己的上网卡做配置,这里按电信的做配置
uci set network.wan.device=/dev/ttyUSB0
uci set network.wan.username=ctnet@mycdma.cn
//电信的用户
uci set network.wan.password=vnet.mobi
uci set network.wan.auto=1
uci commit network
uci delete dhcp.lan.ignore
//开启路由dhcp功能
uci commit dhcp
reboot
文件change2dhcp: //二级路由配置
#!/bin/sh
uci delete network.wan
uci delete network.lan
uci set network.lan=interface
uci set network.lan.type=bridge
uci set network.lan.proto=static
uci set network.lan.ipaddr=192.168.10.1
uci set network.lan.netmask=255.255.255.0
uci set network.wan=interface
uci set network.wan.ifname=eth0
uci set network.wan.proto=dhcp
uci set network.wan._orig_ifname=eth0
uci set network.wan._orig_bridge=false
uci commit network
uci delete dhcp.lan.ignore
uci commit dhcp
reboot
全部保存后,修改文件权限为755。 必须要改,否则可能执行不了。
d. 修改 /etc/config/system 配置,在尾部添加如下信息
config button
option button ‘reset’
option action ‘released’
option handler ‘/usr/bin/change23g’
option min ‘0’
option max ‘2’
config button
option button ‘reset’
option action ‘released’
option handler ‘/usr/bin/change2ap’
option min ‘3’
option max ‘8’
config button
option button ‘reset’
option action ‘released’
option handler ‘/usr/bin/change2dhcp’
option min ‘9’
option max ’99’
保存。 重启路由即可。 这样以后,按住reset2秒内,
3-8秒 和 9秒以上,会自动切换到对应的网络配置,并自动重启路由器。 呵呵方便点而已。免得还得进web进行修改。
以上万一有不对的请见谅。
另外。万一不小心改成砖头了,请在插上电源的瞬间,按住reset键一会,看到led等疯狂闪动后, 设置本机ip为192.168.1.2, 连接网线到路由,telnet到192.168.1.1,
执行firstboot命令,重启路由即可恢复最初没web界面的状态。