LDS1000 setting manual

1. LDS1000 소프트웨어 cd 설치

CD를 넣고, 마운트 시킨다.
#mount /dev/cdrom /mnt/cdrom (x윈도우 상태에서는 씨디를 넣는순간 자동 마운트됨)
#cd /mnt/cdrom
#./install /home/LDS (주: /home/LDS 라는 디렉토리뒤에 설치가됨)
#cd /home
#umount /dev/cdrom
#eject
(현재 위치가 /mnt/cdrom 이면 umount가 안되니 다른디렉토리로 이동한후 umount를함)

2. 크로스 컴파일러 설치

크로스 컴파일러 씨디를 넣고 마운트 시킴.
#mount /dev/cdrom /mnt/cdrom
#cd /mnt/cdrom/install/cllf
#rpm -Uvh --nodeps *noarch.rpm *i386.rpm (noarch.rpm 과 i386.rpm 모두 설치됨)
#umount /dev/cdrom
#eject

3. 크로스 컴파일러 환경설정
#vi /root/.bashrc
export PATH=/opt/hardhat/devkit/ppc/8xx/bin:/opt/hardhat/host/bin:$PATH
4. tftp 데몬 설정

#vi /etc/xinetd.d/tftp


#mkdir /tftpboot
#/etc/rc.d/init.d/xinetd restart (tftp 데몬 재시작)

tftp 테스트 - 임의의 파일 하나를 만든다
#tftp 127.0.0.1
tftp>get test.txt (여기서 파일이 성공적으로 전송했다고 나오면 성공)
tftp>quit
5. minicom 설정 (리눅스상에서 제공되는 시리얼포트를 이용한 통신프로그램)

#minicom -s
Serial port setup를 선택
a를 누른후 /dev/ttys1을 /dev/ttys0 으로 바꿈 (serial port 0번을 쓰기때문에)
f를 눌러 hardware flow control을 no로 바꿈
e를 누른후 다시 e를 누르고 enter를 눌러 9600을 선택


수정 후 Save setup as dfl 을 눌러서 저장을 시켜야 다음번에 minicom 사용시
다시 설정할 필요가 없어진다
minicom 명령어를 모를 경우 Ctrl a+z 연속적으로 누르면 도움말이 나온다

6. Ramdisk 부팅

제작된 sample 이미지를 /tftpboot 에 복사
#cd /home/DS/LDS1000/misc
#cp kernel.sample /tftboot/kernel.sample
#cp rmadisk.sample /tftboot/ramdisk.sample
#minicom

변수설정 - host_ip와 target_ip를 설정한 후 저장한다.
[LDS1000]setenv host_ip [host에서의 ip]
[LDS1000]setenv target_ip [target_ip]
[LDS1000]saveenv (환경변수 수정한거 저장)
[LDS1000]printenv (환경변수보기)

이미지를 적재한다
[LDS1000]tftp 300000 kernel.sample (300000 커널이 위치한 주소)
[LDS1000]tftp 400000 ramdisk.sample (400000 램디스크가 위치한 주소)
부팅
[LDS1000]boot 300000 400000

7. 프로그램 코딩 및 준비

LED 파일이 있는 곳으로 이동하여 led.c 를 고친 후 컴파일
#cd /home/LDS/LDS1000/application/device/LED
#make

오류없이 컴파일이 되면 led 라는 파일이 생긴고 이 파일을 특정디렉토리에 복사한다
#cp led /home/LDS/LDS1000/ramdisk/image/bin
램 디스크크기가 8192KB이고 이름이 ramdisk.led 인 램 디스크를 제작한다.
#./ramdisk.make 8192 ramdisk.led

램 디스크의 사용이 가능하도록 커널설정명령으로 리눅스 커널을 설정
#cd /home/LDS/LDS1000/kernel-2.4.4
#make menuconfig

의존성 검사를 하고 오브젝트 파일을 지운 후 컴파일하여 커널 이미지를 생성
#make dep
#make clean
#vi Makefile 들어가서 주석부분 고침
(안고치면 컴파일하다 에러가 나지만 실습에는 오류가 없었다)

#make kernel.boot
tftp 다운로드를 위해 /tftpboot 디렉토리에 kernel.led를 복사
#cp kernel.boot /tftpboot/kernel.led
#cd /home/LDS/LDS1000/ramdisk
#cp ramdisk.led /tftpboot
8. 프로그램 실행

minicom 실행
LDS1000에 커널 이미지와 램 디스크 이미지를 다운로드한 후 커널부팅
[LDS1000]tftp 300000 kernel.led
[LDS1000]tftp 400000 ramdisk.led
[LDS1000]boot 300000 400000


리눅스 쉘 프롬프트가 나오면 bin 디렉토리에 있는 led 실행 파일을 실행시킨다.
sh-2.03#cd bin
sh-2.03#./led

이후 LDS1000의 LED 변화 관찰하고 잘못 작성되었다면 원하는 결과가 나올때까지
다시 소스를 수정하고 컴파일 한 후 다시 램디스크 부팅 후 실행해본다.
원하는 값이 나오면 실습 종료

9. 문제점

가장 문제점은 역시 minicom 실행 후 tftp 가 실행이 안됐다는 점이다
host ip와 target ip 를 잘 설정했음에도 불구하고 내 컴퓨터에서 실행되지가 않았다
신기한 점은 용량이 작은 파일은 전송이 성공했는데 용량이 큰 파일은 전송이 안됐다
혹시나 시리얼포트 전송용량한계에 있나 했지만 다른컴은 되는데 내컴은 안된점이 신기했다

1) 케이블문제
케이블문제인가 해서 시리얼케이블과 랜케이블을 바꿔봤지만 상관이 없었다

2) 장비문제
같은 컴퓨터상에서 성공했던 장비와 실패했던 장비로 실행해봤지만 성공이었다
결국 장비자체상의 문제는 아니었다.

3) 패키지문제
리눅스를 전체패키지를 선택해서 다시 설치해봤다
CDK설치시 --nodeps 때문에 의존성을 무시해서 패키지간의 충돌이 있을까 해서였다
다시 깔았는데 실습실컴퓨터는 안됐지만 졸작실 컴퓨터는 성공이었다

내가 생각한 해결방안
정확히 무엇의 오류인지는 모르겠지만 일단 전체패키지를 선택해서 패키지충돌을 없애고 약간의 컴퓨터상의 하드웨어 사양을 보는 것 같기도 하다.
Posted by 용학도리
,