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

22 篇文章 2 订阅

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个驱动,成功了。

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

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

1.6.2 修改config

make menuconfig 

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

 

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

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

烧录后,加载成功。

二、总结

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

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

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大智兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值