2010년 2월 17일 수요일

참고자료


LETOK 850 보드 설정

LETOK850 보드 구성도 및 Toolkit

  • LETOK850 보드 구성도

letok850.PNG

  • LETOK850 교육용 툴킷

letok860-picture.PNG

LETOK850보드 실습환경 설정


  • 부팅 후 2초안에 아무런 키나 눌러 자동 부팅 종료
  • 초기 화면

    • mpc-1.png

  • printenv 확인

    • mpc-2.png

  • 환경 설정

    • 보드의 ip address 변경

      • setenv ipaddr 192.168.0.100
    • 보드의 ip에 대한 gateway 변경

      • setenv gateway 192.168.0.1
    • 서버 ip 지정 { 이 경우, gateway와 서버는 동일 }

      • setenv serverip 192.168.0.1
    • 부트 초기 설정 변경 {빨간 색 글씨 꼼꼼히 확인 필요}

      • setenv bootargs root=/dev/nfs rw nfsroot=192.168.0.1:/initrd/mnt/dev_save/nfs nfsaddrs=192.168.0.100:192.168.0.1

    • 환경 저장

      • saveenv
  • 자동 부팅 재시작

    • bootcmd


새롭게 컴파일된 vmlinux.ppcboot로 부팅하기

  • LETOK850 의 스위치를 켠다
  • 자동 부팅 상태에서 아무키나 눌러 자동 부팅을 종료한다.
  • protect off all
  • erase ffc30000 ffcbffff {만약 cp.b에서 Flash not erased 오류가 발생하면 두번째 인수의 크기를 증가한다. }

    예; erase ffc30000 ffccffff

  • tftpboot "vmlinux.ppcboot"

    ##################################### ( xxxxx hex )

  • cp.b 10000 ffc30000 {커널의 크기 - 16진수, 바로 위줄의 hex 앞의 십육진수}
  • bootcmd 실행

HDD에 ELDK 설치하기

설치할 HDD 공간 확인하기

  • 파일 시스템이 리눅스 (ext2, ext3) 인 경우
  • 공간이 약 600M (여유있게 하려면 1G 정도) 이상 있는지 확인한다.
  • USB에서 Puppy로 부팅한 경우
  • 아마도 지급된 용량이 2G정도 이기 때문에 설치하기에는 공간이 턱없이 부족함
  • Windows 컴퓨터의 D 드라이브 (아마도 바탕화면에 sda5 라고 표시되었을 것)


    • sda5.png


  • sda5를 한번 클릭하면 Mount, 다시 한번 더 클릭하면 Umount 됨


ELDK 설치


  • [첫번째 방법] 그냥 ntfs에다 설치하려면
  • 윈도우로 부팅하였을 경우, 디렉토리 내의 모든 파일구조가 다 보임
  • 모든 파일이 실행 가능한 플래그가 할당됨
  • cd /mnt/sr0 { ppc-2005-03-07.iso 를 구운 CD를 삽입하면 자동으로 마운트 됨 }
  • ./install -d /mnt/sda5/ELDK ppc_8xx

  • [두번째 방법] 윈도우 드라이브에 가상 파일을 만들고 마운트 하여 사용
  • 윈도우 드라이브에 가상 파일을 만들고, 그 가상 파일을 마운트하여 사용 { ramdisk에서 아이디어 가져옴 }

    • 윈도우 드라이브에 HDD에 1G의 공간을 할당

      • dd if=/dev/zero of=/mnt/sda5/ELDK bs=1k count=1024000
    • 파일 시스템 생성

      • mke2fs -vm0 /mnt/sda5/ELDK 1024000
      • 일반 파일을 파일 시스템으로 만들건데 괜찮냐? 하고 물어봄 (당연히 괜찮지...)

    • 마운트할 디렉토리 생성

      • mkdir /opt/ELDK
    • 파일 시스템 마운트

      • mount -o loop /mnt/sda5/ELDK /opt/ELDK

    • ELDK 설치

      • cd /mnt/sr0
      • ./install -d /opt/ELDK ppc_8xx
    • 장점

      • 윈도우즈 디렉토리 명칭을 사용하지 않고 /opt/ELDK 를 사용할 수 있다.
      • 파일들의 attribute (속성)이 보존된다.
      • /opt/ELDK 하부의 ppc_8xx를 nfs로 export 할 수 있다.

    • 부팅시 자동으로 /opt/ELDK가 마운트 되도록 하길 원한다면

      • /etc/fstab에 다음 두 줄을 추가하면 된다.
      • /dev/sda5 /mnt/sda5 auto rw 1 1
        /mnt/sda5/ELDK /opt/ELDK auto rw,loop 2 2


MPC850보드의 시동 환경 조성하기


  • nfs 서버가 설치되었다면, MPC 850 보드의 시동 환경을 조성하기 위하여 ELDK의 파일들을 복사한다.
  • cd {ELDK설치 디렉토리}/ppc_8xx/images
  • gunzip ramdisk_image.gz
  • mount -o loop ramdisk_image /mnt/data
  • cp -a /mnt/data/* /initrd/mnt/dev_save/nfs {exports에서 설정한 nfs 디렉토리}


Embedded Linux를 사용해보자

ELDK 다운로드

  • http://www.denx.de/wiki/DULG/ELDK

    DENX는 Embedded Linux와 Realtime Linux에서 소프트웨어 공학 서비스를 제공하며, ELDK를 배포하는 곳

  • 3.5.2 Downloading the ELK 를 찾아가서

    • 수정 (2009/08/07)
    • ppc-2008-04-01.iso를 다운로드 받은 후 (2G이기 때문에 다운 받는데 시간이 많이 걸림)
    • http://phoenix.hnu.kr/ysyun/cp/ppc-2008-04-01.iso 에서 다운로드 받기 바람.
    • dvd-rom으로 구운다. (iso 파일이기 때문에 쉽게 구울 수 있죠?^^)
    • ppc-2008-04-01 버전은 리눅스 커널 2.6.x에서 개발된 것이기 때문에, 커널 동작시에 panic이 발생함


CDROM 마운트하기

  • ppc-2008-04-01.iso ppc-2005-03-07.iso를 다운로드 했는데, CD-ROM으로 굽기는 그렇고, 그냥 설치하면 안 될까?
  • $ mkdir -p /mnt/iso
  • $ mount -o loop -t iso9660 -r [다운로드 받은 iso 이미지] /mnt/iso 실행하면
  • /mnt/iso 디렉토리에 CD-ROM 내용이 보인당..


ELDK 설치하기

  • CD-ROM을 삽입하면, 거의 대부분 CD-ROM을 자동 마운트 한다.
  • 안되면 손으로 해야쥥..
  • 이때 명령어는 바탕화면의 Console을 실행하여 입력한다.
  • $ mount -t iso9660 /dev/cdrom {또는 /dev/sr0 } /mnt/cdrom
  • 이때 /mnt/cdrom이 없다고 나오면 $mkdir -p /mnt/cdrom 해주는 센스
  • cd /mnt/cdrom 또는 마운트 된 CD-ROM의 디렉토리
  • ./install -d /usr/local/ELDK ppc_8xx 를 실행하면, /usr/local/ELDK에 관련 파일들을 설치한다.

    • Puppy Linux의 경우 /usr/local/ 디렉토리는 ram disk이기 때문에 용량 부족으로 설치가 되지 않는다.
    • 컴퓨터의 C나 D 드라이브를 마운트 한 후, Windows XP 시스템의 드라이브에 설치를 한다.


  • 다음은 설치 화면..

  • eldk-install.png


ELDK 설치 확인하기

  • $ export PATH=/usr/local/ELDK/bin:/usr/local/ELDK/usr/bin:$PATH
  • 실행 한 후,
  • $ ppc_8xx-gcc 실행하면
  • ppc_8xx-gcc: no input files
  • 라고 메시지를 표시하면 성공..

커널 컴파일하기 (현재 MPC850 보드에 대한 patch나 수정 사항을 구할 수 없어 PASS!!!)

  • 자신의 home directory에서
  • $ mkdir -p ~/build/kernel 을 실행한다.
  • 그런 다음,
  • cd /usr/local/ELDK/ppc_8xx/usr/src/linux 를 한 다음
  • make O=~/build/kernel menuconfig
  • 를 실행하자..

  • kernel-compile.png

  • 위와 같은 화면이 보이면 커널을 수정할 준비가 다 되었다..
  • 만약 위 단계에서 curses.h를 찾을 수 없다거나 KEYDOWN 등이 설정되지 않았다면 ncurses-devel이 설치되지 않은 까닭..
  • 현재 자기가 사용하는 리눅스에 ncurses-devel을 설치하도록 한다.

linux-2.4.2를 컴파일한 후 LETOK-850에 이식하기

  • linux kernel 2.4.2 를 다운로드 한다. (다운로드: linux-2.4.2.tar.gz)
  • tar xvfz linux-2.4.2.tar.gz 를 실행한다.
  • export PATH=/opt/ELDK/usr/bin:/opt/ELDK/bin:PATH

    가 제대로 설정되었는지 확인한다. (echo $PATH 해서 /opt/ELDK/usr/bin이 path에 포함되었는지 확인)

  • make menuconfig 실행
  • make dep 실행
  • make vmlinux.ppcboot 실행
  • 컴파일된 vlinux.ppcboot를 /tftpboot 에 복사 (tftpboot 설정 참조)

nfs 서버 설치

nfs 서버 프로그램 설치


<두번째 방법>

  • http://www.murga-linux.com/puppy/viewtopic.php?t=45090 페이지의 중간에서
  • nfsd-k2.6.21.7-i486.pet과 nfs_common.tar.gz 를 다운로드함
  • 바탕화면의 file을 클릭하여, Downloads 폴더의 저장된 nfsd-k2.6.21.7-i486.pet 을 인스톨함
  • 바탕화면의 Console을 클릭하여 창을 열고, nfs_common.tar.gz를 풀어 설치함
  • >> cd /
  • >> tar xvfz /root/Downloads/nfs_common.tar.gz

  • 두개의 파일이 모두 설치되었으면,
  • 재부팅 (가장 간단한 방법)


<세번째 방법>

  • nfs-utils-1.2.0.tgz 를 다운로드 함

    • Console에서 저장되어 있는 디렉터리로 이동
    • tar xvfz nfs-utils-1.2.0.tgz
    • cd nfs-utils-1.2.0-i486
    • ./install

nfsd 실행하기


  • nfsd-2.2.pet을 설치한 경우

    • cd /etc/rc.d/init.d
    • ./portmap start
    • ./nfs-user-server start

  • nfsd-k2.6.21.7-i486.pet을 설치한 경우

    • cd /etc/rc.d
    • ./rc.portmap start
    • ./rc.nfsd start

  • nfs-utils-1.2.0 을 설치한 경우

    • /etc/rc.d/init.d/nfs start

  • nfs 동작 확인

    • rpcinfo -p 를 실행하여

    • rpcinfo.png

    • 와 같이 100003/2 과 100005/1 등이 설정되어 있으면 제대로 동작하는 것임.

    • MPC850 부팅 화면에서 (아래 3줄)에서 위의 두 포트를 확인함

    • mpc-3.png

    • 위 화면 마지막 줄과 같이
    • VFS: Mounted root (nfs filesystem). 메시지가 출력되면 성공

/etc/exports 수정하기

  • mkdir /initrd/mnt/dev_save/nfs
  • 다음 내용을 /etc/exports 에 추가

    • /initrd/mnt/dev_save/nfs *(rw,no_subtree_check,no_root_squash,no_all_squash)
    • /etc/rc.d/init.d/nfs-user-server restart 또는 /etc/rc.d/init.d/nfs restart 실행

  • nfs-utils-1.2.0을 설치한 경우 다음 명령에 의하여 확인 가능
  • $ exportfs -a { 메시지가 출력되지 않아야 정상 }
  • $ showmount -e { 다음과 같은 메시지가 보여야 함}
    Export list for puppypc:

/initrd/mnt/dev_save/nfs *

또는 Rebooting Computer

hosts.allow 수정하기

  • 만약 모든 설정이 제대로 되었는데도 동작이 안된다면
  • /etc/hosts.allow

portmap rpc.mountd rpc.nfsd rpc.statd statd nfsd mountd : ALL

을 추가하자.

MPC850보드의 시동 환경 조성하기


  • nfs 서버가 설치되었다면, MPC 850 보드의 시동 환경을 조성하기 위하여 ELDK의 파일들을 복사한다. ELDK 설치 참조

  • cd {ELDK설치 디렉토리}/ppc_8xx/images

  • gunzip ramdisk_image.gz

  • mount -o loop ramdisk_image /mnt/data

  • cp -a /mnt/data/* /initrd/mnt/dev_save/nfs {exports에서 설정한 nfs 디렉토리}

minicom 설치하기


  • Puppy Linux에서는 cutecom을 지원하고 있지만, upup (Ubuntu based Puppy Linux)에서는 Ubuntu의 package를 설치할 수 있다.
  • 설치하는 방법은 다른 package를 설치하는 것과 동일하다.
  • 먼저 바탕화면의 install을 클릭 한 후, 제일 마지막 버튼인 Puppy Package Manager을 실행한다.
  • Puppy Package Manager에서 좌측 하단의 Text Field에 minicom을 입력하고, 찾기 버튼을 실행한다.

  • 검색된 내용 중에서
  • minicom_2.3 friendly menu driven serial communication program을 클릭한다.
  • Puppy Pakcage Manager: preinstall 다이얼로그가 뜨면 하단의 "install minicom_2.3"을 실행하면 설치된다.
  • cutecom과는 달리 console 기반의 프로그램이기 때문에, 바탕화면의 console을 실행한 후
  • 프롬프트에서 "minicom"을 입력한 후 실행하면 다음의 화면이 보인다.

m1.png

여기에서 Control-A를 누른 후, 'Z'를 누르면 Command 화면이 보인다.

m2.png

대문자 O 버튼을 눌러 mincom의 환경을 설정한다.

m3.png

설정화면에서 serial port setup을 선택한다.

m4.png

serial port 설정화면서 변경하고자 하는 환경을 선택 (예; 포트를 변경하고자 할 경우 A를 누른다.)

COM1의 경우 /dev/ttyS0이고 COM2의 경우 /dev/ttyS1 이 된다.


m5.png



다음으로 E를 눌러 bps/par/bits 등을 변경한다.


m6.png

만약 원하는 bps가 화면에 없으면 A나 B버튼을 누르면 원하는 bps를 선택할 수 있다.


m8.png


원하는 환경을 설정하면 Enter를 눌러 상위 메뉴로 이동한다.

Hardware Flow Control과 Software Flow Control을 모두 "No"로 설정한다.

종료하기 전에 반드시 "Save setup as dfl"을 선택하여 저장한 후 메뉴를 종료하면 된다.

m9.png


minicom이 제대로 설정되었는지를 확인하기 위하여 "Control-A Q"를 눌러 종료한다.

다시 minicom을 실행한 후 "Control-A"를 눌러 설정한 환경이 맞는지 확인한다.

m10.png


cutecom 설치

Serial Communication Program 설치


  • Puppy에서는 cutecom을 지원 {또는 비슷한 방법으로 minicom을 검색하여 minicom을 설치하여도 된다}
  • 바탕화면의 install을 실행 시키고, Package Manager를 실행 한후, cutecom을 Find하여 검색된 결과에서 클릭
  • Warning으로 dependency에서 qt가 설치되어 있지 않다고 나온다면,


    • cute-1.png

  • Examine dependenceis를 누르고

    • Download-and-install을 실행

    • cute-2.png


  • 가져올 ftp site를 선택하고, OK를 누르면 설치 완료


cutecom을 이용하여 LETOK 850 연결


  • cutecom을 실행시킨 후,
  • baud rate: 57600
  • data bit: 8bits
  • parity : none
  • stop bits: 1bit

를 선택하고, Open Device버튼을 누른다.

cutecom.png