前言
为了能够从让手里的ios设备不越狱也能体验goagent,为了脱机下载,为了一号多拨,为了…,打算给手上路由器安装OpenWrt。
不喜欢越狱,又想看墙外的世界,怎么办,把goagent装在电脑上做代理,代价也太大了,能直接让路由翻墙最好了。临睡前利用空闲的网络资源,下个电影,开着电脑听着风扇嗡嗡转,真难受。路由器其实也算是一台轻量级的小电脑了,基本满足安装个轻量级linux的要求。
但问题还是有的,手头的TL-WR1043ND只有8M ROM,python的支持环境本身就很大,搞不定goagent就缺少了一大乐趣。好在这路由器有一个usb口,上比较火的恩山,anywlan,openwrt.org.cn上看了一圈,发现可以设置从usb启动,无限扩展容量。这样看来想给路由安多少应用都没问题了。
这个日志目的是记录折腾的过程。以后再折腾有个查阅的地方。
安装OpenWrt
简单google了下,OpenWrt分为几个版本,包括backfire,attitude_adjustment,dreambox等等。其中前两者是属于官方作品,在openwrt.org官网上有资源可以下载。而dreambox的官方解释是一个中国玩家们开发的版本。这个在openwrt.org.cn上可以下载到。
选新不选旧,官网主页上attitude_adjustment 12.09 final是最新发布的版本。下载链接为http://downloads.openwrt.org/attitude_adjustment/12.09/。按照路由器的芯片种类分类,我的应该选ar71xx。再选generic,能看到一个路由器列表,名单很长,ctrl+F输入wr1043nd找到四个版本。
按照文件系统squashfs和jffs2及升级方式factory和sysupgrade划分为4个版本。squanshfs和jffs2的选择因人而异了,貌似跟应用层关系不大,随便选了个squanshfs。升级方式由于是从TP-LINK的官方固件升级到OpenWrt,需要选择factory,而从OpenWrt其他版本更新,则需要选择sysupgrade。
升级过程很简单,直接进到TP-LINK官方固件的管理后台,选择固件更新,再选取OpenWrt的固件就行了。
由于OpenWrt默认关闭所有功能,所以需要动手拿根网线去把电脑和路由器的lan口连起来。默认web管理界面的地址为192.168.1.1,用户名为root,密码为空。
至此OpenWrt算是安装完成了。
应用安装方式
应用的安装途径有两种,一种是在luci(OpenWrt的web管理界面叫luci)中选择安装,一种是通过SSH2建立连接后用opkg命令安装。实际上luci的安装方式本质也是调用opkg而已。
上图是用luci安装中文语言包,luci默认为英文,安装luci-i18n-chinese这个包后可以将web界面转换成中文。(图中已经转换为中文)
上图是通过SecureCRT建立SSH2连接远程登录到路由器进行安装。首先用”opkg update”获取软件源的应用列表。然后通过”opkg install”下载并安装应用。其中kmod-usb-storge、kmod-fs-ext4、e2fsprogs是下小节添加U盘支持需要用到的包。
添加USB存储装置的支持及格式化U盘为ext4格式
attitude_adjustment 12.09 final本身已经默认安装了各种支持usb接口的包,包括kmod-usb-core,kmod-usb-ohci等等,但是要具体支持usb存储设备,还需要安装kmod-usb-storge。
另外ntfs及fat在linux上的效率较低,我们选择ext4取而代之。添加对ext4的支持需要安装kmod-fs-ext4。添加XXX格式的支持就用kmod-fs-XXX包。
接下来要做的就是将我们的U盘格式化为ext4格式,可以随便找一台linux系统的电脑来格,也可以找个VM虚拟机来格。我笔记本电脑的系统是WIN7 64,找一款能在WIN7 64下格式化U盘为EXT4的软件也不难,PQ之类就可以了。但个人建议还是在路由上安装e2fsprogs这个包,可以用来格式化U盘为ext2、ext3、etx4格式。毕竟以后要想格式化U盘上哪个分区都得把U盘从路由上拔下来,这很麻烦。
“opkg install kmod-usb-storge kmod-fs-ext4 e2fsprogs”
安装完后输入”ls /dev”可以看见多了一个sda1,sda1表示U盘上的第一个分区。指令”mkfs.ext4 /dev/sda1″可以格式化U盘第一个分区为ext4格式。
至此,我们已经为OpenWrt成功添加了USB存储设备的支持,并将文件系统的格式设定为ext4。我们可以像普通的linux那样利用mount指令挂载分区到指定目录了。
复制文件系统到U盘及设置U盘启动
# mount /dev/sda1 /mnt # mkdir /tmp/root # mount -o bind / /tmp/root # cp /tmp/root/* /mnt -a # umount /tmp/root
以上命令主要实现将目录”/”中的所有内容完整复制到U盘当中去。
为了实现开机从U盘启动,我们要安装block-mount包。安装完成后,目录”/etc/config/”下会多出一个”fstab”文件,我们可以通过配置它来实现从U盘启动。
修改”option enabled”为”1″,并添加”option is_rootfs 1″。
到这里,我们已经成功完成了从U盘启动的一切工序。但我们如何知道自己是从U盘启动的呢?有两种方式,一种是在启动的banner中添加个标记,或者在luci的软件安装页面中查看空闲空间是否变大。
复制到U盘中的系统的banner的地址为”/mnt/etc/banner”,随便添加一句”Boot from USB device”,如果以后连接时能看到这句,就证明是系统是从USB启动的。
重启路由器,重新连接。可见下图。
在luci的软件安装界面里,可以看到空闲空间变为14.53G(U盘容量16G)。这也说明U盘启动成功了。这样下来,我们拥有了更多空间,可以安装任何想要的应用而不必为容量犯愁了。
I have noticed you don’t monetize lujunda.cn, don’t waste your traffic, you
can earn additional bucks every month with new monetization method.
This is the best adsense alternative for any type of website (they approve all sites),
for more details simply search in gooogle: murgrabia’s tools
我想自己定制一个web管理界面,会不会很复杂,我看到LUci的文档就呵呵了
Appreciate you sharing, great article.Really thank you! oqza
5389295757 I really enjoy the article post.Really looking forward to read more. Want more.