2013년 10월 25일 금요일

android init에서 service를 trigger 시키기

service insmod_ax88179 /system/bin/insmod /system/lib/modules/ax88179_178a.ko
    class core
    user root
    group root
    oneshot
                 
service insmod_smsc95xx /system/bin/insmod /system/lib/modules/smsc95xx.ko  
    class core
    user root
    group root
    oneshot


위와 같이 smsc95xx, ax88179_178a driver를 올리는 서버스를 만들어 먼저 ax88179_178a를 먼저 insmod하여 eth0를 ax88179_178a에 할당하고 싶었다.

하지만 라인 순서와 상관없이 서비스가 실행 된다.

그래서 하나의 service가 끝나고 다른 service를 trigger 시킬 방법을 찾아 보았다.

조건에 의해 실행된 서버스를 oneshot에서 disabled로 자동 실행이 되지 않도록 수정한다.
service insmod_smsc95xx /system/bin/insmod /system/lib/modules/smsc95xx.ko  
    class core
    user root
    group root
    disabled
    oneshot

그리고 첫번째 service가 실행되었는지 확인 할 수 있는 변수와 두번째 service를 실행 시킬 방법은 아래와 같다.

on property:init.svc.insmod_ax88179=stopped
    start insmod_smsc95xx

이렇게 고치면 ax88179_178a.ko가 먼저 insmod가 되고 eth0로 할당 받을 수 있다.