西西河

主题:【原创】把DIY刷机进行到底,向大家介绍OpenWRT -- ragtime

共:💬10 🌺14
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 【原创】把DIY刷机进行到底,向大家介绍OpenWRT

    前两天有文提及现在计算机的耗电,其实什么机器比嵌入式家用无线路由耗电更少呢?不过问题是嵌入式机往往功能不强,而且原装操作系统一般限制多多,不好玩。怎么办?两个字:刷机。

    这里就给大家推荐openwrt,外链出处。Linksys的家用产品大多数都是采用Linux为操作系统的。而限于Gnu版权限制,它需要公开系统源码。所以在Linksys的网站上一般产品都有一个链接,可以下载整个系统的源码。既然是Linux,那么它的预装的bootloader选择就不多了,一般都是redboot。而Redboot是有固件下载升级支持的。于是很快有人就开始自己改Linksys的系统固件,再通过redboot等办法装到路由上。OpenWRT就是几个网上流行的后市场系统固件包之一。既然叫Open,它自然就是公开源码的而且是免费的。

    OpenWRT最初是面对Linksys的家用无线路由的,这个从它的名字上也看得出来,不过后来渐渐扩展到其他牌子的家用无线路由上了。这里有一个详细列表,可以从中看到OpenWRT是否支持您的家用无线路由。外链出处

    如果没有合适的硬件,又想玩一玩,那么我推荐买Linksys的WRTSL54GS 外链出处。这是一台11g无线加4+1个10/100Ethernet口。这个家用无线路由和其他同类产品相比有几个好处。一般的家用无线路由配置都是233(CPU)/16(闪存)。而这一款是266/32的。当然嵌入式CPU有好几类,不容易简单比较主频,但是这样的配置在家用无线路由里面是很高的了。另外还有一点,这款机带一个USB2的口。这样它的扩展性就几乎是无边的了。现在这机子的价格是$100,估计随着新一代草稿11n产品越来越多,还会降价。耗电当然跟USB口上接什么东西有关,如果没接或者只接个U盘的话,大概也就是8瓦左右吧。不过也有一个缺点,这机器的无线部分不强,只有一个天线口,没有diversity。

    这机器可以干什么呢?首先这是一台全须全尾的Linux机(当然说全须全尾是指linux内核部分,当然没有Xwindow部分--有了也没法接显示器阿,至于内核模块和应用,看你有多大空间自己装了),可以让你满足玩Linux的雄心。和ubuntu之类面向普通用户的Linux包相比,说你在玩自己改装的Linux无线路由自然好听多了。除此还可以派什么用场呢?文件服务器,打印机服务器等自然不在话下。如果愿意,也可以把系统root装在USB外界盘上,这样就不受那个32兆闪存的限制了。路由方面,可以有路由/交换,虚拟局网,iptables防火墙,WDS无线路桥等等诸般扩展功能。还有就是可以做成一个无线网的监视器,专事监听。另外以前提到过要破网络尖兵需要改TTL递减的处理,这个OpenWRT也是一个理想的修改基准平台。

    刷机很简单,就拿推荐的WRTSL54GS来说,它的原装固件里的web设置页面里有一个升级固件的选项。这样只要从OpenWRT下载预包好的固件二进制文件,用路由自带的固件升级选项把这个固件装进去就好了。对于有的机型,可能要设置tftp服务器,通过redboot的tftp装新固件。好在在前面提到所主持硬件的网页上,所支持的硬件都有很详细的刷机步骤。

    刷好后,重启,就可以用了。OpenWRT也有自己的系统设置网页,和Linksys原状的有些类似,都很好懂。另外OpenWRT会保留您原先的各种设置。原来的路由地址也保留,这样再进新的系统设置网页就用同一地址就好了。同样这网页上也有固件升级的选项。这样如果玩OpenWRT玩厌了,您还可以再把Linksys的固件刷回去。

    当然如果只有设置网页作为界面,咱们也没必要刷机了。OpenWRT可以让您通过SSH进入,直接亲密接触Linux的终端界面。刷机后第一次进入先用root来telnet。进入后系统会要求设置root的口令(默认值是没有口令)。设好退出后,telnet就从此被关闭了,以后将只能用ssh进入。

    在OpenWRT网站上还有整个开发树的下载,可以下载来自己改Linux内核。该好后make包装成您自己的无线路由固件。

    元宝推荐:闲看蚂蚁上树,
    • 家园 发现也有在玩儿openwrt的朋友,真高兴!

      推荐大家把整个源代码包都下载下来,重新配置内核后编译出自己的firmware来。这样做的好处除了能够根据自己的需要来编译内核和软件包以外,还能够生成一个mips CPU的toolchain。有了toolchain, 自己以后就想往里面加什么软件,下载源代码后用toolchain编译就行了

      如果有感兴趣的朋友,可以试试在路由器里装上openvpn(外链出处,包含在源代码包中), 建立自己的private network。这样用装了openvpn client的电脑从Internet上登录VPN server后,就可以跟在自己的局域网里一样啦。不过我只用它作过vpn client,不知道作server时会不会给CPU造成太大的负担。

      openVPN client在连接VPN server的时候需要知道server的IP地址。如果ISP给的IP地址是不固定的,可以装上ez-ipupdate(也包含在源代码包里)。注册一个动态域名(外链出处)后,让路由器定时更新域名的IP地址。在client端配置server的地址时,用这个动态域名就行了。

      另外,提醒大家在更新firmware前,一定要确认nvram的boot_wait选项已经打开。这样万一更新firmware失败或者刷了有bug的firmware导致路由器启动失败,还可以在boot_wait那几秒里刷入新的firmware.如果真的把路由器玩儿瘫了(启动不了,也进入不了boot_wait状态),就只能试试这最后一招儿了:外链出处,我曾经象这样救活过一台WRT54G.当然,要到最后没辙的时候才考虑这样干。希望大家用不着这个

      • 家园 花,再问ragtime和多多益善两位高手:镜像

        openwrt里有没有类似ghost的solution.

        比如说,我花了几小时搞定了openwrt/vpn/sftp/bt以后,能不能dump一个镜像出来,以后万一死机(可能性不小?)或者怎么了,我就直接镜像覆盖,省得一个一个重新装了?

        是不是就是多多益善兄说的编译一个自己的firmware?有没有fool-proof tutorial?

        • 家园 OpenWrtDocs

          关于备份和恢复可以参考OpenWrt的文档( 外链出处. 个人觉得OpenWrt的文档很不错, 组织的比较好. 而且也比较完善.如果想玩儿OpenWrt的话,应该把它加到书签里)中的:

          外链出处

          外链出处

          不过我自己从没备份/恢复过整个镜像.我看过上面的文档, 觉得那里面是在知道每个partition对应的设备名的情况下才能作的.具体到每个不同型号的路由器, 其对应关系是否一样, 我心里没底.我自己作备份的时候, 就只备份/etc目录和package list. 作恢复时, 重新刷一遍firmware, 按照备份的package list挨个儿ipkg install, 然后覆盖/etc下的配置文件. 这样做虽然比较笨, 但其实不很耽误时间, 差不多20分钟就搞定了.

    • 家园 我现在用WRT54GL

      刷了dd-wrt的firmware, 用着还行

      • 家园 这个也不错

        从最早sveasoft(?)搞通了家用路由自己刷固件之后,大家都知道这条路可以走得通了。而svea又要收钱(好像20块钱一年),于是冒出了好几个类似的免费项目。不知道现在还有谁用svea,当初这家伙可是捞了不少。

    • 家园 好贴,有没有可能改成FTP server或bt clie

      能不能外接usb 硬盘成为文件server?

      能不能装bt client?

      目前普通linux用户搞得定吗?

    • 家园 厉害,送个花
    • 家园 厉害,佩服佩服
分页树展主题 · 全看首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河