개발

jackryu 2009. 11. 19. 11:16

 

 

kernel 설정과 setting 이 끝나고 android cupcake file system 이 실행이 되면서

초기에 /init  프로그램을 구동합니다.

그 init process 는 init.rc 스크립을 참고 해서

android 초기 setting 을 수행하게 되는 데요.

문제는 그 초기 setting 과정에서

ethernet 설정을 위해 ifconfig ,route 등의 명령어를

넣어주게 되더라도 실행이 되지 않습니다. 

그걸 해결하기 위해서는 

 

init.rc 안에



맨 마지막에
service <service name> /system/bin/sh /<sh path>/xxxx.sh
oneshot
위와 같은 포맷으로 새로운 service 를 하나 추가해 줍니다.

ex) service eth_set /system/bin/sh  /system/etc/eth_set.sh
oneshot

저 같은 경우는 위와 같이 설정하였습니다.

위의 의미는 eth_set 이라는 서비스를 등록하여 주며

/system/bin/sh 명령어를 /system/etc/eth_set.sh 이 스크립트를

참고하여 수행하라는 것입니다.

 

/system/etc로 이동
# vi eth_set.sh
이렇게 eth_set.sh 파일을 만들어서 그 안에

아래와 같이 코딩해 줍니다.
ifconfig eth0 192.168.10.50 netmask 255.255.255.0 up
route add default gw 192.168.10.1 eth0

이것 이외에 추가적으로 더 수행해주고 싶은 command 가 있다면

밑에 더 추가해 줘도 됩니다.

 

저장 후 재부팅하게 되면 부팅 과정시에서 자동적으로 위의 command 가

실행되면서 원하는 동작을 할 수 있게 됩니다.

동작이 안된다면

dns 설정을 위해서 init.rc 소스 안에

setprop net.dns1 168.126.63.1 이런식으로

setting 값을 변경하여 줍니다.

정말 도움이 많이 되었습니다. 감사합니다.