OpenWrt编译

一、引言

OpenWrt是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。现在越来越多的产品都是基于OpenWrt系统进行修改的,所以学会如何编译OpenWrt是比较有必要的。

二、环境

本例采用Ubuntu 20.04作为编译环境,需要按要求安装对应的工具链

sudo apt-get update
sudo apt-get install gcc g++ build-essential asciidoc  binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch flex bison make autoconf texinfo unzip sharutils subversion ncurses-term zlib1g-dev ccache upx lib32gcc1 libc6-dev-i386 uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev libglib2.0-dev xmlto qemu-utils automake libtool  -y

三、下载

下载源码进行编译,也可以下载特定的版本

mkdir openwrt
cd openwrt
# 下载最新版本
git clone https://github.com/openwrt/openwrt.git

# 下载特定版本
# git clone -b lede-17.01 https://github.com/openwrt/openwrt.git source

四、更新软件

更新软件

cd source
./scripts/feeds update -a
./scripts/feeds install -a

五、编译参数

通常使用菜单选择编译的参数

# 默认编译环境
make defconfig

# 定制化编译环境
make menuconfig

使用定制化编译环境

1、选择Target System,也就是CPU架构、型号这些

2、选择Subtarget,对应Flash信息,如果不知道可以按默认选择

3、选择Target Profile,对应主板、内存、存储等信息

4、选择Target images,可以按默认选择

5、选择Global build settings,设置通用、内核等编译参数

6、选择LuCI

再进入“1. Collections”,安装luci的Web服务

再进入"2. Modules" -> Translations,安装语言包

7、选择好所有参数后,按左右方向键点击Save菜单,保存为“.config”文件,保存后再按左右方向键点击Exit退出menuconfig。

六、编译

编译先下载dl库,编译可以用多线程,“-j8”表示8个线程。

# 下载dl库,编译成功率更高
make -j8 download V=s  

# 编译
make V=99 -j8

最后固件生成在bin目录

# 固件存储位置
openwrt/source/bin/targets/[某架构]/generic

# 内核相关文件
openwrt/source/build_dir/target-[某架构版本]/linux-[某架构]

七、参考链接

https://baike.baidu.com/item/openWRT/3528947

https://github.com/openwrt/openwrt

https://www.right.com.cn/forum/thread-324501-1-1.html

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注