路由器固件的解包与打包
一、概述
当前大学生都被校园网的客户端困扰,
然而南京工程学院公布了
Linux
客户度解决方案,
或
者
Mentohust
解决方案,
可以在
Ubuntu
系统的计算机上运行了。
但进一步的工作就是如何
令其在路由器上工作,以达到真正的路由功能。
假定笔者已经把电脑上完美运行的客户端进行了交叉编译,
生成了要在路由上运行的拨号程
序(假定为
Client
)
,且笔者的路由器有合适的固件(假定为
firm.bin)
。
那么要在路由器上运行
Client
有三种方法
:
1.
可以把
Client
上传到路由器的
/jffs
目录下。
(
本文不讨论这种情形
)
2.
刷写
dd
后
,
由于剩余容量太小导致无法加载
jffs,
那么每次启动路由后,可以将程序
Client
上传到刷写了
firm.bin
路由的
/tmp
目录下,然后令其运行。简单的说,就是在内存里运行
Client
。其缺点就是每次路由断电,你必须重新上传。
(
本文不讨论这种情形
)
3.
当路由器无法加载
jffs
时
,
可以考虑将
Client
程序增添至固件,
并且在自启动命令里输入正
确的命令方式,
以达到每次路由插上电,
都可以自动运行拨号程序的完美效果。
以下讨论的
为如何将
Client
固化至固件的方法。
所需软件为
firmware-mod-kit
,大致步骤为:
1.
先用解包软件解包路由器固件将会得到固件核心文件。
2.
再把
Client
复制到固件的某个文件夹内,且注意赋予可执行的权限。
3.
用
build-ng.sh
进行最终的封包,生成新的固件。
操作环境:
Ubuntu 11.04
版
参考资料:
http://code.google.com/p/mentohust-wrt/
http://code.google.com/p/firmware-mod-kit/ Firmware Modification Kit