기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요. 많이 배우고 있습니다.
usb0 의 ethernet driver 가 올라오면 dhcpcd usb0 를 자동으로 해주고 싶습니다.
연관된 질답
device drvier 올란온 후 write 명령어 자동실행 하려면요??
기존 질답 내용을 검색 해보면 init.rc 에 아래와 같이 service 를 만들고 init script 를 준비해 두면 driver load 된 이후에 실행 된다고 고도리님이 해주셨는데요..
고도리님 답변
------------------------------------
service wifi-run /system/etc/init.wifi.sh
oneshot
#!/system/bin/sh
write /proc/driver/hid "9"
제 수정사항
----------------------------------------------------
service dhcpcd_usb0 /system/etc/init.usb.sh
oneshot
#!/system/bin/sh
dhcpcd usb0
결과는
- usb device 가 붙어도 service 가 실행되지 않는것 같고..
- setprop ctl.start dhcpcd_usb0 를 해도 아무런 반응이 없습니다.
- init.rc 에 service dhcpcd_usb0 가 잘 들어가 있는것은 확인했구요.
- 물론 shell 에 /system/etc/init.usb.sh 를 manually 넣어주면 그냥 한번에 잘 실행됩니다.
질문 1. device attach(usb0 network interface 생성)를 탐지 하여 무언가를 해주는것을 init.rc 에 service 를 등록 하는것으로 할 수 있는건가요? usb0 는 booting 시점에는 없고, usb device 가 attach 될때 생깁니다. Uevent 가 연관되어 있지 않은것 같은데 어떻게 service 가 자동으로 돌 수 있는지 궁금합니다.
질문 2. init.rc 로 등록된 service 를 검색해 볼 수 있나요? 예를들어 service list 같은것 말입니다.
질문 3. service option 중 oneshot 은 "한번 실행 후 재실행 하지 않음"이 맞나요? init.usb.sh 가 usb device 가 재차 꼽힐 때마다 실행되어야 합니다. 위에 보니까 IP 를 받아오고도 dhcpcd process 가 계속 생긴다고 하셔서 넣어놓긴 했습니다만....음...
질문 4. service option 중 disabled 는 고도리님 책에 "처음에 실행하지 않음" 이라고 되어 있는데. 이는 booting 시 실행하지 않음 이라고 판단 할지 아니면 usb0 가 처음 붙엇을때는 실행하지 않음 인지요?
위 질문의 답변은 스스로 해결하더라도 달아 놓겟습니다.
개발자 여러분들 오늘도 행쇼~~
[해결]----------------------------------------------------------------------------------------
service dhcpcd_usb0 /system/bin/dhcpcd usb0
class core
class main 으로 했을때 dhcpcd process 가 늘어나는문제는 class core 로 바꾸고 해결되었습니다.
-------------------------------------------------------------------------------------------------
issue status update
service dhcpcd_usb0 /system/etc/init.usb.sh
class main -> 추가로 이제 getprop 했을때 list 에 나옵니다.
oneshot -> 이걸 추가 하면 stopped 로 나오며 usb device attach 시 자동으로 실행 되지 않습니다. 제거 하면 계속추가로 실행 되어 ps 시 dhcpcd 가 추가로 생깁니다.
결국 되긴되는데 usb ethernet 꽂으면 자동으로 dhcpcd 실행하고 싶은데요. <= 이분과 같은 문제가 생기는군요. T_T
1.
2. 일단 getprop 해서, init.svc 로 시작되는 녀석들 중에 떠 있는지 확인 부탁드립니다.
3. oneshot은 한번 실행되고 kill 되면 자동으로 실행시키지 않겠다는 의미입니다.
4. 부팅때만 실행하지 않는다는 것입니다. 즉, default 값이 disable이라고 이해하시면 될겁니다