gny*_*his 5 android firmware linux-device-driver linux-kernel
我无法在Android设备上正确放置固件,我不断得到:
<3>[ 3590.997375] usb 3-1.4: ath9k_htc: Firmware - htc_7010.fw not found
Run Code Online (Sandbox Code Playgroud)
如果在运行Ubuntu的标准linux机器上,我将htc_7010.fw放在/ lib/firmware中,那么我不会收到此错误.
但是,如果我将此固件放在Android上的/ lib/firmware中,我仍然会收到错误消息.我已经尝试了以下所有目录,但仍然收到错误:
/lib/firmware
/etc/firmware
/system/lib/modules
/system/lib/firmware
/system/etc
Run Code Online (Sandbox Code Playgroud)
没有这样的运气......什么决定固件应该在哪里,以及如何确定它正在扫描固件的目录?
在Android(无论如何ICS)上,它有自己的守护进程/服务(或任何你想要的名称)来管理热插拔事件,包括固件请求.在<android>/system/core/init/devices.c,有两个#defines指定将检查固件的位置:
#define FIRMWARE_DIR1 "/etc/firmware"
#define FIRMWARE_DIR2 "/vendor/firmware"
Run Code Online (Sandbox Code Playgroud)
在我初始构建的ICS文件系统时,/etc/firmware不存在(并且etc目录似乎是在启动/初始化时创建的符号链接).我必须将固件放在我的NFS挂载的rootfs上的目录是<mount point>/system/etc/firmware
执行此操作后,我的模块中的request_firmware()调用已成功完成.
小智 1
内核执行用户空间脚本来加载固件。检查脚本是否位于正确的位置。
| 归档时间: |
|
| 查看次数: |
10847 次 |
| 最近记录: |