环境配置说明
- 适用硬件:ASUS RT ACRH17
- 编译系统:Debian For Win10 WSL
- 参考借鉴:lede源添加acrh17
- 稳定版19.07无法识别和使用5G无线网卡,而Master分支可用但无法开启160MHZ
- 注意不要使用root用户编译,最好使用梯子来加速源码的下载速度
- 使用Win10 WSL环境编译的,编译前建议先将Win10系统变量剔除,否则可能报错:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
1 | # ASUS RT ACRH17 的配置 |
获取编译源码
1 | # 安装配置编译环境 |
1 | # 设置代理来加速源码下载,没有代理可跳过或根据需求设置 |
添加设备源码
- 为ACRH17适配官方OPENWRT需要修改和添加以下文件
1 | # 要修改的基本文件,用于添加ARCH17设备 |
- 修改
01_leds
来设置LED灯的状态
1 | --- openwrt-master/target/linux/ipq40xx/base-files/etc/board.d/01_leds 2020-12-06 19:35:18.471161900 +0800 |
- 修改
02_network
来设置网卡
1 | --- openwrt-master/target/linux/ipq40xx/base-files/etc/board.d/02_network 2020-12-06 19:35:18.471161900 +0800 |
- 修改
11-ath10k-caldata
选择SOC要加载的固件
1 | --- openwrt-master/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata 2020-12-06 19:35:18.471161900 +0800 |
- 修改
05_set_iface_mac_ipq40xx.sh
来设置MAC
1 | --- openwrt-master/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh 2020-12-06 19:35:18.471161900 +0800 |
- 修改
platform.sh
来设置升级时的操作
1 | --- openwrt-master/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh 2020-12-06 19:35:18.471161900 +0800 |
- 添加
qcom-ipq4019-rt-acrh17.dts
用来生成DTB设备树
1 | wget -O target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rt-acrh17.dts \ |
- 最重要的来了,修改
image/Makefile
来添加ACRH17设备
1 | --- openwrt-master/target/linux/ipq40xx/image/Makefile 2020-12-06 19:35:18.519107200 +0800 |
- 修改
901-arm-boot-add-dts-files.patch
来添加ACRH17的DTB
1 | --- openwrt-master/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch 2020-12-06 19:35:18.534728700 +0800 |
- 修改
package/firmware/ipq-wifi/Makefile
驱动QCA9984网卡
1 | --- openwrt-master/package/firmware/ipq-wifi/Makefile 2020-12-06 19:35:15.873926900 +0800 |
- 添加
board-asus_rt-acrh17.qca4019
固件文件
1 | wget -O lede/package/firmware/ipq-wifi/board-asus_rt-acrh17.qca4019 \ |
其他实用技巧
再次编译时可能要用到的参数
1
2
3
4
5
6
7
8# 获取最新源码及重置软件包源
git pull && ./scripts/feeds clean
./scripts/feeds update -a && ./scripts/feeds install -a
# 再次编译前建议使用make clean清理
make clean # 清除bin目录
make dirclean # 清除bin目录和交叉编译工具及工具链目录
make distclean # 清除所有相关的东西,包括下载的软件包,配置文件,feed内容等额外配置内核参数,一般不需要配置
1
2
3
4# 在OpenWRT的 `.config` 文件中内核的选项都是形如 `CONFIG_KERNEL_XXX`
# 自己手动添加内核选项时不要忘了在中间添加 `_KERNEL_` 前缀
# 只能包含到内核而不能作为模块,因为编译后的模块不会添加到固件内
# make kernel_menuconfig # 进入内核配置界面使用自有软件包源
1
2
3
4
5
6
7# 生成自有软件包的索引
openwrt/scripts/ipkg-make-index.sh ./ipkg-dir > Packages
gzip -9c Packages > Packages.gz
# 上传到路由器并添加源
ln -s /mnt/sda1/packages/ /www/
src/gz 19.02_packages http://192.168.1.1/packages编译所有包(
CONFIG_ALL=y
)耗时很长且经常出错,lean源无效。
1 | Global build settings ---> |