OpenWrt编译固件和交叉编译环境搭建
Posted s3320
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenWrt编译固件和交叉编译环境搭建相关的知识,希望对你有一定的参考价值。
ubuntu环境
?? 点击openwrt查询自己系统需要安装的那些
比如我的系统是ubuntu 18.04,选择的就是18.04
查询设备CPU信息
?? 点击openwrt查询自己路由器对应的CPU信息
准备OpenWrt环境
- 下载openwrt源码
这个过程可能会有点漫长,可以将github上的资源搬到码云,然后从码云下载,据说速度很快,详细的教程百度搜一下就有
git clone https://git.openwrt.org/openwrt/openwrt.git
- 选择自己需要的分支
cd openwrt/
# lede
git checkout lede-17.01
# openwrt
git checkout openwrt-18.06
- 编译检查
在安装Ubuntu环境的时候,我们已经安装了一部分需要的库,在这个地方如果报错,只需要根据报错的信息安装对应库就好了
make defconfig && make prereq
- 配置编译信息
在第二部我们已经查到自己路由信息,在这个地方只需要按照查询的信息选择就好
make menuconfig
关于一些选项的说明,来自于《OpenWrt智能路由系统开发 跟hoowa学智能路由》
如果只是生成SDK开发环境,勾选比较少,我所勾选的是
Target System (Atheros AR7xxx/AR9xxx)
Target Profile (GL MIFI)
Advanced configuration options
Build the LEDE SDK
- 编译
使用make命令即可完成编译。不显示信息,直接编译
make
- 采用多核编译,参数-j 后面跟随线程的数量
make -j 6
- 显示全部信息,并且采用多核编译
make V=99 -j 2
- 提取编译文件
固件以sysupgrade.bin结尾的文件
SDK openwrt-sdk-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz
清理编译
这个地方请谨慎操作,一旦操作错,可能会让你编译了几个小时的东西瞬间爆炸- 清理已编译好的固件、软件包
make clean
- 清理掉已编译好的交叉编译工具、固件、软件包
make dirclean
- 清理掉所有内容
make distclean
SDK 配置
使用make menuconfig配置"Global build settings"中"Cryptographically sign package lists",这一项默认勾选,需要取消勾选,不然make时会出错。
Feeds源
- 查看Feeds下载地址
cat feed.conf.default
- 下载全部Feeds源并安装到源代码中
./scripts/feeds update -a
./scripts/feeds install -a
以上是关于OpenWrt编译固件和交叉编译环境搭建的主要内容,如果未能解决你的问题,请参考以下文章