中级会员
 
- 积分
- 225
- 金钱
- 225
- 注册时间
- 2020-7-6
- 在线时间
- 54 小时
|
20金钱
Linux内核:正点原子移植好的4.19.35源码
根文件系统:按照Linux驱动开发教程的根文件系统构建
新手上路,还有很多不懂的东西
如题,用正点原子构建的Yocto为根文件系统时没有这报错。
发现这报错语句后在内核源码内搜索 firmware not found ,找到了sdma驱动程序imx-sdma.c,
报错语句在 sdma_load_firmware 函数里,似乎是没找到sdma的固件?
在文件底部指定了文件路径 MODULE_FIRMWARE("imx/sdma/sdma-imx6q.bin");
Yocto有这文件,完整路径为 /lib/firmware/imx/sdma/sdma-imx6q.bin
按相同目录把 sdma-imx6q.bin 复制过来,开机,报错依旧
由此我怀疑是 firmware 没有正常工作,在busyBox里搜索 firmware
发现它由mdev控制,于是挖掘mdev的代码,mdev.c 里有函数 load_firmware 指定在 /lib/firmware 下寻找固件
mdev指令会执行函数 mdev_main
开机运行脚本rcS里 mdev -s 指令不会触发 load_firmware
那么问题来了,mdev指令怎么用,或是其他能直接解决 firmware not found 报错的方法
破案之路到这里我感觉越来越歪了,望大佬赐教。
期间百度mdev相关内容到处都是同一套文字,看吐了。
|
|