OpenWRT编译——从源码到固件
来源:互联网 发布:网络常用语给力的意思 编辑:程序博客网 时间:2024/06/03 18:15
接触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、准备工作:安装编译所需的工具,在终端输入
sudo apt-get updatesudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzipsudo apt-get install subversion mercurialsudo 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版本为例,在主文件夹下执行:
git clone git://git.openwrt.org/15.05/openwrt.git如果下载失败,挂上VPN重试,以后可能经常遇到下载失败的问题,VPN是一个不错的解决方案。
3、下载安装可用的“feeds”:上述步骤会产生一个名为openwrt的目录,在终端输入
cd openwrt./scripts/feeds update -a./scripts/feeds install -a等待下载完成。
4、配置编译选项:
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、编译:执行命令
make V=s -j8V=s 代表显示编译信息,一定要勾选,否则出错的话无法看到错误信息。
-j8代表使用的CPU线程数量,4C8T的CPU可是使用8个线程提高速度,使用时有时会出错,可以改成-j1或者不加这个参数。
6、得到固件:
显示如下信息时并且终端上没有error时,代表编译成功
Signing package index...make[2]: Leaving directory '/home/goldmoon/openwrt'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源码下载与编译
- openwrt编译系统源码下载
- mtk7620 openwrt源码下载编译
- openwrt编译日志——1、序
- 编译个性化的OPENWRT固件(openWRT源码修改)
- 编译个性化的OPENWRT固件(openWRT源码修改)
- openwrt(一) 下载源码编译
- Openwrt源码下载和交叉编译
- openWRT源码下载与配置编译
- OpenWrt源码分析之编译系统
- openwrt编译openswan——以及交叉编译环境配置
- 从源码编译postgresql
- 从源码编译Ambari
- 从源码编译TensorFlow
- 从源码编译TensorFlow
- HTML常见全局属性
- org.apache.http.client.httpclient报错:
- 信号量通信
- 对/proc/buddyinfo的解释
- javascript重点-数据类型
- OpenWRT编译——从源码到固件
- ahk 6.数学相关
- 7.ahk屏幕管理
- Uva 232 Crossword Answers(3-6)
- 8.ahk杂项命令
- 【PAT】1032. Sharing
- ahk 9.进程管理
- ahk 10.注册表管理
- javaweb中properties意外错误