嵌入式爱好者

3588_在内核中配置wifi固件

2024-6-21 14:13| 发布者: hai| 查看: 43| 评论: 0|原作者: hai

类目: 知识库  >  RK3588系列产品     文档编号: 1427

背景:在适配RTL8822ce时,将驱动默认编译进内核了,在实际内核启动过程中看到,在启动3秒到4秒时,wifi驱动就已经开始加载了,问题来了,现在文件系统还没有开始挂载,所以找不到/lib/firmware的文件路径,导致驱动加载失败。这时如果还想将驱动默认编译进内核,就需要如下的配置。本次以3588的Linux系统为例。

在内核中配置固件

新建firmware文件夹

  
OK3588_Linux_fs/kernel$ mkdir firmware

之后自行将文件夹中的rtw88固件放入firmware文件夹中,这里就不做过的演示了。

文件结构:

  
$ tree firmware/
firmware/
└── rtw88
  ├── README
  ├── rtw8723d_fw.bin
  ├── rtw8821c_fw.bin
  ├── rtw8822b_fw.bin
  ├── rtw8822c_fw.bin
  └── rtw8822c_wow_fw.bin

1 directory, 6 files

下面将固件配置进编译选项:

  
OK3588_Linux_fs/kernel$ make menuconfig ARCH=arm64

依次打开如下选项

  
-> Device Drivers          
  -> Generic Driver Options      
      -> Firmware loader
        -> Firmware loader

Build named firmware blobs into the kernel 选项中写入固件路径:

  
rtw88/rtw8822c_fw.bin rtw88/rtw8822c_wow_fw.bin

Firmware blobs root director 选项中写入查找目录

  
firmware

注:上面固件路径多个固件中间加空格,查找目录中是以kernel目录为根目录进行查找的,还需要注意firmware后面不要加"/",系统编译时会自动补全。

将内核文件配置进defconfig中

需要将.comfig拷贝到OK3588-Linux_defconfig中:

  
OK3588_Linux_fs/kernel$ cp .config arch/arm64/configs/OK3588-Linux_defconfig

注:此操作需要将内核提前编译一遍之后才可使用。

编译镜像验证

编译方法参考编译手册,本次为了验证功能,只演示编译内核。

  
OK3588_Linux_fs$ sudo ./build.sh kernel

编译过程中会有如下信息提示:

  
UPD     drivers/base/firmware_loader/builtin/rtw88/rtw8822c_fw.bin.gen.S
AS     drivers/base/firmware_loader/builtin/rtw88/rtw8822c_fw.bin.gen.o
UPD     drivers/base/firmware_loader/builtin/rtw88/rtw8822c_wow_fw.bin.gen.S
AS     drivers/base/firmware_loader/builtin/rtw88/rtw8822c_wow_fw.bin.gen.o

有以上打印信息,说明已将固件加载上。下面自行将镜像刷到系统中进行验证。

查看驱动加载情况:

  
root@ok3588:/# dmesg | grep "8822"
[   3.040421] rtw_8822ce 0004:41:00.0: Firmware version 9.9.15, H2C version 15
[   3.040439] rtw_8822ce 0004:41:00.0: Firmware version 9.9.4, H2C version 15
[   3.040501] rtw_8822ce 0004:41:00.0: enabling device (0000 -> 0003)
[   5.003557] input: headset-keys as /devices/platform/nau8822-sound/input/input1
[   5.110267] input: rockchip-nau8822 Headset as /devices/platform/nau8822-sound/sound/card0/input2
[   6.301570]   #0: rockchip-nau8822

查看网络节点:

  root@ok3588:/# ifconfig -a
wlan0     Link encap:Ethernet HWaddr F0:C8:14:89:D6:04  
        BROADCAST MULTICAST MTU:1500 Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)



已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-9-8 07:27

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部