尝试将第三方内核供应商模块集成到我们的 android 堆栈中。因为这个模块不需要作为早期初始化的一部分,所以决定不把它放在 BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD 下,它首先起作用。
现在我正在创建一个 .rc 文件来加载它们。
.rc 文件如下所示:
on boot
start xx_module_insmod_sh
service xx_module_insmod_sh /vendor/etc/xx_modules_run.sh sys.all.boot.ready
class main
user root
group root system
disabled
oneshot
xx_modules_run.sh
#!/system/bin/sh
insmod /vendor/lib/modules/xyz.ko
setprop $1 1
当我在目标中运行它们时,lsmod 列出了节点 xyz.ko,但没有创建 /sys/devices/virtual/inxx。我可以在 /vendor/etc/init/* 路径中的目标中看到 .rc 和 .sh 文件。
但是如果我从 adb shell 手动 insmod 它,我可以看到 /sys/devices/virtual/inxx。
很难调试,因为启动时没有可用的 dmesg 日志。任何帮助表示赞赏。