제 5 장 host 환경 설정

48
제 5 제 Host 제제 제제 Target System 제 제제제제 제제 Host System 제 제제제 제제제제 .

Upload: bono

Post on 09-Jan-2016

53 views

Category:

Documents


5 download

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 Presentation

TRANSCRIPT

Page 1: 제 5 장  Host  환경 설정

제 5 장 Host 환경 설정

Target System 을 개발하기 위해 Host System 에 환경을 구축하자 .

Page 2: 제 5 장  Host  환경 설정

2

5.1 Minicom 설정5.2 BOOTP 설정5.3 TFTP 설정5.4 NFS 설정

목 차

Page 3: 제 5 장  Host  환경 설정

5.1 Minicom 설정

타겟보드 콘솔을 위한 시리얼 통신을 셋팅한다 .

Page 4: 제 5 장  Host  환경 설정

4

TARGET 은 출력을 위한 별도의 터미널을 가지고 있지 않음 일반적으로 serial port/LAN 을 통한 터미널 emulator 이용

Linux 에서는 일반적으로 minicom 이용 Windows 에서는 Hyper-Terminal 등을 이용

5.1 Minicom 설정

Minicom 을 이용하여 serial 통신으로 hello 라는 파일 전송

Page 5: 제 5 장  Host  환경 설정

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 설정

Page 6: 제 5 장  Host  환경 설정

6

Minicom 실행하기

만들어진 hello object 파일을 target 에 download 하기 위해 minicom이라는 emulator( 가상터미널 ) 를 이용

Minicom 은 RS232C 통신을 이용

Minicom 을 실행하기 전 통신 포트 설정을 해야 함 .

5.1 Minicom 설정

Page 7: 제 5 장  Host  환경 설정

7

Minicom 실행하기

Serial port setup 으로 커서를 옮긴 후 enter 를 입력

5.1 Minicom 설정

Page 8: 제 5 장  Host  환경 설정

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 설정

Page 9: 제 5 장  Host  환경 설정

9

Minicom 실행하기 설정을 default 로 저장하고 나옴 .

5.1 Minicom 설정

Page 10: 제 5 장  Host  환경 설정

10

Minicom 실행하기 타겟보드에 전원을 인가하거나 리셋을 시킨다 .

5.1 Minicom 설정

Page 11: 제 5 장  Host  환경 설정

11

Minicom 실행하기 tool chain 설치에서 만들었던 hello 라는 object 파일을 host

에서 Target 으로 download 하려고 한다 . CTRL 과 A 를 동시에 누른 후 Z 키를 입력하면 아래와 같은 화면이 나옴 .

5.1 Minicom 설정

Page 12: 제 5 장  Host  환경 설정

12

Minicom 실행하기 S 를 입력 후 Zmodem 을 선택하면 아래와 같은

화면이 나옴 .

5.1 Minicom 설정

Page 13: 제 5 장  Host  환경 설정

13

Minicom 실행하기

Tool chain 설치 시에 만들었던 hello 파일을 선택한 뒤에 enter 를 치면 파일이 host 로부터 target 으로 download 수행

5.1 Minicom 설정

Page 14: 제 5 장  Host  환경 설정

14

Minicom 실행하기

파일 전송이 성공하면 위와 같은 화면 나옴 .

5.1 Minicom 설정

Page 15: 제 5 장  Host  환경 설정

15

Minicom 실행하기

ls 명령을 이용하여 hello 파일이 전송되었는지 확인 해보고 실행시켜보자 .

5.1 Minicom 설정

Page 16: 제 5 장  Host  환경 설정

5.2 bootp 설정

프로그램 다운로드를 위해 타겟보드에 ip 를 할당한다 .

Page 17: 제 5 장  Host  환경 설정

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를 통한 데이터 전송을 할 수 있다 .

Page 18: 제 5 장  Host  환경 설정

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

Page 19: 제 5 장  Host  환경 설정

19

5.2 BOOTP 설정 5.2 BOOTP 설정 bootpd 가 설치었는지는 다음의 명령어로 확인할 수 있다 .

Page 20: 제 5 장  Host  환경 설정

20

5.2 BOOTP 설정 bootp 설치 bootpd 가 설치되어 있지 않다면 bootp rpm 설치로 데몬을 설치한다 .

* CD 안에 rpms 디렉토리 bootp rpm 이 존재한다 .

Page 21: 제 5 장  Host  환경 설정

21

5.2 BOOTP 설정 bootp rpm 이 설치가 되면 /usr/sbin/bootpd 파일이 생성된다 .

생성된 bootpd 파일은 xinetd 프로그램에 의해 실행된다 .

xinetd 프로그램에 의해 bootpd 가 실행될 수 있도록 /etc/xinetd.d/bootp파일을 만들어야 한다 .

Page 22: 제 5 장  Host  환경 설정

22

5.2 BOOTP 설정 /etc/xinetd.d/bootp 파일을 아래와 같이 만든다 .

Page 23: 제 5 장  Host  환경 설정

23

5.2 BOOTP 설정 bootptab 파일 설정

타겟보드의 bootp요청이 있을 때 Host PC에 설치 한 bootp서버 (bootpd) 는 /etc/bootptab 에 정의된 client 정보를 기반으로 bootp reply packet 을 만들어 응답한다 . 그래서 bootp 를 사용하기 위해서는 이 /etc/bootptab 에 client 의 MAC Address 와 할당할 IP 등의 정보가 입력되어 있어야 한다 .

Page 24: 제 5 장  Host  환경 설정

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 로 확인할 수 있다 .

Page 25: 제 5 장  Host  환경 설정

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) 와 동일하게 적어주면 된다 .

Page 26: 제 5 장  Host  환경 설정

26

5.2 BOOTP 설정 Bootloader 에서 bootp 명령 실행하기

Host 에서 xinetd 를 재시작 . (/etc/rc.d/rc.sysinit/xinetd restart)

Target 에서는 bootp 명령 수행 .

Page 27: 제 5 장  Host  환경 설정

5.3 TFTP 통신

Page 28: 제 5 장  Host  환경 설정

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 통신

Page 29: 제 5 장  Host  환경 설정

29

설치 확인 TFTP rpm 을 설치하기 전에 host 에 이미 설치가 되어있나

확인한다 . 설치가 되어 있으면 설치과정 생략 .

# rpm –qa | grep tftp

설치 Host 에 설치가 되어있지 않으면 다음과 같이 설치한다 . # cd /PXA270/rpms

# rpm –ivh tftp-server-0.17-9.i386.rpm

5.3 TFTP 통신

Page 30: 제 5 장  Host  환경 설정

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 통신

전송될 파일이 있는 디렉토리

Page 31: 제 5 장  Host  환경 설정

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 통신

Page 32: 제 5 장  Host  환경 설정

32

TFTP 사용 예 전송할 파일을 /tftpboot 에 복사한다 .

# cp /PXA270/images/* /tftpboot/

Minicom 을 실행시킨다 .# minicom

Target board 에 전원을 인가 한후 다음 메시지가 나오기 전에 임의이 key 를 누르면 “ hybus>” prompt 가 뜨는 것을 확인할 수 있다 .

5.3 TFTP 통신

Page 33: 제 5 장  Host  환경 설정

33

TFTP 사용 예 (cont’) tftp “전송할 파일명” “해당 영역”

hybus>tftp zImage kernel

hybus>flash kernel hybus>tftp rootfs.img root

5.3 TFTP 통신

Page 34: 제 5 장  Host  환경 설정

5.4 NFS 설정

Page 35: 제 5 장  Host  환경 설정

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

Page 36: 제 5 장  Host  환경 설정

36

NFS 구성하기

5.4 NFS 설정

192. 168. 1. *

Host

192.168.1.100

Target

192.168.1.101

Page 37: 제 5 장  Host  환경 설정

37

설치 준비NFS 설정을 위해 아래와 같은 환경이 필요하다 .

Cross Lan Cable(ethenet cable) Linux 가 설치되어 있는 PC(Host) XHYPER270-TKU 실습 보드 (Target) 중간에 허브를 사용할 경우에는 direct cable 을 사용한다 .

5.4 NFS 설정

Page 38: 제 5 장  Host  환경 설정

38

NFS– nfs 용 공유 disk 만들기

NFS(network file system)란 client 가 server 상에 있는 file혹은 file system 에 대하여 여과 없는 접근 권한을 가지게 됨 .

NFS 방식으로 hello_arm 이라는 파일을 host 에서 target 으로 download 해보자 .

5.4 NFS 설정

Page 39: 제 5 장  Host  환경 설정

39

NFS– nfs 용 공유 disk 만들기 (1)

Host 와 target 의 통신을 위해서 host 의 방화벽 설정을 변경한다 .

#lokkit --> no firewall 로 설정

5.4 NFS 설정

Page 40: 제 5 장  Host  환경 설정

40

NFS – nfs 용 공유 disk 만들기 (2)

일반적으로 lan card 가 1 개이므로 광대역 IP 를 같이 쓰면서 target 과 사설 ip 로 통신하기 위해서 IP aliasing 이 필요하다 .

IP aliasing 설정 파일을 아래와 같이 copy 한다

5.4 NFS 설정

Page 41: 제 5 장  Host  환경 설정

41

NFS – nfs 용 공유 disk 만들기 (3)

아래 그림과 같이 copy 한 파일을 편집한다 .

5.4 NFS 설정

Page 42: 제 5 장  Host  환경 설정

42

NFS – nfs 용 공유 disk 만들기 (3)

먼저 Host 에서 nfs 마운트를 위한 디렉토리를 만든다 .

5.4 NFS 설정

Page 43: 제 5 장  Host  환경 설정

43

NFS– nfs 용 공유 disk 만들기 (4)

만들어진 directory 를 export 시켜야 한다 .

5.4 NFS 설정

Page 44: 제 5 장  Host  환경 설정

44

NFS – nfs 용 공유 disk 만들기 (5)

만들어진 디렉토리를 export 할 수 있도록 vi 를 이용하여 /etc/exports 파일을 다음과 같이 편집한다 .

5.4 NFS 설정

Root 는 아니지만 root 의 권한을 가진다는 의미

Read/ write

Page 45: 제 5 장  Host  환경 설정

45

NFS – nfs 용 공유 disk 만들기 (6) nfs 데몬을 재 시작한다 .

또는 다음과 같은 명령을 사용해도 된다 .% service nfs restart

5.4 NFS 설정

Page 46: 제 5 장  Host  환경 설정

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

Page 47: 제 5 장  Host  환경 설정

47

NFS – nfs 용 공유 disk 만들기 (10)

설치가 끝나면 Host 의 /home/share 와 Target 의 /mnt/nfs는 같은 디렉토리의 의미를 가지게 됨 .

Host 의 /home/share 에 미리 만들었던 hello_arm 을 복사하여 옮겨놓고 Target 의 /mnt/nfs 에서 ls 명령어를

사용하면 폴더내에 생성된 것을 확인할 수 있음 .

5.4 NFS 설정

Page 48: 제 5 장  Host  환경 설정

48

NFS – nfs 용 공유 disk 만들기 (12)

umount 명령을 이용하여 mount 해제

Xhyper270]#umount 192.168.1.100:/home/share

5.4 NFS 설정