开机自启动脚本
需求描述:需要在开机的某个过程,手动写某个设备的寄存器的值,并加载ak8963的模块驱动
1.编辑脚本akmsensor.sh
#!/system/bin/sh i2cset -y -f 5 0x68 0x37 0x02 b sleep 10 insmod vendor/lib/modules/ak8963.ko
2.修改device.mk
device/rockchip/common diff --git a/device.mk b/device.mk index 6123734..cd6ac61 100755 --- a/device.mk +++ b/device.mk @@ -212,6 +212,8 @@ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/init.insmod.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.cfg \ $(LOCAL_PATH)/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \ $(LOCAL_PATH)/eth_rule.sh:$(TARGET_COPY_OUT_VENDOR)/bin/eth_rule.sh \ + $(LOCAL_PATH)/akmsensor.sh:$(TARGET_COPY_OUT_VENDOR)/bin/akmsensor.sh \ + $(LOCAL_PATH)/ak8963.ko:$(TARGET_COPY_OUT_VENDOR)/lib/modules/ak8963.ko \ device/rockchip/common/init.$(TARGET_BOARD_HARDWARE).rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(TARGET_BOARD_HARDWARE).rc \ device/rockchip/common/init.$(TARGET_BOARD_HARDWARE).usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(TARGET_BOARD_HARDWARE).usb.rc \ device/rockchip/common/ueventd.rockchip.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
3.修改xxx.init.rc文件,创建服务启动脚本:
device/rockchip/common/ueventd.rockchip.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ diff --git a/init.rk30board.rc b/init.rk30board.rc index c584fa9..f4f84ad 100755 --- a/init.rk30board.rc +++ b/init.rk30board.rc @@ -397,8 +397,17 @@ service shutdownanim /system/bin/bootanimation shutdown on property:sys.boot_completed=1 + start akmsensor start eth_rule +service akmsensor /system/bin/sh /vendor/bin/akmsensor.sh + class main + user root + group root + disabled + oneshot + seclabel u:r:shell:s0 + service eth_rule /system/bin/sh /vendor/bin/eth_rule.sh
sys.boot_completed=1是开机动画结束后,开始启动服务,服务启动脚本
4.服务的启动时间顺序,可以init.rc里面阶段来选择:

参考:https://blog.csdn.net/WCH_TechGroup/article/details/130337224
https://blog.csdn.net/weixin_38503885/article/details/81202799
https://blog.csdn.net/SHH_1064994894/article/details/131983338

浙公网安备 33010602011771号