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


Puppy Linux 5.x 설치하기

Puppy Linux 란?


  • 작고, 빠른 리눅스
  • 시스템에 깔지 않고 1G나 2G USB에 직접 설치하여 실습 및 리눅스 공부를 할 수 있는 유용한 패키지..
  • 현재 5.7.1까지 Release 되어 있슴.
  • 관련 사이트: http://www.puppylinux.org
  • 시스템에 남아 있는 사진들은 복구하였으나, 퍼피에서 직접 올린 사진은 복구하지 못하여 그냥 링크 삭제하였습니다.
Puppy Linux 설치

  • puppy linux 토론 forum을 들어가서 관련 정보를 수집한다.
  • Advanced Topics>Puppy Projects>Next Puppy Development>5.x 로 이동
  • 현재 next puppy는 dpup와 upup로 구분되어 개발 중에 있음
    • dpup : debian based puppy project
    • upup : ubuntu based puppy project
    • debian 이나 ubuntu에 친숙한 사람들은 쉽게 puppy에 적응할 수 있다.

  • upup 476 original을 다운로드한다.
  • CD-ROM 부팅 초기 화면



  • upup-476.sfs 기본 파일을 ram으로 복사 중



  • 복사 완료 후 키보드 설정



    • qwerty 키보드 선택 (키보드의 좌측 상단키 배열이 qwerty 순으로 나열되어 있기 때문에 붙힌 이름)


  • 나라 설정 (country setting)




    • 한국을 나타내는 ko_KR 을 찾아서 선택

  • 시간대 설정 (우리나라는 일본과 같이 GMT+9 (표준시계보다 9시간 빠르다)를 사용한다.



  • 다음으로 X 화면을 구동하기 위한 그래픽 화면 설정

    • Xorg는 일반적인 그래픽 화면으로 프로그램에서 처리 (Xvesa보다 여러가지 다양하게 설정가능) : 일반적인 권장 사항
    • Xvesa는 바이오스에서 처리 (Xorg보다는 빠르다.)



  • 화면 해상도 설정
    • 모니터 상태에 따라 1280x1024x24 (마지막 24는 pixel당 24bit 할당한다는 의미 - true color)


  • 이제 다음과 같은 화면이 뜨면 설치 성공...


  • 네트워크 설정

    • 바탕화면의 connect 실행
    • Connection Wizard에서 network 또는 wireless LAN 설정 선택
    • 네트워크 디바이스 선택 (일반적으로 eth0)
    • 네트워크 주소 선택

      • Auto DHCP는 자동적으로 IP를 할당 받음
      • Static IP는 고정된 IP를 지정
      • 방법을 잘 모르겠으면, Windows 환경으로 부팅한 다음 네트워크 설정에서 DHCP인지 Static IP인지 확인함

    • Static IP인 경우 IP 설정

      • IP address : 현재 사용하고 있는 컴퓨터의 주소

      • Net Mask: 사용하는 네트워크의 C 클래스 주소 범위를 지정 (255.255.255.0은 203.247.41이 네트워크이고, 뒤의 번호가 host ip를 나타냄)
      • Gateway: 사용하는 네트워크를 다른 네트워크와 연결 시켜주는 Network Router 주소, 일반적으로 네트워크 주소가 aaa.bbb.ccc.인 경우
        aaa.bbb.ccc.1 인 경우가 대부분
      • DNS는 Domain Name Service의 약자로서 name을 주소로 변환시켜주는 서비스
  • 부팅된 puppy에서 install 작업 진행
    • 화면 중간의 "Click button to run the Universal Installer" 옆의번 번개 버튼을 누름
    • 다음 화면에서 "USB Flash Drive" 선택

    • 선택 후, 설치하고자 하는 USB Flash drive를 선택

      • 일반적으로 USB의 파일 시스템은 vfat(fat32)로 설정되어 있기 때문에, 'Filesystem in partition'의 버튼을 눌러 ext2 파티션으로 재설정한다.
      • 이때 모든 데이터가 사라지기 때문에 반드시 빈 USB 또는 백업을 받아야 한다.
    • 파티션 버튼을 누르면 다음과 같은 화면이 보인다.

        • 하단의 /dev/sd?? 처럼 되어 있는 파티션 번호를 누른 후에 , Delete 버튼을 누른다.
        • 다음, 다시 New 버튼을 누른 후에 ext2를 선택한다.
        • 마지막으로 Apply 버튼을 누르면 지금까지의 작업이 진행된다.

      • 마지막으로 메뉴의 Partition>Manage Flags를 실행하여 boot 에 check 표시가 되었는지 확인한다.
        • 이부분에 체크되어 있지 않으면 부팅이 되지 않는다.

    • 파티션의 변경이 완료되면, Install Puppy to sdd1: 과 같이 표시되는 버튼을 눌러 설치한다.
  • 컴파일 환경 구축하기

    • usb로 부팅한 후, /mnt/home 디렉토리에 upup-476.iso를 다운로드 했던 URL에서 upup_devx_476.sfs 를 다운로드 받는다.

    • 다음에 부팅할 때, upup_devx_476.sfx를 항상 마운트하도록 추가한다. (부팅시 물어봄)

  • 메뉴의 Shutdown->Reboot Computer 실행
  • 사용자 정의 파일 저장할 것인지 물어봄
    • 당연히 해야 함
    • 다시 부팅할 때 이미 설정된 내용을 읽어 드림
    • 일반적으로 512M정도를 선택


  • USB 파티션을 선택
    • ntfs 파티션이나 vfat 파티션에도 저장 가능
    • ntfs 파티션의 경우 warning
    • HDD에 저장할 경우, 이동성이 제한되기 때문에 USB를 권장함


  • 지시 사항대로 파일명을 변경하거나 용량을 선택하면 현재 설정된 내용을 사용자 정의 영역에 저장함

  • 저장 형태를 물어봄
    • Normal인 경우에는 암호를 물어보지 않음


  • 저장할 사용자 영역의 크기



  • 마지막으로 저장 확인


Puppy Linux CJK 설치하기

  • CJK는 Chinese-Japan-Korean의 약자로서 2바이트 문화권을 의미
  • 관련된 모든 파일은 여기에 있다.
  • upup-476cjk2 subforum을 참조하여 순서대로 설치한다.
    • Install upup-476 (위의 Puppy Linux 설치 과정 참조)
    • replace initrd.gz to 'initrd-upup476utf8r2.gz'(rename to 'initrd.gz').
      • 기존의 initrd.gz를 보존하기 위하여 다음과 같이 실행한다.

      • 바탕화면의 Console을 눌러 실행

      • $ cd /mnt/home

      • $ mv initrd.gz initrd.orig.gz

      • $ cp initrd-upup476utf8r2.gz initrd.gz
    • 재부팅 {메뉴의 Shutdown에 Reboot Computer 명령이 있다.}
    • 위 화면의 관련 pet들을 설치한다. pet 들을 먼저 다운로드 받은 후, 바탕 화면의 file을 선택하여, 클릭하면 설치된다.

      * utf8_mount-upup476-2.pet
      * scim-1.4.7-0.476.0.1.pet
      * desktops_cjk-upup476-1.pet
      * lang_support_??-upup476-0.2.pet

      ... you can install all 3(zh,ja,ko) together if you like.
    seamoney는 웹브라우저이기 때문에 설치해야 할 걸요?

    • 메뉴의 Menu > Desktop > Chooselocale country localisation를 실행하여

    • locale을 'ko_KR'로 설정하고, encoding에 'UTF_8'을 설정한다.


  • Restart X
  • Once more, restart X
    • 한번 실행해서 잘 안된다. ㅋㅋ
  • Start up 'browse' or 'edit'

  • Press [Ctrl] + [Space], then SCIM shall be usable.

  • 이때 scim으로 한글을 입력할 경우, 항상 종성이 채워지는 문제가 발생함.
    • 예; 한겨례 -> 한결ㅖ

    • 바탕화면의 install 프로그램을 실행하여, Puppy Package Manager 실행

    • 화면 좌측 하단의 Find: 에 libhangul과 scim-hangul을 입력한 후 검색 버튼을 누르고, 선택하면 설치된다.

      • libhangul과 scim-hangul 을 설치
    • 트레이 화면의 scim 환경설정에서 추가한 한글 (회색 한 아이콘) 입력 IME 선택

    • IME와 관련된 설정은 한글 모드에서 마우스 오른쪽 버튼을 이용하여 SCIM 환경 설정을 이용하여 설정한다. (자세한 내용은 패스..)
이렇게 해서 퍼피 설치가 끝났습니다.
  • SeaMonkey를 사용하던 중, 한글 입력단계에서 자꾸만 커서가 SeaMonkey의 상태바로 이동하는 경우가 있습니다. 그럴 경우 Edit > Preferences에서
    Advanced>Keyboard Navigation에서 "Find As You Type" 기능을 해제하기 바랍니다.


  • 참고로 이 페이지는 퍼피에서 작성하였습니다.