제 8강 파일시스템/이미지 다운로드

Download Report

Transcript 제 8강 파일시스템/이미지 다운로드

제 8강 파일시스템/이미지 다운로드
목 차

File System

Ip설정

Tftp

이미지 다운로드
파일 시스템

타겟보드의 파일 시스템은 사양에 맞게 여러가지를 선택적
으로 사용할 수 있다.

종류


Ramdisk

Jffs

Jffs2

Cramfs

Ramfs

Yaffs
각각의 장단점이 있으니 개발자의 사양에 맞게 사용을 하면
된다.
파일 시스템

Root filesystem(“/”)에는 커널이 동작하기 위한 공간과
library, util등이 포함된다.

Root filesystem으로 JFFS2파일시스템을 사용하면, x image등
의 크기가 큰파일들을 플래시메모리에 저장하여 SDRAM의 여분
을 늘리고, mount 할때는 jffs2를 사용한다.

Root filesystem크기가 작고 시스템의 빠른 접근이 필요할 때
는 Ramdisk 파일시스템을 사용한다. 파일시스템은 개발할 시스
템에 알맞게 구현하여야 할 것이다.
파일 시스템

Ramdisk

Ramdisk 개요
물리적 장치를 지칭하는 것이 아니라, 메모리의 일부를 디스크로
인식시킨 것이다. ramdisk를 root fileystem으로 사용하는 것이
Embedded Linux System에서 가장 일반적인 방법이다. 이는
ramdisk는 ram에서 동작하기 때문에, 읽고/쓰기가 아주 빠르다는
데 있다. gzip 알고리즘으로 압축을 하기 때문에 용량을 줄일 수
있다. 단점은 메모리일부를 램디스크로 할당하기 때문에 그 만큼
의 메모리를 못 쓰게 된다. 휘발성이 있기 때문에 시스템이
reboot되거나 꺼지면 그 내용을 잃어버린다.
파일 시스템

Kernel configuration 설정시

X-Hyper320-TKU 리눅스 커널 환경구성중에 파일시스템에서 기타파일시
스템(Miscellaneous filesystems 선택)

File systems --->↲

Miscellaneous filesystems --->↲
파일 시스템


Boot options 항목의 Default kernel command string을
“root=/dev/mtdblock2 rw rootfstype=yaffs2 init=/sbin/init
console=ttyS0,38400 rw mem=128M”으로 하였다.
루트파일시스템(“/”)은 /dev/mtdblock2의 장치파일이고 “console=
ttyS0,38400”는 사용할 시리얼 장치와 속도를 알려준다.
파일 시스템

YAFFS2를 사용하기 위해서 MTD/Nand Flash Driver를 활성화
① 최상위 Device Drivers 에서 Memory Technology Devices (MTD) -->↲
 Memory Technology Device (MTD) support
-MTD디바이스 드라이버를 사용하는 옵션이다.
 MTD partitioning support
-이것을 선택해야 파티션을 만들 수 있다.
 Direct char device access to MTD devices
-mtd장치를 캐릭터 형 장치 파일로 접근할 수 있다.

 Caching block device access to MTD device
-mtd장치를 블록형 장치 파일로 접근할 수 있다.
파일 시스템

YAFFS2를 사용하기 위해서 MTD/Nand Flash Driver를 활성화
① 최상위 Device Drivers 에서 Memory Technology Devices (MTD) -->↲
파일 시스템
<10>
파일 시스템
② Memory Technology Devices (MTD) -->↲

NAND Flash Device Drivers --->↲
파일 시스템
② Memory Technology Devices (MTD) -->↲

NAND Flash Device Drivers --->↲
 NAND Flash device on X-HYPER320 TKU board 를 선택하였다.
플래시 메모리의 공간을 사용하는 타깃보드의 설정으로 사용한다.
파일 시스템
실습을 위한 기본 경로는 /320/Kernel/linux이며
drivers는 그 아래에 있다

위의 선택으로 drivers/mtd/nand/xhyper320_nand.c 파일이 컴파일된다.

drivers/mtd/nand/xhyper320_nand.c 파일이다.
 위와 같이 타깃보드의 nand 플래시 메모리를 얼마 만큼의 공간으로 분할할지
를 정한다.
파일 시스템

YAFFS2 이미지 만들기
•
/WENDERS/Filesystem 디렉토리 아래에 있음
Filesystem 디렉토리에 있는 mkyaffs2 유틸을 이용한다.
파일 시스템

YAFFS2 이미지 만들기

tar zxvf rootfs_gtk.tgz 명령으로 파일시스템 디렉토리 압축을 해제한다.
# ./mkyaffs2image [디렉토리명] [이미지파일 이름]
생성할려고 했던 디렉토리안의 내용들이 YAFFS2로 생성된다.
Ip설정

서버IP가 192.168.1.100 이고 타겟보드에 192.168.1.50을 할당

타겟보드의 eth1은 제조사에 의해서 192.168.1.50으로 설정되어 있음

ifconfig 명령으로 확인
ifconfig eth0 192.168.1.100
network은 restart 하지 않음

네트워크 연결 확인
 client 측에서 ping 192.168.1.100으로 확인
Tftp

TFTP (Trivial File Transfer Protocol)는 이더넷을 통해 파일을 전
송하는 프로그램인 FTP(File Transfer Protocol)에 있는 대부분의
기능을 제외함으로써 작고 구현 하기 쉽게 설계된 규약인 파일 전
송 프로토콜이다.

하위 프로토콜로 ip, udp 프로토콜을 사용한다.

개발보드에서는 Bootloader에서 Kernel과 파일시스템 Image를
Host에서 Target으로 이더넷을 통하여 고속으로 다운로드하기
위해 사용한다.
Tftp rmp 설치

tftp rpm은 클라이언트와 서버가 분리되어 있는데, tftp-server로 시작하는 rpm을
설치하여야 한다

다음의 명령어로 tftp가 설치되었는지는 확인할 수 있다
rpm -qa | grep tftp↲
Tftp rmp 설치

tftp rpm에 설치되지 않았다면 tftp서버 rpm을 설치한다.

rpm -i tftp-server-0.17-9.i386.rpm 명령으로 설치를 한 후

rpm qa | grep tftp명령으로 설치 된 것을 확인 한다.
# cd /320/RPM ↲
# ls
# rpm -ivh tftp-server-0.17-9.i386.rpm
Tftp rmp 설치

tftp rpm이 설치되면 /etc/xinetd.d/tftp 파일이 생성된다.

bootp와 같이 tftp 프로그램 파일은 xinetd 프로그램에 의해 실행된다.

Xinetd 프로그램에 의해 tftp가 실행될 수 있도록 /etc/xinetd.d/tftp파일을 다음
과 같이 수정하여야 한다.

(만약 /etc/xinetd.d/tftp 파일이 없다면 새로 생성하여 아래의 설정과 같이 작성
해야 한다.
# vi /etc/xinetd.d/tftp↲
Tftp rmp 설치

server_args를 /tftpboot로 설정하면 부트로더에서 파일을 받을 때는 호스트 PC
의 /tftpboot 안에 있는 파일만 전송이 가능하다.

/tftpboot은 tftp server daemon의 root 디렉토리로 tftp 요청시 필요한 파일을
이곳을 기준으로 찾는다. 이 디렉토리와 서브 디렉토리에서만 찾는다. tftp로 다
운로드 하고자 하는 커널과 파일시스템 이미지는 이곳에 있어야 한다.
Tftp rmp 설치

* 주의 : tftp-server 의 설치

만일 tftp-server가 HOST PC에 설치 되어 있지 않다면 BSP install시 rpm설치를
한다.

위의 /etc/xinetd.d/tftp파일에서 정한 디렉토리에(/tftpboot) 아래와 같이
zImage와 파일시스템을 복사한다.
#
#
#
#
#
cd /WENDERS/PRE_BUILD↲
ls↲
cp zImage_yaff gtk.img /tftpboot↲
cd /tftpboot↲
ls↲
Tftp 이미지 전송

아래 명령으로 bootpd, tftpd항목이 나온다면 정상동작중인 것을 확인할 수 있다.
#
netstat –au↲
Tftp 이미지 전송

호스트PC에서 아래 설정을 해야 한다.

1. HOST PC의 방화벽 설정을 확인하고 “방화벽을 사용하지 않음”으로 설정한다.

2. 호스트PC /etc/selinux/config 파일에서 아래와 같이 disabled 로 설정한다.
SELINUX=disabled

부트로더의 tftp 명령을 통해 zImage와 filesystem을 다운로드 할 수 있다.

타깃보드에 tftp명령으로 다운로드할 zImage와 root는 물론 Host PC의 /tftpboot
디렉토리에 존재하여야 한다
Tftp 이미지 전송

호스트로부터 커널이미지(zImage)를 SDRAM 에 다운받는다.
blob> tftp zImage_yaff
Tftp 이미지 전송

타깃보드의 SDRAM에 다운받은 커널이미지를 아래의 명령어로 플레시 메모리영
역에 라이트한다.

(SDRAM은 휘발성 메모리로 전원이 오프되면 모든 데이터가 사라진다. 그러므로
SDRAM의 커널 이미지 영역을 플래시 메모리의 커널 이미지 영역에 저장하여 타
깃보드가 전원이 오프 되어도 커널 이미지를 저장할 수 있게 한다.)
blob> nandwrite -z 0x80800000 0x00040000 0x00200000
Tftp 이미지 전송

gtk.img라는 이름의 파일 시스템 이미지를 tftp명령으로 타깃보드에 다
운로드 한다.
blob> tftp gtk.img
Tftp 이미지 전송

타깃보드의 SDRAM에 다운받은 파일 시스템 이미지를 아래의 명령어로 플래시
메모리 영역에 라이트한다
blob> nandwrite -y 0x80800000 0x00240000 0