왜 이 LED가 깜빡이는 녀석은 모듈로 올라가지 않았을까?
이녀석은 built-in되서 kernel 이 init 되는 시기에 호출된다.
이것을 확인하기 위해서 우리는 타겟 보드를 컴퓨터와 nfs로 연결시킬 필요가 있다.
nfs연결 방법은... http://kkangstory.tistory.com/entry/Mini2440Kernel-Source여기서 ....^^
minicom으로 직접 타겟소스를 확인해 보자~
지금 HOST(Computer)의 "/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4" 가 nfs의 root로 잡혀 있다.
여기서 한번 nfs filesystem을 보자~^^
앞으로 /opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 를 r_q_qt4 라고 하겠다.
r_q_qt4/etc/init.d/rcS 파일을 열어보면....
(rcS 파일을 여는 이유는 이 파일은 커널 부팅완료후에 제일먼저 실행된다.-데몬같은것을 실행하는 녀석이다.)
==============================================
이와 같은 내용이 있다.
빨간색줄을 보면 /etc/rc.d/init.d/leds start 를 해주는데.
바로 저 쉘명령이 led들이 깜빡이는 것을 시작하게 해주는 명령이다.
그러면 한번 /etc/rc.d/init.d/leds 파일을 열어보자.
=================================
이와 같다.
이녀석은 2가지를 골라서 쓰돌고 하는데
첫번째는 start 를 뒤에 붙이는 경우와
두번째는 stop 을 뒤에 붙이는 경우가 있다.
즉,
$ /etc/rc.d/init.d/leds start
$ /etc/rc.d/init.d/leds stop
이 두가지 이다.
그리고 이때 정확히 내려지는 쉘명령어는
$ /etc/rc.d/init.d/leds start 는
$ /usr/bin/led-player 이고,
$ /etc/rc.d/init.d/leds stop 는
$ kill -9 led-player 이다.
결론적으로!!!
kernel init시에 led-player명령(혹은 /usr/bin/led-player명)으로 led의 깜빡임을 시작시키는 것이 었다.
이녀석은 built-in되서 kernel 이 init 되는 시기에 호출된다.
이것을 확인하기 위해서 우리는 타겟 보드를 컴퓨터와 nfs로 연결시킬 필요가 있다.
nfs연결 방법은... http://kkangstory.tistory.com/entry/Mini2440Kernel-Source여기서 ....^^
minicom으로 직접 타겟소스를 확인해 보자~
지금 HOST(Computer)의 "/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4" 가 nfs의 root로 잡혀 있다.
여기서 한번 nfs filesystem을 보자~^^
앞으로 /opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 를 r_q_qt4 라고 하겠다.
r_q_qt4/etc/init.d/rcS 파일을 열어보면....
(rcS 파일을 여는 이유는 이 파일은 커널 부팅완료후에 제일먼저 실행된다.-데몬같은것을 실행하는 녀석이다.)
==============================================
38 syslogd
39 /etc/rc.d/init.d/netd start
40 echo " " > /dev/tty1
41 echo "Starting networking..." > /dev/tty1
42 sleep 1
43 /etc/rc.d/init.d/httpd start
44 echo " " > /dev/tty1
45 echo "Starting web server..." > /dev/tty1
46 sleep 1
47 /etc/rc.d/init.d/leds start
48 echo " " > /dev/tty1
49 echo "Starting leds service..." > /dev/tty1
50 echo " "
51 sleep 1
52
53 /sbin/ifconfig lo 127.0.0.1
54 /etc/init.d/ifconfig-eth0
55
56 /bin/qtopia &
57 echo " " > /dev/tty1
58 echo "Starting Qtopia, please waiting..." > /dev/tty1
59
==============================================이와 같은 내용이 있다.
빨간색줄을 보면 /etc/rc.d/init.d/leds start 를 해주는데.
바로 저 쉘명령이 led들이 깜빡이는 것을 시작하게 해주는 명령이다.
그러면 한번 /etc/rc.d/init.d/leds 파일을 열어보자.
=================================
1 #!/bin/sh
2
3 base=led-player
4
5 # See how we were called.
6 case "$1" in
7 start)
8 /usr/bin/$base &
9 ;;
10 stop)
11 pid=`/bin/pidof $base`
12 if [ -n "$pid" ]; then
13 kill -9 $pid
14 fi
15 ;;
16 esac
17
18 exit 0
=================================이와 같다.
이녀석은 2가지를 골라서 쓰돌고 하는데
첫번째는 start 를 뒤에 붙이는 경우와
두번째는 stop 을 뒤에 붙이는 경우가 있다.
즉,
$ /etc/rc.d/init.d/leds start
$ /etc/rc.d/init.d/leds stop
이 두가지 이다.
그리고 이때 정확히 내려지는 쉘명령어는
$ /etc/rc.d/init.d/leds start 는
$ /usr/bin/led-player 이고,
$ /etc/rc.d/init.d/leds stop 는
$ kill -9 led-player 이다.
결론적으로!!!
kernel init시에 led-player명령(혹은 /usr/bin/led-player명)으로 led의 깜빡임을 시작시키는 것이 었다.
'PROJECT > ex347_project' 카테고리의 다른 글
크로스컴파일(Cross Compile) 환경 구축 (1) | 2011.05.09 |
---|---|
Mini2440] GPIO-LED-module 만들기 (0) | 2011.04.25 |
Mini2440_gpio-LED] 의 하나를 gpio 로 빼보자. (0) | 2011.04.25 |
Mini2440]GPIO 제어하기(Data sheet읽기) (1) | 2011.04.22 |
Mini2440]target board를 nfs로 부팅시키자~!! (0) | 2011.04.22 |