1、上一节讲到我们选择OpenWRT 18.06作为我们的固件版本,我们开始搭建编译环境,我们电脑为Ubuntu20.04版本。
2、下载OpenWRT源码包(默认已墙)。
git clone https://github.com/openwrt/openwrt
3、安装编译前各种依赖(参考git说明)
[OpenWrt Wiki] Build system setup
sudo apt update
Debian / Ubuntu -> Older advice:
sudo apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python3-distutils python3-setuptools python3-dev rsync subversion \
swig time xsltproc zlib1g-dev
4、进入openwrt目录,并查看版本分支
cd openwrt
git branch -a
5、如图所示,我们需要使用分支版本18.06
git checkout openwrt-18.06
git status
可以查看当前git 分支版本
6、 获取feeds最新包定义,feeds在OpenWrt中就像是一个应用商店,里面有各种软件包,每个软件包就是一个应用程序或工具。这个"商店"可以让你往你的OpenWrt路由器上安装各种有用的东西,比如网络工具、娱乐应用等。
更新feeds
./scripts/feeds update -a
将所有获得的包的符号链接安装到 package/feeds/ 中
./scripts/feeds install -a
7、开一个文本界面的配置菜单,会出现一个图形配置菜单界面
make menuconfig
8、前期我们仅测试编译环境,先测试能否正常编译再修改其他配置
我们目前先配置目标系统和参考板,进入Target System选项选择 AR7xxx/AR9xxx
Subtarget 默认选择 Generic 即可
Target Profile 选择 Qualcomm Atheros AP147-010 reference board
保存配置,退出配置界面
9、开始编译(8为你的核心数,建议说开始编译使用单线程,好像多线程也没有什么影响)
以并行的方式下载 dl 库
make download -j8
开始编译(输出较为详细的信息V=s s
可以表示 "silent")
make V=s -j8
10、实际编译过程中会遇到各种问题,主要是环境依赖问题,用的ubuntu版本比较高,而实际openwrt版本没那么高,下一章再说编译中遇到的问题和解决方法。