01 > ȸҰ

 
작성일 : 12-06-08 18:21
rootfs-library-compile-howto
 글쓴이 : 이로직…
조회 : 5,085  
1. 보드에 전원을 넣는다.
2. 셋팅을 한다.
space key를 눌러서 user interface mode로 간다.
- ip 셋팅
robot-boot>setip 172.16.1.249 172.16.1.103
ip set start ...
        Host   (server) IP       : 172.16.1.249
        Client (target) IP       : 172.16.1.103

ip set complete ...
 
robot-boot>save
 ip set write Configuration Item
Erase : OK                                                                    
Write : OK                                                                    
Verify OK

3. nfs용 rootfs의 압축을 푼다....
mkdir /root/pxa
cp nfs_rootfs_with_nand_packaging.tar.gz /root/pxa
tar xzf nfs_rootfs_with_nand_packaging.tar.gz
이렇게 하면 nfs란 디렉토리가 나오고
cd nfs
ls -al *.tar
하게 되면
-rw-r--r--  1 root root 28559360 2007-06-17 20:42 pxa.tar
란 파일이 나온다.
이것은 nfs부팅시는 필요 없지만, nand에 packaging할때 사용하면 된다.

이제는 nfs 세팅을 해 준다.(nfs를 살리는 방법은 각 packaging 본마다 틀리므로 이 부분은 생략한다)
/etc/exports 파일에 다음과 같은 세줄을 넣어 놓는다(target의 ip가 어떻게 될지 몰라 그냥 세개를 넣었음)
/root/pxa/nfs 172.16.1.101(rw,no_root_squash,no_all_squash)
/root/pxa/nfs 172.16.1.102(rw,no_root_squash,no_all_squash)
/root/pxa/nfs 172.16.1.103(rw,no_root_squash,no_all_squash)
저장한 후 nfs daemon을 다시 살려주면 된다.

4. 일단 nfs로 부팅해 본다.
2.kernel/pre-compiled-image/nfs.img를 tftpboot 디렉토리에 복사해 놓는다.
robot-boot> tftp nfs.img kernel
robot-boot> go
해서 일단 nfs로 부팅한다.
실제로 nfs로 부팅한 것과 nand를 이용해서 부팅한 것과 같도록 해 놓았으므로
사용하는데는 차이가 없다.

5. nand에 rootfs image를 패키징
1> mtd 영역 확인
root@elogics:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00200000 00004000 "ELS_R270 Kernel partition"
mtd1: 00500000 00004000 "ELS_R270 Ramdisk partition"
mtd2: 03900000 00004000 "ELS_R270 Data partition 0"
2> 패키징할 영역 지우기.
root@elogics:~# flash_eraseall /dev/mtd/2
3> rootfs가 들어갈 nand mtd영역을 yaffs로 마운트 한다.
root@elogics:~# mount -t yaffs /dev/mtdblock/2 /mnt
4> 마운트 된 영역으로 rootfs을 복사해 넣는다.
root@elogics:~# cd /
root@elogics:/# tar -C /mnt -xf pxa.tar
root@elogics:/# umount /mnt
이렇게 하면 mount가 된 것이다.
해서 이번엔 nand로 부팅을 해 본다.
5> space key를 눌러서 bootloader의 user interface mode로 간다.
2.kernel/pre-compiled-image/mtd.img를 tftpboot 디렉토리에 복사해 놓는다.
robot-boot> tftp mtd.img kernel
robot-boot> go
이렇게 하면 nfs부팅때와 거의 같은 메세지를 보지만 nand로 부팅된 화면을 볼 수 있다.

6. 이제는 application을 테스트 해 볼 차례이다(nfs로 부팅했을때도 동일한 방법으로 테스트하면 된다)
0> touch를 calibration한다(안해도 상관없다)
root@elogics:~# ts_calibrate
화면이 바뀌고, 5포인트를 찍을 수 있는 화면이 뜬다. touch 판넬의 해당 포인트를 눌러서 calibration을 한다.
calibration한 값은
/etc/pointercal
파일에 저장이 된다.
1> SDL ttf library test
SDL ttf 라이브러리를 이용하여 한글을 display하는 것이다.
root@elogics:~# ./ghan
화면상의 touch를 누르면 빠져나간다.
2> SDL image library test
root@elogics:~# ./zoom
그냥 5초 기다리면 빠져나간다....5초 대기동안 touch의 움직임을 테스트할 수 있다.

3> paragui library test
root@elogics:~# ./windowtest
화면에 window가 뜬다. 윈도우를 움직여보고 ok 버튼도 눌러보면 된다.
console에서 control+c를 누르면 다시 화면이 뜬다.
이 때는 윈도우의 가운데 ok 버튼을 누르면 빠져나간다.
4> paragui unicode library test(한글/일본어 display)
root@elogics:~# ./unicodetest
화면에 각 나라의 글자들이 display되는 것을 볼 수 있다.
console에서 control+c를 누르면 빠져나간다.

7. SDL/paragui library example 및 compile
nfs_rootfs_with_nand_packaging.tar.gz 에 같이 포함되어 있다.
압축푼 후의 디렉토리인 /root/pxa/nfs/root를 보면
drwxr-xr-x  2 root root     139 2007-06-15 15:16 imagetest/
drwxr-xr-x  2 root root      32 2007-06-13 16:54 touchtest/
drwxr-xr-x  2 root root      68 2007-06-15 15:16 ttftest/
drwxr-xr-x  2 root root      95 2007-06-17 20:40 unicodetest_paragui/
drwxr-xr-x  2 root root     111 2007-06-17 20:41 wintest_paragui/
디렉토리들이 있게 된다. touchtest 디렉토리를 제외하곤 Makefile들이 들어 있다.
컴파일 할 경우는(touchtest는 제외) 해당 디렉토리로 들어가서
make depend
make
하면
/root/pxa/nfs/root에 알맞는 실행파일이 생긴다.
자세한 것은 Makefile을 보면 되고, 라이브러리 파일들의 사용법은 해당 예제와
해당 library site의 tutorial을 보면 된다.
구글링에서 paragui tutorial 이라고 치면 해당 페이지를 검색해준다.