完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
假定已经把电脑上完美运行的客户端进行了交叉编译,生成了要在路由上运行的拨号程序(假定为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 并感谢第一个项目的作者给我的指导和帮助。我只是把他没有写明白的步骤,以我自己的理解方式重述而已。
1.首先下载firmware-mod-kit封包软件,并进行编译,将会得到所需文件。 1.1下载firmware-mod-kit封包软件并在终端窗口里输入以下命令: svn checkout http://firmware-mod-kit.googlecode.com/svn/firmware-mod-kit-read-only 耐心的等待之后,会在你的本地硬盘上生成一个目录firmware-mod-kit-read-only,其中包含branches,tags,trunk,wiki四个文件夹。特别地,进入到trunk文件夹中会看到src文件夹和build-ng.sh和extract-ng.sh等等文件。 1.2编译firmware-mod-kit软件,在终端窗口里进入到/firmware-mod-kit-read-only/trunk/src目录,并且输入命令./configure,一切正常后,请继续输入命令make,耐心等待其编译成功。 特别地,如果./configure失败,说明你的Ubuntu系统里缺少某些东西,请参看http://code.google.com/p/firmware-mod-kit/wiki/Documentation?tm=6 For Ubuntu: $ sudo apt-get install subversionbuild-essential zlib1g-dev liblzma-dev 2.将原始固件firm.bin复制到/firmware-mod-kit-read-only/trunk/目录下,或者另外建个文件夹(假定为/firmware-mod-kit-read-only/trunk/firm,以下以此种情形讲解)。现在,原始固件 firm.bin已经在目录/firmware-mod-kit-read-only/trunk/firm/下了。 3.在终端窗口里进入到/firmware-mod-kit-read-only/trunk/目录。输入./extract-ng.sh ./firm/firm.bin来解包原始固件。耐心的等待之后,会在/firmware-mod-kit-read-only/trunk/下生成一个新目录fmk/ 特别地,因为需要管理员权限,可能运行中间需要你输入管理员密码 进入/fmk/目录里将会看到三个文件夹image_parts,logs,rootfs.继续进入rootfs目录,这里为路由器的根部目录。 4.将已经通过了交叉编译的认证客户端程序Client复制到/firmware-mod-kit-read-only/trunk/fmk/rootfs/usr/***in目录当中,当然也可复制到firmware-mod-kit-read-only/trunk/fmk/rootfs/的其他位置也行。 注意,需要管理员权限,并且赋予Client可执行的权限。 5.开始封包,在终端窗口里进入到firmware-mod-kit-read-only/trunk/目录,并且运行命令./build-ng.sh耐心等待之后,你会发现有错误报告,并且没有生成新的dd固件.报告为 ERROR: New firmware image will be larger than original image! Building firmware images larger than theoriginal can brick your device! Try re-running with the -min option, orremove any unnecessary files from the file system. Refusing to create new firmware image. 其大意为,因为生成的新固件比原始固件firm.bin要大,为了不使路由损坏,程序拒绝生成新的固件。尝试用参数 -min,则应使用命令./build-ng.sh -min(慎用!) 6.进行最终的封包生成新的固件new-firmware.bin,重新运行第5步,即在终端窗口里进入到firmware-mod-kit-read-only/trunk/目录,并且运行命令./build-ng.sh 耐心等待之后,可能会有报告CRCupdate failed或者其他的错误,不必理会。在firmware-mod-kit-read-only/trunk/fmk/目录里会得到生成的新的固件new-firmware.bin。 推荐使用extract-firmware.sh代替extract-ng.sh,build-firmware.sh代替build-ng.sh。修改路由器固件有风险,请决定好以后再行动。(以上为分享内容) |
|
相关推荐
|
|
|
|
|
|
|
|
您好,我使用firmware-tool-kit进行解包的时候提示no supported file system found!请问什么原因呢
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
「含关键代码」基于AM3352/AM3354/AM3359的Linux开发案例分享
4894 浏览 0 评论
87411 浏览 0 评论
【高手问答】如何做到精通linux技术?资深工程师带你突破难点
4725 浏览 2 评论
3620 浏览 2 评论
解读Linux :先从创建一个文件夹用来存放jdk压缩文件开始
2483 浏览 0 评论
1999浏览 3评论
1286浏览 1评论
求解:aarch64交叉编译工具已经安装成功,环境变量已经配置,怎么将系统架构切换为ARM的架构
1344浏览 0评论
电脑和虚拟机可以互ping,电脑和开发板也可以互ping,但是虚拟机和开发板ping不通是什么原因
1236浏览 0评论
1174浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:53 , Processed in 1.141964 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号