OpenWRT - (http://www.openwrt.org)
开发板: 十几种市面上很容易买到的无线路由器,价钱500元左右, 请看硬件列表: (http://wiki.openwrt.org/TableOfHardware)
我使用的是 Linksys WRT54G: CPU: MIPS 200MHZ 内存: 16M ROM: 4M
网络接口: 4个LAN, 1个WAN, 1个Wireless Lan 已加接SD Card, 双串口和JTAG
详细请看这里: (http://www.eosp.org/?page_id=20)
在开发前可先安装使用jffs2(可读写)文件系统的Firmware, 了解系统架构, 安装软件, 内建HTTP, DHCP, DNS, SSH, Telnet, PPPOE, PPTP等, 有WEB界面,
另外可加装软件有7百多个选择, 包括Samba, mysql, OpenVPN, Asterisk,
软件列表:
http://tracker.openwrt.org/packages/
到熟悉后使用Buildroot 做交叉编译等工作, 自后打包软件, 制作自己的Firmware, 进入嵌入式Linux 的世界.
学习后还可以继续充当家里无线路由器的角色, 或你改装后的小型Linux服务器!!!
这是安装 OpenWRT 的步驟
注: 转贴时请保持文章的完整性.
在安装 OpenWrt 之前,首先你要知道你所使用的无线路由器 OpenWrt 是否支持,在 OpenWrt 的网页上提供了一个路由器列表,地址是: http://wiki.openwrt.org/TableOfHardware 。
当中最多人使用的是 Linksys WRT54G/GS 和 ASUS WL-500G,相关的文档也较多,Linksys在前面已经介绍过,我在这里不再重复了,其次是 ASUS WL-500G,原因是它在市面容易找到,而且支持 USB,即使价钱比一般的无线路由器贵1百多元,也相当值得,有了USB,你可以接上一个掫像头,移动盘,硬盘和打印机等设备。接下来我会说明 OpenWrt 在 WRT54G上的安装过程。
首先,到 OpenWrt 下载 Firmware,地址是:
http://downloads.openwrt.org/whiterussian/rc4/bin/
OpenWrt 提供很多版本的 Firmware下载,例如 openwrt-brcm-2.4-jffs2-4MB.trx,其中brcm是通用版本,如果你ASUS的路由器就属于这类;2.4是所使用的 Kernel版本;jffs2是文件系统,文件系统有2种,jffs2是可读写的,没有压缩,文件较大,squashfs是只读的,由于是压缩文件系统,这意味着在相同大小的 Flash Rom 你可以安装更多软件;4MB是 Flash Rom 大小,这根据你使用的路由器版本而定,请参考刚才的路由器列表。下面是现时 OpenWrt提供的 Firmware:
[ ] openwrt-brcm-2.4-jffs2-4MB.trx 14-Sep-2005 19:21 2.1M [ ] openwrt-brcm-2.4-jffs2-8MB.trx 14-Sep-2005 19:21 2.1M [ ] openwrt-brcm-2.4-squashfs.trx 14-Sep-2005 19:21 1.5M [ ] openwrt-motorola-jffs2-4MB.bin 14-Sep-2005 19:21 2.1M [ ] openwrt-motorola-jffs2-8MB.bin 14-Sep-2005 19:21 2.1M [ ] openwrt-motorola-squashfs.bin 14-Sep-2005 19:21 1.5M [ ] openwrt-wrt54g-jffs2.bin 14-Sep-2005 19:21 2.1M [ ] openwrt-wrt54g-squashfs.bin 14-Sep-2005 19:21 1.5M [ ] openwrt-wrt54gs-jffs2.bin 14-Sep-2005 19:21 2.1M [ ] openwrt-wrt54gs-squashfs.bin 14-Sep-2005 19:21 1.5M [ ] openwrt-wrt54gs_v4-jffs2.bin 14-Sep-2005 19:21 2.1M [ ] openwrt-wrt54gs_v4-squashfs.bin 14-Sep-2005 19:21 1.5M
我用的是WRT54G v2.2版,所以我下载了 openwrt-wrt54gs-jffs2.bin,有了这文件后,我可以开始设定我的路由器了。WRT54G 默认的 IP 是 192.168.1.1,在接上你的电脑之前,你要更改你电脑的网络设定,把你电脑改为固定IP,IP是192.168.1.xxx,掩码是 255.255.255.0。然后用网络线把你的电脑和 WRT54G 其中一个 LAN 接口连起来,这时候你可以在 DOS PROMPT 中输入 “ping 192.168.1.1” 这命令,如果有回应的话就证明连线没有问题,如果出现 “Request Time Out” ,请检查一下你的防火墙和网线有没有问题(不要忘了为WRT54G接上电源)。
安装 OpenWrt 有几种方法,在不拆开路由器的情况下,最简单的方法是利用TFTP 软件,把整个 OpenWrt Firmware 更新到 WRT54G 的 Flash Rom里,
现在请打开你的浏览器,在网址一栏输入“http://192.168.1.1”,这时候应该会出现一个登入画面,用户和密码都是“admin”,如果你的路由器是新买回来的话,请先把WAN设定好,你可以随便给一个固定IP,但不要设定DHCP,因为如果WAN接口没有连线而且没有IP的话,接下来我们的PING工具将无法使用,我们会利用“PING”工具的一个小BUG,更改[/url] WRT54G 的 BOOTWAIT 设定,让我们可以把 Firmware上传到TFTP服务器。操作如下:
1. 打开 ping工具,“administration” --> “diagnostics” --> “Ping”,又或者在网址一栏输入 “192.168.1.1/ping.asp”
2. 在 “IP Address”一栏中,顺序输入下面4行指令,每输入一行就按一下“PING”按钮:
;cp${IFS}*/*/nvram${IFS}/tmp/n ;*/n${IFS}set${IFS}boot_wait=on
;*/n${IFS}commit
;*/n${IFS}show>tmp/ping.log
当最后一行输入后,你会看到一堆文字,如果你看到其中一行是“boot_wait=on”的话,你可以继续下一步了。
3. 把你的 WRT54G 电源拔出来,然后准备好刚才的 Firmware,在Windows的DOS PROMPT,输入这条命令,但不要按 “ENTER”:
tftp -i 192.168.1.1 PUT C:\\openwrt-wrt54gs-jffs2.bin
*这里,我把openwrt-wrt54gs-jffs2.bin放在 C:\\ ,如果你放在别的位置,请按你的情况更改
4. 一边接上 WRT54G 的电源,同时另一边按 “ENTER” ,如果成功的话,你会看见 WRT54G上 的 DMZ 灯不停闪动,而且画面会出现类似下面的讯息:
Transfer successful: 1537024 bytes in 6 seconds, 256170 bytes/s
5. 等待 2-3 分钟后,DMZ 灯会停止闪动,这时执行 “telnet 192.168.1.1”,如果出现 OpenWrt 的欢迎画面,代表你安装成功了。
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
BusyBox v1.00 (2004.12.24-03:19+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M
root@OpenWrt:/#
NVRAM 全名是 Non-Volatile Ram ,在 OpenWrt 里是用了 Flash Rom 最后的 64K 区块,用来储存一些环境参数,OpenWrt 通过这些参数来配置网络,DHCP,DNS和记载硬件版本等。
常用的 nvram 指令有以下 4 种:
1. nvram show
列出 NVRAM 内所有参数,我们亦可以用 grep 命令来抽取部份资讯,例如
nvram show | grep lan_
这命令列出了所以用 lan_ 开头的参数,结果如下:
lan_gateway=192.168.1.254 dr_lan_rx=0
lan_netmask=255.255.255.0 lan_lease=86400 lan_stp=1
lan_hwaddr=00:12:17:E1:56:F5
lan_dns=211.152.179.7 202.96.128.86 lan_ifnames=vlan0 eth1 size: 12567 bytes (20201 left) lan_ipaddr=192.168.1.1 lan_proto=static lan_ifname=br0 lan_wins=
lan_hwnames=
2. nvram set 参数=数值
用来添加或修改一些参数,例如我想把 LAN 的 IP 由 192.168.1.1 改为 192.168.1.2,可执行:
nvram set lan_ipaddr=192.168.1.2 nvram commit reboot
第 1 行是修改 IP 地址,第 2 行是保存,第 3 行是重新启动 OpenWrt ,因为更改 IP 地址后要重启才能生效。
3. nvram unset 参数 用来删除一些参数,不过这个功能很少用到,因为 NVRAM 的 64K 容量足够保存大量参数,大部份人都赖得去删。
例如我想删除 “dr_lan_rx=0” 这个参数,请执行:

