找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 20413|回复: 31

openwrt imagebuilder定制4M/8M固件教程

[复制链接]
本帖最后由 guo4qing 于 2014-9-20 10:33 编辑

以我的wr720n为例子讲述
1.准备64位的ubuntu 14.04的iso 可以用虚拟机或者是硬盘启动该livecd都行 不需要安装
2.从https://downloads.openwrt.org/snapshots/trunk/ar71xx/下载官方编译好的https://downloads.openwrt.org/sn ... inux-x86_64.tar.bz2
2.解压  可以用ubuntu自带的归档管理器或者用tar -xpvjf ar71xx/OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64.tar.bz2
3.进入解压后的目录cd OpenWrt*
4.开始定制了 sudo make image PROFILE="TLWR720" PACKAGES="kmod-fs-ext4 kmod-fs-vfat kmod-fs-ntfs kmod-usb-storage block-mount luci luci-i18n-chinese kmod-rt2800-usb kmod-fs-cifs" FILES="files"
详细介绍用法了
PROFILE后面的是路由型号 这个不多说 输入make info就可以看到支持型号了
FILES的意思是 把files文件夹下面的所有文件(包括文件夹)拷贝到路由的系统里面去  一般就是配置文件
比如我 为了实现路由器默认开启wifi 需要在files下面建立etc/config/wireless文件  至于内容 呵呵 路由器正常开启wifi后 你们可以直接备份过来用
还有就是我让路由器 任何时候都支持telnet登陆 ssh太麻烦了 需要密码 而且登陆速度也太慢 而且我busybox已经集成了ftpd服务 不需要ssh传输文件
所以我在files目录下建立了bin文件夹 里面新建文件login1.sh 里面的内容么?
#!/bin/sh
exec /bin/ash --login
然后新建etc/init.d/telnet 文件
telnet修改如下
start_service() {
                procd_open_instance
                procd_set_param command "$PROG" -F -l /bin/login1.sh
                procd_close_instance
}

这样以后 就算你设置了密码 telnet IP 也能轻松登陆了  哈哈
当然这些你们百度都是可以查到的
不过我要说的是 你们就算按照上面的命令定制
最后一定会失败的
为啥 因为空间不够了   
所以我这个帖子要讲的是 如果干掉imagebuilder默认安装的那部分软件
比如dropbear firewall ip6tables odhcp6c
这四个软件我就认为是鸡肋
因为不用ssh所以干掉dropbear
反正这四个去掉之后 上面的定制就ok了
说下最终的命令了
sudo make image PROFILE="TLWR720" PACKAGES="-dropbear -ip6tables -odhcp6c kmod-fs-ext4 kmod-fs-vfat kmod-fs-ntfs kmod-usb-storage block-mount luci luci-i18n-chinese kmod-rt2800-usb kmod-fs-cifs" FILES="files"
没错 就是这样的
以前一直不知道 openwrt imagebuilder的PACKAGES=“”是可以用来删除默认软件的
只需要在你不想集成的软件前面加上“-”就行了
当然即便如此我没有装
当然这还没完 我发现最后firewall依然被安装了 所以我用了如下脚本给干掉了


IPKG_TMP="/media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/tmp/ipkgtmp"
IPKG_INSTROOT="/media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx"
IPKG_CONF_DIR="/media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/tmp"
IPKG_OFFLINE_ROOT="/media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx"
export PATH=$PATH:/media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/staging_dir/host/bin/bundled


mkdir -p /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/tmp/ipkgtmp

mkdir -p /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/bin/ar71xx /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/tmp

opkg -f /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/repositories.conf --force-depends --force-overwrite --force-postinstall --cache /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/dl --offline-root /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx --add-dest root:/ --add-arch all:100 --add-arch ar71xx:200 update






opkg -f /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/repositories.conf --force-depends --force-overwrite --force-postinstall --cache /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/dl --offline-root /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx --add-dest root:/ --add-arch all:100 --add-arch ar71xx:200 remove luci-app-firewall

opkg -f /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/repositories.conf --force-depends --force-overwrite --force-postinstall --cache /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/dl --offline-root /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx --add-dest root:/ --add-arch all:100 --add-arch ar71xx:200 remove firewall

rm -f /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/opkg/lists/*


rm -f /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/opkg/info/*.postinst

mksquashfs4 /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/root.squashfs -nopad -noappend -root-owned -comp xz -Xpreset 9 -Xe -Xlc 0 -Xlp 2 -Xpb 2  -b 256k -p '/dev d 755 0 0' -p '/dev/console c 600 0 0 5 1' -processors 1

cp /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/root.squashfs /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/root.squashfs-raw

mktplinkfw -H 0x07200103 -W 1 -F 4Mlzma -N OpenWrt -V r42429  -X 0x40000 -k /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/tmp/vmlinux-tl-wr720n-v3.bin.lzma -r /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/root.squashfs-raw -a 0x4 -j -o /media/ubuntu-kylin/d0cadeaf-3af8-4a0e-bddc-7436aa1d9037/openwrt/imagebuilder-snapshot-trunk-x64/bin/ar71xx/openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.


帖子就到这里了
呵呵 希望对大家多多能有帮助
如果想要编译编译8M的固件其实也很简单
直接使用
sudo make image PROFILE="TLWR720" PACKAGES="-dropbear -ip6tables -odhcp6c kmod-fs-ext4 kmod-fs-vfat kmod-fs-ntfs kmod-usb-storage block-mount luci luci-i18n-chinese ***********************" FILES="files命令来执行
好 这一步完成后 如果集成软件太多 最后肯定报错 无法生成固件
没关系 我们最后再补上一条自己的命令
mktplinkfw -H 0x07200103 -W 1 -F 8Mlzma -N OpenWrt -V r42429  -X 0x40000 -k ./build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/tmp/vmlinux-tl-wr720n-v3.bin.lzma -r ./build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/root.squashfs-raw -a 0x4 -j -o ./bin/ar71xx/openwrt-8M-tl-wr720n-v3-squashfs-factory.
附上mktplinkfw的用法说明
Usage: mktplinkfw [OPTIONS...]

Options:

  -H <hwid>       use hardware id specified with <hwid>
  -W <hwrev>      use hardware revision specified with <hwrev>
  -F <id>         use flash layout specified with <id>
  -k <file>       read kernel image from the file <file>
  -r <file>       read rootfs image from the file <file>
  -a <align>      align the rootfs start on an <align> bytes boundary
  -o <file>       write output to the file <file>
  -j              add jffs2 end-of-filesystem markers
  -N <vendor>     set image vendor to <vendor>
  -V <version>    set image version to <version>
  -X <size>       reserve <size> bytes in the firmware image (hexval prefixed with 0x)
  
另外网上流行一种利用内核的kexec system call来实现的
一个固件加载另一个固件的方式来实现完全优盘切换固件
有兴趣可以研究下
https://www.right.com.cn/forum/f ... read&tid=129552
https://www.right.com.cn/forum/thread-115614-1-1.html
做好的openwrt固件 支持加载外置固件
理论上有了这个东西
可以免刷机切换openwrt ddwrt 石像鬼  固件
官方的固件么??
好吧 也可以
网上下载的bin固件 通过dd命令进行分离
可以得到uimage root.squashfs 两个文件
然后用unsuquash可以解压root.squashfs
至于uimage去掉64b的头就是完美的内核了
然后把解压的root重新打包为root.initramfs就行了 一般是cpio的gz压缩包

http://pan.baidu.com/s/1c0zpbX2
dtmm

希望wr720n更加强大
另外说下wr720n已经可以用来 和 百度网盘同步下载了
具体百度syncy  这货可以让openwrt和百度网盘绑定 从而实现文件下载  支持4G以上大文件 效率和速度都不错

我的恩山、我的无线 The best wifi forum is right here.
谢谢楼主分享。

因为今天在这个版块里有了新版主,我相信他一定有能力把这里越办越好,无论是在人气还是技术上面都应该会有一个质的飞跃,所以我想借此宝地谈一下我的看法。
到恩山来也有一段时间了,可能是之前从未接触过linux,那么从零开始学习openwrt,感觉还是有点费劲的。在这里我感触最深的是:这里可以找到问题的答案,可以搜到问题解决的详细步骤,却找不到解题思路和理由,换一个问题大脑同样是一头雾水。
比如:在论坛里搜索“编译openwrt",得到的方法几乎相差无几,里面讲到首先是要搭建编译环境,在这些重复的帖子中没有人知道什么是编译需要的“环境”,为什么需要这样的“环境”,我们处在怎样的“环境”中,怎样改变“环境”?
这好比老师捉着我们的手在画葫芦,但是我们却不认识它,你真的可以学会吗?
我认为这样的问题值得我们去思考,也许现状是受到大环境的影响所致吧。

关于此帖里定制固件的教程,另推荐一个古老的地方:http://wiki.openwrt.org/zh-cn/doc/howto/obtain.firmware.generate

点评

这好比老师捉着我们的手在画葫芦,但是我们却不认识它,你真的可以学会吗? 这句话说的好,既然你明白问题不在于老师 而是在于学生 那问题就解决了  发表于 2014-9-18 16:24
你说能找到解决问题的办法 却找不到解题思路和理由 你要明白真正的高手都是依靠自己才成长起来的 因为他懂的比别人多 事实上的情况是 即便是在学校 有专业老师的情况下 老师都不可能完美的把自己的解题思路都交  详情 回复 发表于 2014-9-18 16:22
而且这里wifi论坛 不是linux论坛 如果在这个论坛去弄什么linux的理论 那就有点名不副实了 你应该知道openwrt就是linux系统 所以不懂的话 多去ubuntu等linux论坛去看看 openwrt的编译环境 通俗大众化来讲就是ub  详情 回复 发表于 2014-9-18 16:13
你给的链接我的电脑无法访问 好奇怪的说 至于你说的没接触过linux 安卓就是 其实openwrt的编译就是如同那些帖子写的那样 搭建编译环境 如果翻译成windows的说法就是安装编译器 比如VS2008 以及需要的其他软件  详情 回复 发表于 2014-9-18 16:09
大部分人只在编译固件跟修改添加小部分功能的水平 搞openwrt开发真的还是需要嵌入式开发的专业人士, 另外拓展功能 完全没必要学所谓的openwrt 从理论上讲 你可以把当做一个linux设备来学习 举个简单的例子  详情 回复 发表于 2014-9-18 16:01
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

缘定今世 发表于 2014-9-18 15:14
谢谢楼主分享。

因为今天在这个版块里有了新版主,我相信他一定有能力把这里越办越好,无论是在人气还是 ...

大部分人只在编译固件跟修改添加小部分功能的水平
搞openwrt开发真的还是需要嵌入式开发的专业人士,

另外拓展功能 完全没必要学所谓的openwrt
从理论上讲 你可以把当做一个linux设备来学习

举个简单的例子,我想做端口转发 那肯定要用到iptables
事实上iptable 在PC系统跟路由器上 执行的命令跟功能是一样的 完全没必要单独去找openwrt的教程

另外我想拿路由器来抓包,或者把它当做一台ARP攻击源主机,这也很简单,你找到交叉工具链,把libpcap
(linux下著名的以太网协议工具包)跟libnet(快速构建以太网协议包)交叉编译并移植到路由器 这样你就可以在路由器上实现很多功能了,只要稍微懂点C语言 结合教程就能熟练的使用这些库 开发出你想要的功能
但是大部分路由的cpu有限,跑libpcap  实测有点压力

如果你想弄一款加密协议的通讯聊天 message软件 可以用openssl库 跟linux 的socket库

总而言之 openwrt 你只要把它当做一台linux设备就好了  其它的教程 都可以参考linux
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
缘定今世 发表于 2014-9-18 15:14
谢谢楼主分享。

因为今天在这个版块里有了新版主,我相信他一定有能力把这里越办越好,无论是在人气还是 ...

你给的链接我的电脑无法访问
好奇怪的说
至于你说的没接触过linux 安卓就是  
其实openwrt的编译就是如同那些帖子写的那样
搭建编译环境 如果翻译成windows的说法就是安装编译器 比如VS2008 以及需要的其他软件合集 如netfram 2.0/3.5 vc 2012支持库之类的
要用对比的思想去理解linux系统 其实和windows没啥大区别的
你是被windows系统的概念弄糊涂了
其实windows下面开发安卓的sdk 不也是说开发环境么?
说简单了就是编译器和其他被需要的软件
说编译环境一点问题没有 你纠结这个有啥用处
编译需要的环境就是你按照别人的教程安装需要的软件
比如人家编译openwrt教程说的很清楚 让你安装ubuntu系统 这是系统环境
然后让你安装svn软件 这是获取源码的软件 免得你去手动下载
当然教程让你安装了一堆的软件 那是因为编译器需要这些软件支持  
然后就是svn **************** 命令获取代码
你自己不善于学习 反而怪人家教程没说清楚
既然你不懂人家教程的命令是什么作用 就百度一下咯 很快就解决了
linux和windows不同的是windows的编译器微软已经编译好了 成为了安装包了
而openwrt的编译器只是一堆源代码
你自己用svn下载回来后需要自己编译
  你问为啥需要这样的环境 就好比问为啥 安卓软件必须安装在安卓系统上一样
我们处在什么样的环境  大部分人都是windows的环境  如果你用linux 你就是linux的环境
怎样改变环境  重装系统 环境就变了呀  当然大部分人用虚拟机 那也可以
改变环境就是改变系统和安装软件
这些东西 就算没有学过linux的人也应该可以理解的
你不跳出windows的概念 不去自己想问题
自然的不到答案
而且如你所说
网上自己百度一下编译openwrt的教程 多看几篇文章
一定是可以自己独立编译出来的
你完全不需要管什么 环境
因为你按照教程做 就是在改变环境
你需要的就是按照教程做之后的那个环境
你居然纠结这不是问题的问题


我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
缘定今世 发表于 2014-9-18 15:14
谢谢楼主分享。

因为今天在这个版块里有了新版主,我相信他一定有能力把这里越办越好,无论是在人气还是 ...

而且这里wifi论坛
不是linux论坛
如果在这个论坛去弄什么linux的理论
那就有点名不副实了
你应该知道openwrt就是linux系统
所以不懂的话 多去ubuntu等linux论坛去看看
openwrt的编译环境 通俗大众化来讲就是ubuntu系统
你可以把它安装到虚拟机里面
如果你连怎么弄好一个可以使用的ubuntu系统都无法独立搞定
那么你编译openwrt将会十分痛苦
openwrt的编译环境没什么?
就是在一个装好了的ubuntu系统里面安装一些软件而已 这些openwrt的wiki里面都有
剩下的就是下载源代码 然后定制菜单 编译
这些 网上的教程都有
我不懂你到底要学习什么 知道什么???
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
缘定今世 发表于 2014-9-18 15:14
谢谢楼主分享。

因为今天在这个版块里有了新版主,我相信他一定有能力把这里越办越好,无论是在人气还是 ...

你说能找到解决问题的办法
却找不到解题思路和理由
你要明白真正的高手都是依靠自己才成长起来的
因为他懂的比别人多
事实上的情况是 即便是在学校 有专业老师的情况下
老师都不可能完美的把自己的解题思路都交给学生
要不然学生都有了老师的解题思路是不是考试都满分了???
解题思路是靠自己的大脑去分析理解的
而且在我看来 别人给了解决方案 就已经算是给了解题思路了
总体来说 不是论坛大环境的问题
而是普通人的思维出了问题
即便是老师亲自辅导的学生 都不能够做到教给学生解决问题的思路
老师只能交给学生一部分 因为老师自己都不可能遇到所有的事情呀
所以 论坛是没有问题的
有问题的是那些想学习编译的人
他们遇到问题 自己不懂的解决 是因为他们的思维出了问题
思维这种东西 不是可以随便教会了
就好比同样的一篇文章 有的人看到了能举一反三 有的人看到了和没看到一样 完全不懂
其实他们的知识积累是完全一样的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢楼主分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 jimmy_xt 于 2014-9-24 17:55 编辑

所谓编译环境,随便搜一下就能搞定了,无非就是安装一些包而已。
其实就算不搞编译环境,直接编译,看错误去装软件包也行。

从零开始,装Ubuntu,搞环境,然后编译openwrt,总共花了不到10个小时的时间。其中主要部分还是电脑在编译,实际我弄东西的时间恐怕只有2个小时左右。
后来自己啃makefile语法,让dir-505支持16m SPI Flash,也花了2个小时左右。


不过这些只是最基础的东西,让我研究openwrt的初衷也就是给dir-505增加16m flash支持而已。既然实现了,也就没继续弄这些。感觉openwrt还是非常庞大的一个系统,有点摸不着头脑。

点评

没错呀 我自己的买的是wr720n固件 今天突然发现telnet登陆之后很卡 然后果断把我弄得 python的syncy的百度网盘同步的那个脚本禁用了 之后发现路由器telnet就非常流畅了 后来百度了一下 路由的平均负载 现在已经  详情 回复 发表于 2014-9-25 01:32
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
jimmy_xt 发表于 2014-9-24 17:51
所谓编译环境,随便搜一下就能搞定了,无非就是安装一些包而已。
其实就算不搞编译环境,直接编译,看错误 ...

没错呀
我自己的买的是wr720n固件
今天突然发现telnet登陆之后很卡 然后果断把我弄得 python的syncy的百度网盘同步的那个脚本禁用了
之后发现路由器telnet就非常流畅了
后来百度了一下 路由的平均负载  现在已经明白了
当时负载已经超过了1  怪不得不流畅 看来以后 除非半夜需要下载 不然就不要打开syncy了
我定制8M的固件 也研究过makefile的语法
不过最有效率能实现目标的 还是我make的时候 保存了日志
里面有编译定制固件的详细命令
既然这样 那么我就完全可以自己定制了

点评

我没这种需求,有专用的NAS做下载。 DIR-505和这个不太一样,编译的时调用了一个cXXX AP121的配置参数,但那个系列硬件没有16m的,于是要自己去makefile里面增加flash布局(720这系列硬件中本来就有16m的,所以直接  详情 回复 发表于 2014-9-25 09:06
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

guo4qing 发表于 2014-9-25 01:32
没错呀
我自己的买的是wr720n固件
今天突然发现telnet登陆之后很卡 然后果断把我弄得 python的syncy的 ...

我没这种需求,有专用的NAS做下载。
DIR-505和这个不太一样,编译的时调用了一个cXXX AP121的配置参数,但那个系列硬件没有16m的,于是要自己去makefile里面增加flash布局(720这系列硬件中本来就有16m的,所以直接调用了),没办法直接用参数make的。

点评

无关紧要的 wr720n生成固件参考imagebuilder的定制输出 得到的结论是固件的大小由mktplinkfw这个小程序来决定 所以就算修改 也不过就是修改mktplinkfw的源码即可 你的么 找到关键的输出固件的那个程序 然后独立编  详情 回复 发表于 2014-9-26 14:24
不是吧 我百度的结果是720n这个系列也不支持16M呢? 默认的编译按照720n来的话做出来的是4M固件 我想官方的imagebuilder支持16Mflash应该不是因为720n 可能是因为gl.inet这款和wr720n硬件相似 flash8M的路由器的  详情 回复 发表于 2014-9-26 14:21
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢楼主分享。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
jimmy_xt 发表于 2014-9-25 09:06
我没这种需求,有专用的NAS做下载。
DIR-505和这个不太一样,编译的时调用了一个cXXX AP121的配置参数, ...

不是吧
我百度的结果是720n这个系列也不支持16M呢?
默认的编译按照720n来的话做出来的是4M固件
我想官方的imagebuilder支持16Mflash应该不是因为720n 可能是因为gl.inet这款和wr720n硬件相似 flash8M的路由器的原因吧
另外就是你观察下你的固件用imagebuilder定制的时候输入的日志  最后生成固件的那个命令
或许不是mktplinkfw 这个程序
官方的imagebuilder里面内置的mktplinkfw这个程序只是为tplink固件生成的
你的不是tplink路由 应该不是这个程序生成最后的固件 所以用我给的命令无效
AR1311-AL1A你的路由处理器型号???
不过话说回来wr720n做下载 nas毫无压力 只不过flash太小 如果舍弃ext4 ipv6 ntfs支持
优盘采用hfsplus文件系统的话 集成samba应该没问题
但是我最后放弃了samba文件共享 因为对安卓来说访问samba有些麻烦
我还是在busybox中加入了ftpd功能 直接用ftp共享了
倒也方便

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
jimmy_xt 发表于 2014-9-25 09:06
我没这种需求,有专用的NAS做下载。
DIR-505和这个不太一样,编译的时调用了一个cXXX AP121的配置参数, ...

无关紧要的
wr720n生成固件参考imagebuilder的定制输出 得到的结论是固件的大小由mktplinkfw这个小程序来决定
所以就算修改 也不过就是修改mktplinkfw的源码即可
你的么 找到关键的输出固件的那个程序 然后独立编译 替换imagebuilder的那个程序即可
倒也简单
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谷歌翻译一下
-H使用硬件ID指定用
&#160;-W&#160;指定与-W使用硬件版本
&#160;&#160;-F使用闪光灯的布局与指定
&#160;&#160;-k从文件中读取内核映像
&#160;&#160;-r读取根文件系统映像从文件
&#160;&#160;-a对齐的rootfs开始的字节边界
&#160;&#160;-o写输出到文件
&#160;&#160;-j添加结束文件系统JFFS2标志
&#160;&#160; - N集图像供应商
&#160;&#160;-V集图像版本
&#160;&#160;-X在固件映像(hexval前缀为0x)-X储备字节

点评

google翻译太差了 -H -W 就是固件版本之类的 不影响启动 -F 就是你要定制的flash大小 -k 就是固件的内核 -r 就是固件的rootfs镜像 -a 就是rootfs镜像从0xxx开始 -o 输出的固件名 -j 添加jffs2空白文件系统  详情 回复 发表于 2014-9-28 16:16
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
Jerry74 发表于 2014-9-28 15:13
谷歌翻译一下
-H使用硬件ID指定用
&#160;-W&#160;指定与-W使用硬件版本

google翻译太差了
-H -W  就是固件版本之类的 不影响启动
-F 就是你要定制的flash大小
-k 就是固件的内核
-r 就是固件的rootfs镜像
-a 就是rootfs镜像从0xxx开始
-o 输出的固件名
-j 添加jffs2空白文件系统
-N -V 都是固件版本信息 无视
-X 应该是为uboot保留的128kb
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 22:34

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表