曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3142|回复: 0
打印 上一主题 下一主题

[系统应用] 编译 Openwrt 固件

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2014-9-26 17:35:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编译环境  VMware10 + Ubuntu14.04

同步软件源:
  1. sudo apt-get update  
复制代码


安装编译需要的软件包:
  1. sudo apt-get install gcc
  2. sudo apt-get install g++
  3. sudo apt-get install binutils
  4. sudo apt-get install patch
  5. sudo apt-get install bzip2
  6. sudo apt-get install flex
  7. sudo apt-get install bison
  8. sudo apt-get install make
  9. sudo apt-get install autoconf
  10. sudo apt-get install gettext
  11. sudo apt-get install texinfo
  12. sudo apt-get install unzip
  13. sudo apt-get install sharutils
  14. sudo apt-get install subversion
  15. sudo apt-get install libncurses5-dev
  16. sudo apt-get install ncurses-term
  17. sudo apt-get install zlib1g-dev
  18. sudo apt-get install gawk
  19. sudo apt-get install asciidoc
  20. sudo apt-get install libz-dev
  21. sudo apt-get install git
复制代码


编译环境设置完成。

下面获得源码并编译系统:

  1. mkdir openwrt
  2. cd openwrt   
  3. svn co svn://svn.openwrt.org/openwrt/trunk    // 下载官网的源码,trunk 最最新的源码
  4. ./scripts/feeds update -a                                    // 更新软件包,这一步需要用到 git
  5. ./scripts/feeds install -a                                      //  安装软件包
复制代码



make menuconfig   进入配置界面

这里,最重要的是要选择好 CPU 型号和机器型号,如下图所示:



一般的还加上 LUCI 界面,否则以后得通过 telnet 过去安装该界面(opkg install luci)。




如果需要中文界面的话,可以在选上图中的第 5 项,然后在里面选择中文语言包:


配置完成后,执行 make V=99 就开始编译了。第一次编译的时间会比较长,另外还可能需要注意一点,有时需要你的联网是翻墙环境,否则在编译时无法下载到相应的软件包从而导致编译出错。

编译成功后在 bin 文件夹目录里会看到生成的固件。

编译出来的是针对默认容量的闪存芯片,如果是其它容量的闪存芯片,那么在网上摘了段仅供参考:
以上为路由器未更改flash大小的编译过程;如果要编译非标准大小的flash固件,需要更改编译环境中的一些文件,以703N,使用trunk源码编译为例(trunkbackfire需要更改的文件不一样)
            
新版本trunk703N编译8M固件需要更改以下两个文件:
            
1、  /turnk/tools/firmware-utils/src/mktplinkfw.c
            
mktplinkfw.c中找到703N的相关属性,
            
.id             = "TL-WR703Nv1",
            
.hw_id          = HWID_TL_WR703N_V1,
            
.hw_rev         = 1,
            
.layout_id      = "8Mlzma",(改成8)
            
2、  /trunk/ target/linux/ar71xx/image/Makefile
            
Makefiel中找到以下内容
            
$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))
            
4改成以上的8
            
            
修改完成以上两个文件后,即可make V=99进行编译。
            
            
Backfire源码需要改动的文件,第一个与trunk一样,第二个文件位于
            
openwrt/backfire/target/linux/ar71xx/files/arch/mips/ar71xx目录下,找到对应的设备型号进行更改即可。
            
            
编译完成后,在bin/ar71xx目录下会有固件产生,固件名必包含编译的路由器型号,如果没有这两个文件,说明编译失败,有可能为编译时候选择的包太多,需重新选择后进行编译。

编译后,会自动创建 dl 和 build_dir 两个目录。编译时需要下载的源码包会放在 dl 目录下,然后解压到 build_dir 目录中编译。Build_dir 中有 3 个子目录,host 中是与平台无关的一些工具,toolchain 是特定平台的工具,ulibc 中是 c 库,应用程序等。


在 make menuconfig 中选择 M ,则只编译出 ipk 安装包文件,可将其上传到路由器中进行安装。如果选 y,那么直接编译在固件中。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-3 12:52 , Processed in 0.074116 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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