有很多牛人,将一些openwrt不支持的路由器的闭源的驱动集成到了openwrt上。但是有时候出于各种原因,这些牛人的版本,比起openwrt官方的版本要老一些。可能这也是出于稳定的原因考虑。对于想尝鲜的小伙伴,可以考虑将这些驱动集成到官方的版本中。下面就是我居于大佬lean的版本,尝试集成到openwrt中的一个探索。
下面以ACRH17的路由器为例子,介绍如何将其驱动集成到官方openwrt中。
如何编译openwrt这里不做细讲。
一、将官方的版本下载到本地
./scripts/feeds update -a
./scripts/feeds install -a
二、将驱动拷贝到编译目录
拷贝qcom-ipq4019-rt-acrh17.dts,和board-asus_rt-acrh17.qca4019
target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-rt-acrh17.dts
package/firmware/ipq-wifi/board-asus_rt-acrh17.qca4019
(文件可以到lean的github上找到https://github.com/coolsnowwolf/lede)
三、增加在make menuconfig中实现acrh17路由器可选择的配置
编辑target/linux/ipq40xx/image/generic.mk文件,增加下面的代码
$(call Device/FitImageLzma)
DEVICE_VENDOR := ASUS
DEVICE_MODEL := RT-ACRH17
DEVICE_DTS := qcom-ipq4019-rt-acrh17
SOC := qcom-ipq4019
BLOCKSIZE := 128k
PAGESIZE := 2048
DTB_SIZE := 65536
IMAGE_SIZE := 20439364
FILESYSTEMS := squashfs
UIMAGE_NAME:=$(shell echo -e '\03\01\01\01RT-ACRH17')
DEVICE_PACKAGES := ipq-wifi-asus_rt-acrh17 ath10k-firmware-qca9984-ct kmod-usb-ledtrig-usbport
endef
TARGET_DEVICES += asus_rt-acrh17
1、编辑package/firmware/ipq-wifi/Makefile文件,在 ALLWIFIBOARDS:= \ 增加下面代码:
在对应的位置增加:
2、编辑target/linux/ipq40xx/base-files/etc/board.d/02_network文件,在下面的位置中,增加asus,rt-acrh17|\ 设置交换机:
3、编辑文件target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh,增加代码:
4、编辑文件target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata,在
下增加代码
5、编辑target/linux/ipq40xx/base-files/etc/board.d/01_leds文件,设置LED灯的显示,
6、编辑target/linux/ipq40xx/base-files/lib/upgrade/platform.sh,设置升级的时候平台的检测。下面位置增加asus,rt-acrh17 |\
四、将驱动集成到编译文件中,编辑target/linux/ipq40xx/patches-5.10/901-arm-boot-add-dts-files.patch
增加代码:
最重要一半,不要忘记修改这个文件中,下面代码。76表示补丁的行数,如你增加了上面一行代码,那么下面76的位置需要改成77.
@@ -903,11 +903,76 @@ dtb-$(CONFIG_ARCH_QCOM) += \
五、最后是选择acrh17开始编译(不细讲)
make
没有评论:
发表评论