OpenWRT编译记录--TPLINK_WR841ND_V7
之前自己编译OpenWRT的一些记录,现在搬上来。简单介绍了编译环境的准备,编译过程,以及一些注意事项。
准备工作
本人是在Ubuntu环境下编辑的,首先安装编译所需要的组件包:
sudo apt-get update
sudo apt-get upgrade sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install texinfo
sudo apt-get install unzip
sudo apt-get install sharutils
sudo apt-get install subversion
sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev
官网提供的如下:
Ubuntu 12.04LTS:
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip
Ubuntu 64bit:
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext
但个人还是建议一个个安装,方便识别错误。
下载OpenWRT源码
这里有具体的下载版本:https://dev.openwrt.org/wiki/GetSource
backfire据说较为稳定,但是支持的路由器没有trunk多,trunk更多称之为测试版,但编译好后使用也没什么问题。Attitude Adjustment也是一个稳定版本,我就选择的是12.09 branch(Attitude Adjustment)。
选好版本后,在自己的主目录下新建一个目录,取名 openwrt ,如下:
mkdir openwrt
然后进入新建目录并通过git下载OpenWRT源码,如下:
cd openwrt
git clone git://git.openwrt.org/12.09/openwrt.git
添加feeds并更新需要的组件包
此处就是下载一些你之后要编译进firmware里的一些软件。若有自己需要额外添加的组件,可以通过添加feeds来实现。比如,我需要添加openvswitch的支持,在目录下输入如下命令:
echo 'src-git openvswitch git://github.com/schuza/openvswitch.git' >> feeds.conf.default
然后,更新下载feeds组件包并安装:
./scripts/feeds update -a //更新下载全部软件包./scripts/feeds update [包名]) //单独更新下载某软件包
./scripts/feeds install -a //安装全部软件包./scripts/feeds install [包名] //单独安装某软件包
menuconfig自定义选择
直接在 [openwrt主目录] 下输入命令 make menuconfig 即可开始自定义选择组件。注意之前没有 update 和 install feeds,则此处就会发现找不到相应的组件!这个是个图形化界面,选完之后保存(Y是选中,N是取消),其实写入了 .config 文件。

几个选择建议:(不过一切按需自己选)
* 添加luci及中文支持
LuCI—>Collections—– <*> luci
LuCI—>Translations—- <*> luci-i18n-chinese
* 添加USB挂载
Base system —> <*>block-mount
* 添加UTF-8编码
Kernel modules —> Native Language Support —> <*> kmod-nls-utf8
* 添加硬盘格式支持
Kernel modules —> Filesystems —> <*> kmod-fs-ext4
若之前添加过自己的组件,就对应选择上,否则编译不进去!
全部选择完,一定记住保存,才能成功写入 .config 文件。
编译前注意事项
这个是我遇到的问题了,最初编译的时候,编译过程不报错,但最后老是在bin文件夹下找不到需要的bin文件,最后才知道是默认的flash大小设置有点小,需要更改。我的路由器型号WL841N_V7(硬件方面改装成16M的flash),所以把默认的4M改成了8M,这样编译后就没问题了。
需要修改的文件
1. [openwrt主目录] /tools/firmware-utils/src/mktplinkfw.c
{
.id= "TL-WR841NDv7",
.hw_id= HWID_TL_WR841ND_V7,
.hw_rev= 1,
.layout_id= "8M", //这儿原来是4M
}
2. [openwrt主目录] /target/linux/ar71xx/image/Makefile
$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma)) //之前是4Mlzma
编译
一般情况下,编译直接在 [openwrt主目录] 下输入命令 make V=99 。可以查看编译过程具体信息。直接make无具体信息。编译完成后,在bin目录下就可以找到你编译好的bin文件,以及bin/packages下编译好的一些ipk文件,ipk文件可以直接安装于刷好的OpenWRT中。
注意:此处千万不要以root权限执行make,否则报N多错误。
另附一些编译选项:
1. 在多核电脑中编译,常规用法为【 cpu处理器的数目 + 1】– 例如使用3进程来编译 (即双核CPU), 命令及参数: make -j 3 。这样可以加速编译,不过我没试过。
2. 后台编译,你还在忙其他,不想让编译耗费太多资源,只使用一些空闲的I/O和CPU能力来编译: ionice -c 3 nice -n19 make -j 2
3. 单独编译某个包: make package/[包名]/compile V=99 。编完后在bin/packages下会找到对应的ipk文件。
4. 重新编译某个包: make package/[包名]/{clean,compile,install} V=99 。
最后,贴两个官网的编译说明:
http://wiki.openwrt.org/doc/howto/buildroot.exigence
https://dev.openwrt.org/wiki/GetSource
OpenWRT编译记录--TPLINK_WR841ND_V7的更多相关文章
- openwrt编译环境搭建
1,首先安装ubuntu系统,这里安装的是虚拟机 2,安装openwrt编译所需环境 apt-get install build-essential libncures5-dev gawk libs ...
- OpenWRT 编译 error GNU libiconv not in use but included iconv.h is from...
OpenWRT 编译 error GNU libiconv not in use but included iconv.h is from... 编译的时候碰到一个常见的错误,但是却在一个陌生的地方爆 ...
- OpenWrt编译
OpenWrt编译简单过程1,OpenWrt编译环境准备sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoco ...
- 【笔记】搭建OpenWrt编译环境
参考书目<B智能路由开发指南> 目标:搭建一个OpenWrt编译环境,可以同时在家里和公司使用. [2018-09-13] 刚开始想用自己的电脑共享远程桌面,但不知道什么原因搞不定,所以干 ...
- OpenWrt编译后生成的bin文件:jffs2与squashfs、factory与sysupgrade
OpenWrt编译后会生成多个bin文件,比如 openwrt-ar71xx-generic-tl-wr841nd-jffs2-factory.bin 8126464 openwrt-ar71xx-g ...
- openwrt MT7620 固件编译记录
下载,安装相关软件 git clone git@github.com:openwrt-mirror/openwrt.git sudo apt-get install gcc g++ binutils ...
- openwrt编译出错处理记录
1.代码从windows复制过来编译报错处理,参考:http://www.360doc.com/content/13/1016/21/3884271_321966616.shtml 2.编译lua-s ...
- OpenWrt编译问题记录
错误一.config.status: error: cannot find input file: `xmetadataretriever/Makefile.in' configure: creati ...
- 【工具】openwrt安装记录
步骤: 1 从以太网引导启动.由于我们实验室在服务器上放了一个openwrt镜像,安装时先从以太网启动,将服务器上的镜像载入到RAM中启动系统. 2 用SCP将在PC上编译好的openwrt-XX ...
随机推荐
- 设计模式之 - 外观模式 (Facade design pattern)
1. 模式意图: 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更容易使用. 2. 结构 3. 工厂方法模式C#实现 using System; ...
- mpi和cuda混合编程的正确编译
针对大数据的计算,很多程序通过搭建mpi集群进行加速,并取得了很好的效果.算法内部的加速,当前的并行化趋势是利用GPU显卡进行算法加速.针对并行性非常好的算法,GPU加速效果将远大于集群带来的加速效果 ...
- Android Device Chooser中显示Target unknown解决方法
手机插在电脑上准备调试程序来着,通过eclipse运行时,弹出的Android Device Chooser中显示设备名是?????,Target未知,无法继续运行. 可以通过以下步骤解决(Ubunt ...
- SQlServer---时间的操作
select Day(getdate())--当前日是这个月的第几天 -Day(getdate()))))--当前月有多少天 -Day(getdate()))))-Day(getdate())--当前 ...
- React使用小结
园子都荒废两个月了,实在是懒呀.. 近段时间用React开发了几个页面,在使用过程中着实碰到了一些问题,估计刚开始学习的伙伴们都会遇到各种各样的坑 总结记录一下,只看文档是碰不上问题的,内容基础也不基 ...
- JS高程5.引用类型(5)Array类型的操作方法
一.操作方法 1.concat()方法 基于当前数组中的所有项创建一个新数组.具体说,是先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组.在没有给concat() ...
- webStorm支持.wxml文件高亮显示
微信小程序官方说明需要在微信开发者工具中开发运行,但这个工具着实不咋地. 我是使用webstrom编辑,然后在微信开发者工具中热加载查看效果,因为webstrom默认并不支持*.wxml,添加使用xm ...
- JMS(java消息服务)整合Spring项目案例
转载自云栖社区 摘要: Sprng-jms消息服务小项目 所需的包: spring的基础包 spring-jms-xx包 spring-message–xx包 commons-collection-x ...
- Python wifi掉线重连接
原理很简单,通过python执行dos命令 : ping 和 netsh 需要用到os和time模块 代码如下: >>> import os >>> print ' ...
- CSS3 background-size:cover/contain
background-size的cover和contain指定背景图片的自适应方式,只能对整张图片进行缩放. cover是拉伸图片使之充满元素,元素肯定是被铺满的,但是图片有可能显示不全. conta ...