제 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