제 5 장 host 환경 설정
DESCRIPTION
제 5 장 Host 환경 설정. Target System 을 개발하기 위해 Host System 에 환경을 구축하자. 목 차. 5.1 Minicom 설정 5.2 BOOTP 설정 5.3 TFTP 설정 5.4 NFS 설정. 5.1 Minicom 설정. 타겟보드 콘솔을 위한 시리얼 통신을 셋팅한다. 5.1 Minicom 설정. TARGET 은 출력을 위한 별도의 터미널을 가지고 있지 않음 일반적으로 serial port/LAN 을 통한 터미널 emulator 이용 - PowerPoint PPT PresentationTRANSCRIPT
제 5 장 Host 환경 설정
Target System 을 개발하기 위해 Host System 에 환경을 구축하자 .
2
5.1 Minicom 설정5.2 BOOTP 설정5.3 TFTP 설정5.4 NFS 설정
목 차
5.1 Minicom 설정
타겟보드 콘솔을 위한 시리얼 통신을 셋팅한다 .
4
TARGET 은 출력을 위한 별도의 터미널을 가지고 있지 않음 일반적으로 serial port/LAN 을 통한 터미널 emulator 이용
Linux 에서는 일반적으로 minicom 이용 Windows 에서는 Hyper-Terminal 등을 이용
5.1 Minicom 설정
Minicom 을 이용하여 serial 통신으로 hello 라는 파일 전송
5
설치 준비 Host 와 Target 을 minicom 으로 연결하기 위해
아래와 같은 환경 필요 Serial Cross Cable(9 pins) 1EA Linux 가 설치되어 있는 PC(Host) XHYPER270-TKU 실습보드 (Target)
Cross cable 의 한쪽은 Host 의 COM1 에 연결하고 다른 한쪽은 Target 의 COM1 에 연결한다 .
5.1 Minicom 설정
6
Minicom 실행하기
만들어진 hello object 파일을 target 에 download 하기 위해 minicom이라는 emulator( 가상터미널 ) 를 이용
Minicom 은 RS232C 통신을 이용
Minicom 을 실행하기 전 통신 포트 설정을 해야 함 .
5.1 Minicom 설정
7
Minicom 실행하기
Serial port setup 으로 커서를 옮긴 후 enter 를 입력
5.1 Minicom 설정
8
Minicom 실행하기 Linux 에서는 COM1 은 ttyS0, COM2 는 ttyS1 로 표시함 . A 를 눌려서 Serial 케이블이 연결된 포트를 설정 . Host 와 Target 의 Baud rate 는 115200, data bit 은 8, stop
bit 1, parity bit 은 1 로 설정 Hardware Flow Control 은 NO 로 설정
5.1 Minicom 설정
9
Minicom 실행하기 설정을 default 로 저장하고 나옴 .
5.1 Minicom 설정
10
Minicom 실행하기 타겟보드에 전원을 인가하거나 리셋을 시킨다 .
5.1 Minicom 설정
11
Minicom 실행하기 tool chain 설치에서 만들었던 hello 라는 object 파일을 host
에서 Target 으로 download 하려고 한다 . CTRL 과 A 를 동시에 누른 후 Z 키를 입력하면 아래와 같은 화면이 나옴 .
5.1 Minicom 설정
12
Minicom 실행하기 S 를 입력 후 Zmodem 을 선택하면 아래와 같은
화면이 나옴 .
5.1 Minicom 설정
13
Minicom 실행하기
Tool chain 설치 시에 만들었던 hello 파일을 선택한 뒤에 enter 를 치면 파일이 host 로부터 target 으로 download 수행
5.1 Minicom 설정
14
Minicom 실행하기
파일 전송이 성공하면 위와 같은 화면 나옴 .
5.1 Minicom 설정
15
Minicom 실행하기
ls 명령을 이용하여 hello 파일이 전송되었는지 확인 해보고 실행시켜보자 .
5.1 Minicom 설정
5.2 bootp 설정
프로그램 다운로드를 위해 타겟보드에 ip 를 할당한다 .
17
5.2 BOOTP 설정 Bootp 는 tcp/ip 상에서 자동 부팅을 위한 최초의 표준으로 ,
디스크 장치가 없는 클라이언트를 구동시키기 위한 프로토콜로 개발되었다 .
하위 프로토콜로 udp 와 ip 프로토콜을 사용한다 .
개발보드에서는 tftp 와 함께 , Bootloader 에서 Kernel 과 파일시스템 Image 를 Host PC 에서 Target 으로 다운로드하기 위해 사용한다 . Bootp 는 Target 보드가 tftp 를 통한 파일 전송을 위해서 Target 보드의 IP 와 Host 에 대한 정보를 Host PC 에서 가져오기 위해 사용한다 .
타겟보드에 커널이 올라가기 전에는 ip 셋팅이 되어 있지 않다 . 이 경우 이더넷을 통한 데이터 전송을 할 수 없기 때문에 사용되는 방법이 부트로더상에서 bootp를 통한 ip 설정과 tftp를 통한 데이터 전송을 할 수 있다 .
18
Bootp Bootp protocol
Bootp Request : Target board 가 host 에게 IP 를 요구함 IP 요청 packet 을 생성하여 호스트에 전송함 .
Bootp Reply : Host 는 Target 보드의 IP 주소를 전달한다 . IP 요청 packet 을 inetd 가 수신한다 . inetd 는 bootpd 에게 IP 요청 packet 을 넘긴다 . IP 응답 packet 을 bootpd 는 bootptab 을 참조하여 IP 응답 pa
cket 을 전달한다 .
TargetHost
Bootp reply
Bootp request
19
5.2 BOOTP 설정 5.2 BOOTP 설정 bootpd 가 설치었는지는 다음의 명령어로 확인할 수 있다 .
20
5.2 BOOTP 설정 bootp 설치 bootpd 가 설치되어 있지 않다면 bootp rpm 설치로 데몬을 설치한다 .
* CD 안에 rpms 디렉토리 bootp rpm 이 존재한다 .
21
5.2 BOOTP 설정 bootp rpm 이 설치가 되면 /usr/sbin/bootpd 파일이 생성된다 .
생성된 bootpd 파일은 xinetd 프로그램에 의해 실행된다 .
xinetd 프로그램에 의해 bootpd 가 실행될 수 있도록 /etc/xinetd.d/bootp파일을 만들어야 한다 .
22
5.2 BOOTP 설정 /etc/xinetd.d/bootp 파일을 아래와 같이 만든다 .
23
5.2 BOOTP 설정 bootptab 파일 설정
타겟보드의 bootp요청이 있을 때 Host PC에 설치 한 bootp서버 (bootpd) 는 /etc/bootptab 에 정의된 client 정보를 기반으로 bootp reply packet 을 만들어 응답한다 . 그래서 bootp 를 사용하기 위해서는 이 /etc/bootptab 에 client 의 MAC Address 와 할당할 IP 등의 정보가 입력되어 있어야 한다 .
24
5.2 BOOTP 설정 bootptab 파일은 bootpd(the Internet Bootstrap Protocol Ser
ver) 를 위한 환경설정 데이터베이스 파일이다 . host 의 매개변수로 , 대소문자를 구분하는 두 개의 문자로 된 tag symbols 를 사용한다 .
hostname:tg=value:tg=value:tg=value:
hostname 에는 bootp client(or a "dummy entry") 의 실제 이름이 들어가고 , tg 는 두 개의 문자로 구성된 tag symbol 이다 . 각각의 symbol 에 해당하는 값은 value 에 들어간다 . 더 많은 내용은 man bootptab 로 확인할 수 있다 .
25
5.2 BOOTP 설정 bootptab 생성
xhyper270tku 은 hostname. ht (Hardware Type) 는 10Mb Ethernet 을 사용하므로 1 (=ehternet). ha (Hardware Address) 는 Bootp Request 를 보낼
Target(Bootp Client) 의 Mac Address. ip 는 Target 에 할당할 IP Address. sm (subnet mask) 는 Host (Bootp Server) 와 동일하게 적어주면 된다 .
26
5.2 BOOTP 설정 Bootloader 에서 bootp 명령 실행하기
Host 에서 xinetd 를 재시작 . (/etc/rc.d/rc.sysinit/xinetd restart)
Target 에서는 bootp 명령 수행 .
5.3 TFTP 통신
28
TFTP? TCP 를 사용하여 신뢰성있는 file 전송을 제공하는 ftp 와 달리 UDP
를 사용하여 file 을 전송하는 protocol 이다 . Data 의 전송 중에 오류가 날 확률이 극히 적은 근거리에서 빠르게 f
ile 을 전송받고자 할 경우에 사용한다 . Embedded system 개발중 개발한 kernel image 나 ramdisk 를 boot
loader 를 통해 target board 로 전송하기 위해 많이 사용한다 .
Linux 용 TFTP 프로그램 www.rpmfind.net 에서 tftp 로 검색하면 해당 rpm 을 받을 수 있다 . 또는 제공된 하이버스 CD 안에 /rpms 에 있는 tftp rom 을
설치하면 하면 된다 .
5.3 TFTP 통신
29
설치 확인 TFTP rpm 을 설치하기 전에 host 에 이미 설치가 되어있나
확인한다 . 설치가 되어 있으면 설치과정 생략 .
# rpm –qa | grep tftp
설치 Host 에 설치가 되어있지 않으면 다음과 같이 설치한다 . # cd /PXA270/rpms
# rpm –ivh tftp-server-0.17-9.i386.rpm
5.3 TFTP 통신
30
TFTP Server 구동 TFTP Server 는 xinetd daemon 에서 관리한다 . TFTP Server 를 구동시키기 위해 /etc/xinet.d/tftp 파일을
다음과 같이 설정한다 .
service tftp
{ disable = nosocket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /tftpboot}
5.3 TFTP 통신
전송될 파일이 있는 디렉토리
31
TFTP Server 구동 (cont’) 파일을 전송할 때 사용하는 디렉토리를 /tftpboot 로 만든다 .
# mkdir /tftpboot TFTP 설정 파일을 편집한 후에는 xinet daemon 에 적용
시키기 위해 xinet daemon 을 재시작 해주어야 한다 .# /etc/init.d/xinetd restart
TFTP 가 현재 제대로 동작하고 있는가 확인한다 .# netstat –au | grep tftp
tftp 가 포함된 행이 보인다면 제대로 동작하고 있는 것이다 .
5.3 TFTP 통신
32
TFTP 사용 예 전송할 파일을 /tftpboot 에 복사한다 .
# cp /PXA270/images/* /tftpboot/
Minicom 을 실행시킨다 .# minicom
Target board 에 전원을 인가 한후 다음 메시지가 나오기 전에 임의이 key 를 누르면 “ hybus>” prompt 가 뜨는 것을 확인할 수 있다 .
5.3 TFTP 통신
33
TFTP 사용 예 (cont’) tftp “전송할 파일명” “해당 영역”
hybus>tftp zImage kernel
hybus>flash kernel hybus>tftp rootfs.img root
5.3 TFTP 통신
5.4 NFS 설정
35
NFS 구성하기
5.4 NFS 설정
Ethernet 을 사용한 NFS 통신
/root
/bin
/lib
/kernel
/etc
/net
/arch
…
/bin
/lib
/driver
/sbin
/mm
/exam
…
Host File System
/root
/bin
/lib
/driver
/sbin
/mm
/exam
…
NFS Server NFS Client
36
NFS 구성하기
5.4 NFS 설정
192. 168. 1. *
Host
192.168.1.100
Target
192.168.1.101
37
설치 준비NFS 설정을 위해 아래와 같은 환경이 필요하다 .
Cross Lan Cable(ethenet cable) Linux 가 설치되어 있는 PC(Host) XHYPER270-TKU 실습 보드 (Target) 중간에 허브를 사용할 경우에는 direct cable 을 사용한다 .
5.4 NFS 설정
38
NFS– nfs 용 공유 disk 만들기
NFS(network file system)란 client 가 server 상에 있는 file혹은 file system 에 대하여 여과 없는 접근 권한을 가지게 됨 .
NFS 방식으로 hello_arm 이라는 파일을 host 에서 target 으로 download 해보자 .
5.4 NFS 설정
39
NFS– nfs 용 공유 disk 만들기 (1)
Host 와 target 의 통신을 위해서 host 의 방화벽 설정을 변경한다 .
#lokkit --> no firewall 로 설정
5.4 NFS 설정
40
NFS – nfs 용 공유 disk 만들기 (2)
일반적으로 lan card 가 1 개이므로 광대역 IP 를 같이 쓰면서 target 과 사설 ip 로 통신하기 위해서 IP aliasing 이 필요하다 .
IP aliasing 설정 파일을 아래와 같이 copy 한다
5.4 NFS 설정
41
NFS – nfs 용 공유 disk 만들기 (3)
아래 그림과 같이 copy 한 파일을 편집한다 .
5.4 NFS 설정
42
NFS – nfs 용 공유 disk 만들기 (3)
먼저 Host 에서 nfs 마운트를 위한 디렉토리를 만든다 .
5.4 NFS 설정
43
NFS– nfs 용 공유 disk 만들기 (4)
만들어진 directory 를 export 시켜야 한다 .
5.4 NFS 설정
44
NFS – nfs 용 공유 disk 만들기 (5)
만들어진 디렉토리를 export 할 수 있도록 vi 를 이용하여 /etc/exports 파일을 다음과 같이 편집한다 .
5.4 NFS 설정
Root 는 아니지만 root 의 권한을 가진다는 의미
Read/ write
45
NFS – nfs 용 공유 disk 만들기 (6) nfs 데몬을 재 시작한다 .
또는 다음과 같은 명령을 사용해도 된다 .% service nfs restart
5.4 NFS 설정
46
NFS – nfs 용 공유 disk 만들기 (7)
NFS 로 mount 시킬 target 의 디렉토리를 만든다 . 타겟보드에서 호스트 pc 의 nfs 서비스를 해주는 디렉토리로 마운트한다 .
5.4 NFS 설정
xhyper270]# mkdir /mnt/nfs
xhyper270]# mount –t nfs 192.168.100.1:/home/share /mnt/nfs
47
NFS – nfs 용 공유 disk 만들기 (10)
설치가 끝나면 Host 의 /home/share 와 Target 의 /mnt/nfs는 같은 디렉토리의 의미를 가지게 됨 .
Host 의 /home/share 에 미리 만들었던 hello_arm 을 복사하여 옮겨놓고 Target 의 /mnt/nfs 에서 ls 명령어를
사용하면 폴더내에 생성된 것을 확인할 수 있음 .
5.4 NFS 설정
48
NFS – nfs 용 공유 disk 만들기 (12)
umount 명령을 이용하여 mount 해제
Xhyper270]#umount 192.168.1.100:/home/share
5.4 NFS 설정