linux kenel 驱动移植

在项目开发过程中,需要一款wifi网卡驱动(具有monitor模式)的支持,具体型号为rtl8812au,并且作者把这款驱动做了改装,在树莓派下可以编译通过,现在需要移植到openharmony的rk3568(也是arm64)上。
由于过程中遇到了许多坑,所以我分别从原厂驱动移植到linux及openharmony,改装驱动移植到linux和openharmony两条路入手。以下为过程记录。

在ubuntu PC上实验编译原厂驱动一般是最简单的,原厂一般都做好了,而且相关文档也多。参考https://realtechtalk.com/RTL8821AU_Setup_Configure_Wifi_Realtek_8821_in_Linux_Debian_Mint_Ubuntu_Howto-2424-articles

wget https://github.com/aircrack-ng/rtl8812au/archive/refs/heads/v5.6.4.2.zip
unzip v5.6.4.2.zip
cd rtl8812au-5.6.4.2/
make -j 4
#生成的.ko是我们需要的文件
sudo apt-get install -y libncurses-dev bison flex libssl-dev

在Linux内核里,编译内核文件时,先要配置.config文件,然后Makefile在编译时通过读取.config文件的配置来选择要编译的文件,选择驱动的加载方式。

xxx_defconfig 一般在arch/XXX/configs/目录下,是一个没有展开的内核配置,需要配合Kconfig展开成.config
从defconfig到.config不是简单的复制操作,而是make ARCH=arm64 defconfig
.confg也不是直接拷贝成defconfig,而是使用make ARCH=arm64 savedefconfig

正确使用和保存deconfig的流程:
要修改在arch/arm/configs下的文件xxx_defconfig
2. make ARCH=arm64 xxx_defconfig 会生成.config文件
3. make ARCH=arm64 menuconfig 修改配置后保存
4. make ARCH=arm64 savedefconfig 生成defconfg文件
5. cp defconfig arch/arm/configs/xxx_defconfig 保存
这样保存的defconfig文件,配置最小化,且日后能恢复成.config。

因为我要移植的驱动最先在树莓派上是可以用的,所以以树莓派为例,

sudo apt install crossbuild-essential-arm64
git clone --depth=1 https://github.com/raspberrypi/linux
#代码推荐手动下载
#这时需要把需要添加的驱动复制到对应路径下,并修改相应Kconfig和Makefile
cd linux
KERNEL=kernel8
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
make ARCH=arm64 menuconfig
make ARCH=arm64 savedefconfig
cp defconfig arch/arm64/configs/8812_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- 8812_defconfig
#这样就换成自己的deconfig了
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs

如果编译的过程中出现了对应.o,则认为移植过程是生效的。
最终是需要生成.ko,然后insmod。

修改help,修改
phydm.mk
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值