101.linux驱动(非ko)加载需要固件的一个小问题

1. 平台 还是rk3399(am40)

2. 内核:linux5.10

3. 文件系统: firefly ubuntu20.04

4. 需要加载的驱动 rtl8822be (pci)接口

一、错误的提示:提示这个固件rtw88/rtw8822b_fw.bin无法加载 

root@firefly:~# dmesg | grep 8822

[    6.983329] rtw_8822be 0000:01:00.0: Direct firmware load for rtw88/rtw8822b_fw.bin failed with error -2

[    6.992886] rtw_8822be 0000:01:00.0: enabling device (0000 -> 0002)

[    7.006063] rtw_8822be 0000:01:00.0: failed to request firmware

[    7.012028] rtw_8822be 0000:01:00.0: failed to load firmware

[    7.017706] rtw_8822be 0000:01:00.0: failed to setup chip efuse info

[    7.024072] rtw_8822be 0000:01:00.0: failed to setup chip information

[    7.034789] rtw_8822be: probe of 0000:01:00.0 failed with error -22

1.1 我查了一些资料,在网上把这个bin文件下载到了下来。

放到了/lib/firmware/rtw88/目录下(没有目录的则新建一个)

重启后,无法加载,故障提示依旧。

1.2 后来又看到资料说要放到/usr/local/lib/firmware/rtw88/目录下

又拷贝了一份到这个目录中

重启后,无法加载,故障提示依旧。

1.3 后来我把8822的驱动编译成模块

等到系统启动后,再分别加载对应的4个驱动,成功了。

101.linux驱动(非ko)加载需要固件的一个小问题_第1张图片

1.4 再遇到这个问题,就是加载cdn_dp的时候,又一次碰到了这个问题

cdn-dp fec00000.dp: Direct firmware load for rockchip/dptx.bin failed with error -2

但是,这个驱动不能改为模块了!!!!没法加载了

明明在/lib/firmware目录有这个文件,同时我也复制一份到/usr/local/lib下,

重启,故障依旧。

1.5 晚上洗澡的时候,我突然想到了原因。

这个驱动加载的时候,文件系统还没有挂载,肯定没法找到对应的固件了。

那就必须把这个固件编译到内核中才行。说干就干!!!

1.6 解决

1.6.1 在kernel的目录下新建一个firmware目录

firmware目录里面放两个文件夹(目前我只需要两个),分别是rockchip和rtw88

101.linux驱动(非ko)加载需要固件的一个小问题_第2张图片

然后把对应的bin文件放到对应的目录中

101.linux驱动(非ko)加载需要固件的一个小问题_第3张图片

1.6.2 修改config

make menuconfig 

-> Device Drivers                                                                                       
         -> Generic Driver Options                                                                              
           -> Firmware loader                                                                                   
                -> Firmware loading facility (FW_LOADER [=y]) 

 

101.linux驱动(非ko)加载需要固件的一个小问题_第4张图片

多个固件按空格分开,需要包含目录

1.6.3 保存后退出,重新编译内核。

101.linux驱动(非ko)加载需要固件的一个小问题_第5张图片

烧录后,加载成功。

101.linux驱动(非ko)加载需要固件的一个小问题_第6张图片

二、总结

2.1 开始一直是在想应该放在哪个目录才能加载呢?其实方向错了,那个时间点,文件系统还没有挂载,放哪都找不到

2.2 对于Direct firmware load for xxxxxxx failed with error -2 这种类似的错误,应该都可以用这个方法解决。

2.3 cdn-dp的问题没有解决,驱动是成功加载了bin文件,但是依然是不能显示,待查吧。

你可能感兴趣的:(rk3399,linux,linux,rk3399,8822be网卡驱动)