2013년 4월 9일 화요일
오랜만에 다시 찾은 puppy와 letok850 이야기..
<사실 중요한 것은 다 백업 받았다고 생각했었는데..>
오늘 와서 확인해보니 그림이 모두 springnote로 연결이 되었었네요..
모두가 다 나의 불찰입니다. 이제라도 다시 정리하는 과정이 필요하겠네요.. ㅠㅠ
2010년 11월 10일 수요일
puppy를 usb로 부팅하는 경우, 사용자 저장 파일의 크기로 인하여 사용할 수 있는 메모리가 제한받는 경우
puppy를 시작하면서 usb에 있는 저장 파일을 읽어 메모리에 로드하고,
puppy를 종료하면서 usb에 사용환경을 저장한다. 그런데, 저장파일의 크기가 작거나
설치한 파일들이 많은 경우, 메모리가 부족하다는 메시지가 바탕화면에 표시된다.

또는 화면 하단의 인터넷 옆의 메모리 상태가 붉은 색으로 표시되면서 메모리 부족을 알린다.

이 경우, Menu>Utility>Resize personal storage file 을 실행시키면
저장파일의 크기를 늘릴 수 있다.

명령을 실행시킨 후, 반드시 컴퓨터를 Reboot해야
부팅과정에서 저장파일의 크기를 늘린다.
다음은 부팅과정에서 개인 저장 파일의 크기를 변경하는 과정이다.
puppy 5.x에서부터 개인 저장 파일을 ext2 뿐만 아니라 ext3도 지원하는데, 다음 화면에서 보이는
것은 ext3로 저장된 개인 저장 파일을 256M 증가시키는 과정이다.
puppy에서 임베디드 리눅스 target 보드를 연결하고자 하는데, eth0가 잡히지 않을때..
전송하고자 할 때에는, 호스트의 puppy에는 네트워크 드라이버가 두개 잡혀야 한다.
일반적으로 wireless와 wired 두개의 네트워크를 잡는데, 어떤 영문인지 하나만 잡히는 경우가
있다.

이런 경우, Load module을 선택한 후, 현재 로드되지 않은 네트워크 모듈을 선택하면 시스템에 설치된
네트워크를 설정할 수 있다.
참고로, Marvell Yukon 2 드라이버는 sky2로 잡히지 않고, skge로 잡힌다. (특정 보드만 그럴 수 있다.)
따라서 Marvell Yukon 드라이버를 사용하는 경우, sky2와 skge 모두를 선택해보길 바란다.
2010년 2월 17일 수요일
참고자료
- LInux for PowerPC Embedded Systems HOWTO
- http://penguinppc.org/embedded/howto/
- 포항공대 정보통신연구소에서 작성한 MPC-850 Linux 커널 이식 보고서
- http://home.postech.ac.kr/~onlyyou/data/kernel-mpc850-porting.pdf
- 독일의 denx에서 작성한 CD-Readme 파일
- ftp://ftp.denx.de/pub/LinuxPPC/usr/src/CD-README
- denx 회사의 CDK tar 파일
- ftp://ftp.denx.de/pub/LinuxPPC/usr/src/CDK.tar.gz
LETOK 850 보드 설정
LETOK850 보드 구성도 및 Toolkit
- LETOK850 보드 구성도
- LETOK850 교육용 툴킷
LETOK850보드 실습환경 설정
- 부팅 후 2초안에 아무런 키나 눌러 자동 부팅 종료
초기 화면
printenv 확인
환경 설정
보드의 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를 한번 클릭하면 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이 발생함
- http://phoenix.hnu.kr/ysyun/cp/ppc-2005-03-07.iso 를 다운로드 함 (ELDK-3.1.1 버전)
- cdrom으로 구운다.
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 설치 확인하기
- $ 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
- 를 실행하자..
- 위와 같은 화면이 보이면 커널을 수정할 준비가 다 되었다..
- 만약 위 단계에서 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 설정 참조)