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 ...
随机推荐
- Oracle笔记(六) 多表查询
最近看了李兴华的oracle视频,这是网上别人做的笔记非常细致,分享给大家,第六篇 原创地址:http://www.cnblogs.com/mchina/archive/2012/09/07/2651 ...
- 利用jquery对ajax操作,详解原理(附代码)
1. jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selecto ...
- tensorflow与kubernetes/docker结合使用实践
tensorflow tensorflow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流 ...
- Kafka consumer处理大消息数据问题
案例分析 处理kafka consumer的程序的时候,发现如下错误: ERROR [2016-07-22 07:16:02,466] com.flow.kafka.consumer.main.Kaf ...
- 浅析ThreadLocal
这是我的第一篇博客,条理不是很清晰,不过还是希望能对大家有所帮助. 首先明确一下这个类的作用,ThreadLocal类是用来为每个线程提供了一份变量的副本,即每个线程的局部变量.每个线程都在自己的栈空 ...
- mac 显示隐藏文件方法
终端执行命令: 显示:#defaults write com.apple.finder AppleShowAllFiles -bool true隐藏:#defaults write com.apple ...
- 设计模式 -- 桥接模式(Bridge Pattern)
桥接模式 Bridge Pattern 结构设计模式 定义: 分离抽象部分和实现部分,使他们独立运行. 避免使用继承导致系统类个数暴增,可以考虑桥接模式. 桥接模式将继承关系转化为关联关系,减少耦合, ...
- 关于元素加上margin属性后以谁为基准移动的问题及负margin的问题
突然想起这个问题,这是很基础很基础的问题啊,但之前很多次都忘记了,然后困扰了我很久.不清不楚的感觉很不好,所以要做成笔记比较好记住,好记性不如烂笔头,以后再次困惑了再回来看看.推荐文章,海玉的< ...
- -webkit-tap-highlight-color处理元素点击默认高亮
-webkit-tap-highlight-color:transparent; 或者 -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
- angularjs的懒加载
1.angularJS懒加载依赖模块 //设置 .config [ '$ocLazyLoadProvider' ($ocLazyLoadProvider) -> # We configure o ...