openwrt编译从源码到固件

转载 2018年04月16日 10:46:12

接触OpenWRT一年时间,大部分都在编译固件、刷机,遇到过不少问题。这里记录下以前摸索的步骤。

op编译过程的wiki:https://wiki.openwrt.org/zh-cn/doc/howto/buildroot.exigence

以下步骤的操作环境为64位的Ubuntu16.04 LTS,路由器型号位ZBT-WA05,OP版本为CC。

注意事项:

1. 请使用一个非root用户来完成这些工作!
2. 这里的所有命令都在OpenWrt编译系统的根目录下运行(例如~/openwrt/trunk/)
3. 编译系统的绝对路径中不能含有空格!
4. 如果你使用root用户下载了源码,请把你下载来的源码的所有者更改为一个非root用户。(sudo chown -R user:user /openwrt/)


过程:

1、准备工作:安装编译所需的工具,在终端输入

[plain] view plain copy
  1. sudo apt-get update  
  2. sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip  
  3. sudo apt-get install subversion mercurial  
  4. sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev   

2、下载源码:需准备12GB左右的空间,源码体积百兆左右,但是编译过程中会产生大量文件,会使文件夹体积非常大

大部分SVN都是失效的,所以一些老的教程就不能参考了,这点要注意。要使用git来下载源码。

要下载哪个版本可以参考wiki(上面的链接)以CC版本为例,在主文件夹下执行:

[plain] view plain copy
  1. git clone git://git.openwrt.org/15.05/openwrt.git  
如果下载失败,挂上VPN重试,以后可能经常遇到下载失败的问题,VPN是一个不错的解决方案。


3、下载安装可用的“feeds”:上述步骤会产生一个名为openwrt的目录,在终端输入

[plain] view plain copy
  1. cd openwrt  
  2. ./scripts/feeds update -a  
  3. ./scripts/feeds install -a  
等待下载完成。


4、配置编译选项:

[plain] view plain copy
  1. make menuconfig  
用方向键、空格(选择,出现M代表编译但不编译到固件,*号表示编译进固件)、按两下esc返回等操作来配置选项,选择硬件平台、CPU型号等选项。ZBT-WA05的配置如下:


选择Package the OpenWrt-base Toolchain是为了有搭建交叉编译环境方便,不是必选的。

此外,勾选LuCI(网页形式的控制台)还是非常必要的。要勾选(前面出现*号):

LuCI-->1.Collections-->luci

别忘记勾选中文:

LuCI-->2.Modules-->Translations-->Chinese(zh-cn)

最后Save,退出。

以上是基本的固件编译,如果需要其他功能,要再勾选或添加。


5、编译:执行命令

[plain] view plain copy
  1. make V=s -j8  
V=s 代表显示编译信息,一定要勾选,否则出错的话无法看到错误信息。

-j8代表使用的CPU线程数量,4C8T的CPU可是使用8个线程提高速度,使用时有时会出错,可以改成-j1或者不加这个参数。


6、得到固件:

显示如下信息时并且终端上没有error时,代表编译成功

[plain] view plain copy
  1. Signing package index...  
  2. make[2]: Leaving directory '/home/goldmoon/openwrt'  
  3. make[1]: Leaving directory '/home/goldmoon/openwrt'  

/home/goldmoon/openwrt/bin/ramips/openwrt-ramips-mt7620-zbt-wa05-squashfs-sysupgrade.bin

这个文件就是我们想要的固件。

编译的时候可能会遇到形形色色的错误,大部分都是文件下载错误(源码的服务器在国外,最好自备梯子),有时候需要科学上网才行。或者网上去找到缺失的包用p2p下载软件下载下来放到相应的位置(一般在dl这个目录下)。至于其它错误,要具体情况具体对待了,我也会在以后的博客里记录一下。

openWrt从源码下载到编译(开发环境搭建)

从官网获得openwrt源码 openwrt的配置方法 openwrt的编译方法
  • lell3538
  • lell3538
  • 2016-02-05 23:52:56
  • 17246

OpenWRT的源码下载及目录结构

目录结构: tools和toolchain包含了一些通用命令, 用来生成固件, 编译器, 和C库.build dir/host是一个临时目录, 用来储存不依赖于目标平台的工具.build dir...
  • leib
  • leib
  • 2014-10-30 05:37:53
  • 3496

Ubuntu16.04 openwrt源码下载

1.环境搭建 Ubuntu(64位) sudo apt-get update sudo apt-get upgrade  sudo apt-get install build-essentia...
  • jf_xu
  • jf_xu
  • 2017-06-04 12:52:31
  • 574

openwrt稳定版源码

  • 2015年11月16日 17:42
  • 6.57MB
  • 下载

OpenWRT编译——从源码到固件

接触OpenWRT一年时间,大部分都在编译固件、刷机,遇到过不少问题。这里记录下以前摸索的步骤。 op编译过程的wiki:https://wiki.openwrt.org/zh-cn/doc/howt...
  • moringrain
  • moringrain
  • 2017-02-11 00:19:38
  • 3616

OpenWrt源码下载说明

OpenWrt源码下载说明在研究OpenWrt之前,首先需要下载OpenWrt源码,那么在git仓库中保存的各版本以及分支都有什么区别,以及如何下载,是需要搞清楚的...
  • ruiyelp
  • ruiyelp
  • 2017-02-27 11:00:08
  • 333

openwrt 版本下载

OpenWrt source repository downloadsThe recommended way of checking out the OpenWrt source code is cl...
  • aa120515692
  • aa120515692
  • 2015-07-18 23:31:58
  • 2869

OpenWrt 自学笔记(1)----源码下载

这是我学习openwrt的笔记整理希望对大家有用
  • linux_xuxiyang
  • linux_xuxiyang
  • 2016-01-26 17:55:57
  • 1361

mtk openwrt 3.10.14 sdk源码

  • 2015年09月17日 15:44
  • 5MB
  • 下载

Openwrt源码目录结构

原文章是在这里:http://www.cnblogs.com/chengyi818/p/5094439.html 我为了以后查找学习方便就记录到自己的博客...
  • H542723151
  • H542723151
  • 2016-09-14 11:29:28
  • 1375
收藏助手
不良信息举报
您举报文章:openwrt编译从源码到固件
举报原因:
原因补充:

(最多只允许输入30个字)