Download presentation
Presentation is loading. Please wait.
1
Target System을 개발하기 위해 Host System에 환경을 구축하자.
2
7. Host와 Target간의 통신 목 차 Minicom TFTP NFS
3
Target System을 개발하기 위해 Host System에 환경을 구축하자.
Minicom Target System을 개발하기 위해 Host System에 환경을 구축하자.
4
8. Host와 Target간의 통신 Minicom - 구성도 Minicom을 이용하여 serial
통신으로 hello라는 파일 전송 Minicom - 구성도
5
7. Host와 Target간의 통신 설치 준비 Host와 Target을 minicom으로 연결하기 위해 아래와 같은 환경 필요 Serial Cross Cable(9 pins) 1EA Linux가 설치되어 있는 PC(Host) PXA255-pro 실습보드(Target) Cross cable의 한쪽은 Host의 COM1에 연결하고고 다른 한쪽은 Target의 COM1 연결한다. Minicom 역할 Target에 대한 가상 터미널 Hyperterminal과 동일한 기능 Linux상의 text 기반 가상 터미널 Target 임베디드 보드에 대한 명령과 작동결과를 모니터링
6
7. Host와 Target간의 통신 Minicom – 실행(1)
만들어진 hello object 파일을 target에 download하기 위해 minicom이라는 emulator를 이용 Minicom은 RS232C 통신을 이용 Minicom을 실행하기 전 통신 포트 설정을 해야 함. 컴퓨터에 미니컴 패키지가 설치되어 있는지 확인하자. 대부부의 배포판에는 기본적으로 포함이 되어있지만, 시스템에 없을 수 있다. 만약 없다면 소스를 구해 설치해야한다. -rpm source 구하기 site : 에서 minicom을 검색하여 최신 rpm버젼을 받아 설치하면 된다. - rpm –ivh <minicom rpm source>
7
7. Host와 Target간의 통신 Minicom – 실행(2)
Serial port setup으로 커서를 옮긴 후 enter를 입력
8
7. Host와 Target간의 통신 Minicom – 실행(3)
COM1은 ttyS0, COM2는 ttyS1로 Linux에서는 표시함. A를 눌려서 Serial jack이 연결된 포트를 설정. Host와 Target의 Baud rate는 Hardware Flow Control은 NO로 설정
9
7. Host와 Target간의 통신 Minicom – 실행(4) 설정을 default로 저장하고 나옴.
10
7. Host와 Target간의 통신 Minicom – 실행(5)
설정을 마친 후 target 보드의 전원을 on 시키면 아래와 같은 화면을 보게 됨. Boot loader loading Kernel loading ramdisk loading 위의 화면은 boot loader가 올라가고 커널이 SDRAM에 풀리고 root file system이 적재되는 것을 보여줌. Blob(boot loader)는 0x 에 적재 되어 있음 Kernel image는 0x 에 적재 되어 있음 Ramdisk는 0x 에 적재 되어 있음. zImage는 piggy.o와 head_armv.S로 이루어져 있음. Piggy.o는 vmlinux를 압축해놓은 파일이고 Head_armv.S는 압축을 푸는 코드이다. Kernel uncompressing
11
7. Host와 Target간의 통신 Minicom – 실행(6) Root를 입력 후 login한다. www.huins.com
위의 화면은 boot loader가 올라가고 커널이 SDRAM에 풀리고 root file system이 적재되는 것을 보여줌.
12
7. Host와 Target간의 통신 Minicom – 실행(7)
- tool chain 설치에서 만들었던 hello라는 object 파일을 host에서 target으로 download하려고 한다. - CTRL과 A를 동시에 누른 후 Z키를 입력하면 아래와 같은 화면이 나옴. 파일을 host로부터 target으로 전송하기 위해 S를 입력.
13
7. Host와 Target간의 통신 Minicom – 실행(8)
S를 입력 후 Zmodem을 선택하면 아래와 같은 화면이 나옴. 스페이스키를 눌려 디렉토리 이동
14
7. Host와 Target간의 통신 Minicom – 실행(9)
Tool chain 설치 시에 만들었던 hello 파일을 선택한 뒤에 enter를 치면 파일이 host로부터 target으로 download됨
15
7. Host와 Target간의 통신 Minicom – 실행(10) 파일 전송이 성공하면 위와 같은 화면 나옴.
16
7. Host와 Target간의 통신 Minicom – 실행(11) ls 명령을 이용하여 hello 파일이 전송되었는지 확인
17
7. Host와 Target간의 통신 Minicom – 실행(12) Hello 파일을 실행 www.huins.com
Host에서 실행이 안되었던 hello 파일이 target에서는 실행됨.
18
TFTP
19
7. Host와 Target간의 통신 TFTP? Linux용 TFTP 프로그램
TCP 를 사용하여 신뢰성있는 file 전송을 제공하는 ftp와 달리 UDP를 사용하여 file을 전송하는 protocol이다. Data 의 전송 중에 오류가 날 확률이 극히 적은 근거리에서 빠르게 file을 전송받고자 할 경우에 사용한다. Embedded system 개발중 개발한 kernel image나 ramdisk를 boot loader를 통해 target board로 전송하기 위해 많이 사용한다. Linux용 TFTP 프로그램 에서 tftp로 검색하면 해당 rpm을 받을 수 있다. 또는 고객 지원 download 임베디드 시스템 게시판에서 받을 수도 있다.
20
7. Host와 Target간의 통신 설치 확인 설치
TFTP rpm을 설치하기 전에 host에 이미 설치가 되어있나 확인한다. 설치가 되어 있으면 설치과정 생략. % rpm –qa | grep tftp 설치 Host에 설치가 되어있지 않으면 다음과 같이 설치한다. % rpm –ivh tftp i386.rpm tftp-server i386.rpm
21
7. Host와 Target간의 통신 TFTP Server 구동 TFTP Server는 xinetd daemon에서 관리한다.
TFTP Server를 구동시키기 위해 /etc/xinet.d/tftp 파일을 다음과 같이 설정한다. service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot per_source = 11 cps = 100 2 flags = IPv4 }
22
7. Host와 Target간의 통신 TFTP Server 구동 (cont’)
파일을 전송할 때 사용하는 디렉토리를 /tftpboot 로 만든다. % mkdir /tftpboot TFTP 설정 파일을 편집한 후에는 xinet daemon에 적용 시키기 위해 xinet daemon을 재시작 해주어야 한다. % /etc/init.d/xinetd restart TFTP가 현재 제대로 동작하고 있는가 확인한다. % netstat –a | grep tftp tftp가 포함된 행이 보인다면 제대로 동작하고 있는 것이다. netstat 명령은 현재 시스템의 socket 상태를 보여 주는 것이다. local system의 어느 포트가 외부의 어느 포트와 연결 되어 있는지, queue의 상태는 어떠한지 등의 정보를 보여준다. 출력되는 정보는 순서대로 다음과 같다. Proto: 사용하는 protocol Recv-Q: receive queue에 대기중인 packet 수 Send-Q: send queue에 대기중인 packet 수 Local Address: service 가 사용하는 local system의 IP address와 port number Foreign Address: local system에 접속된 외부 system의 IP address와 port number State: 현재 접속 상태 grep 은 표준 입력으로 부터 지정된 문자열을 포함하고 있는 line만을 출력하는 filter 프로그램이다.
23
7. Host와 Target간의 통신 TFTP 사용 예
전송할 파일을 /tftpboot에 복사한다. 예> cd의 ramdisk.gz 복사 % cp /mnt/cdrom/ramdisk.gz /tftpboot/ Minicom을 실행시킨다. % minicom Target board에 전원을 인가 한후 다음 메시지가 나오기 전에 임의이 key를 누르면 “boot>” prompt 가 뜨는 것을 확인할 수 있다.
24
7. Host와 Target간의 통신 TFTP 사용 예 (cont’)
tftp “전송할 파일명” ramdisk 를 실행하여 파일을 전송한다. ttftp 명령에 대해서는 장 ramdisk 설치에서 설명한다. 일단 server에서 설정한 디렉토리(여기서는 /tftpboot 로 설정하였었다.) 에서 두번째 인자에 해당하는 이름을 가진 파일을 sdram의 ramdisk 용으로 정해진 영역에 copy한다는 정도만 알아 두면 될 것이다.
25
NFS 구축
26
7. Host와 Target간의 통신 NFS – 구성(1) Ethernet을 사용한 NFS 통신 www.huins.com
Host에서 실행이 안되었던 hello 파일이 target에서는 실행됨. Ethernet을 사용한 NFS 통신
27
7. Host와 Target간의 통신 192. 168. 1. * NFS – 구성(2) Host 192.168.1.100
Host에서 실행이 안되었던 hello 파일이 target에서는 실행됨.
28
7. Host와 Target간의 통신 D. 설치 준비 NFS 설정을 위해 아래와 같은 환경이 필요하다.
Lan Direct Cable Linux가 설치되어 있는 PC(Host) PXA255-pro 실습 보드(Target) Lan cable은 direct나 cross cable 모두 사용가능하나 이 자료에서는 direct cable을 사용한다.
29
7. Host와 Target간의 통신 NFS– nfs용 공유 disk 만들기 (1)
NFS(network file system)란 client가 server상에 있는 file혹은 file system에 대하여 여과 없는 접근 권한을 가지게 됨. NFS 방식으로 nfs_success라는 파일을 host에서 target으로 download 해보자. - Ftp와 다른점 : ftp는 파일에 대한 복사 권한만을 가진다. - NFS는 기능상 삼바와 비슷하지만 가장 큰 차이는 커널에서 NFS를 지원한다는 점이다. - Portmap설치 역시 NFS를 사용하기 위해서는 필수적인 프로그램이다. Portmap은 포트 요청이 있을 때 새로운 포트를 할당해 주고 맵핑해주는 역할을 하게 된다. 즉 NFS에 접근한 시스템이 있으면 NFS 포트에서는 인증을 하고 파일을 주고 받는 포트는 새로운 포트 할당하게 되는 것이다. - 웹서버나 ftp 서버와는 다르게 데몬 프로세스가 특정 네트워크 포트를 점유하면서 동작하여 접속을 대기하고 있는 것이 아니라 portmapper라는 프로그램을 이용해서 네트워크 포트를 할당 받는다. Portmapper는 111번 포트를 점유하면서 데몬 상태로 대기하고 있다가 NFS 서비스를 요구하는 접속이 들어오면 nfsd에게 포트번호를 바꾸어 접속을 연결시켜준다.
30
7. Host와 Target간의 통신 NFS– nfs용 공유 disk 만들기 (1)
Host와 target의 통신을 위해서 host의 방화벽 설정을 변경한다.
31
7. Host와 Target간의 통신 NFS– nfs용 공유 disk 만들기 (1)
Host와 target의 통신을 위해서 host의 방화벽 설정을 변경한다.
32
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(2)
일반적으로 lan card가 1개이므로 광대역 IP를 같이 쓰면서 target과 사설 ip로 통신하기 위해서 IP aliasing이 필요하다. IP aliasing 설정 파일을 아래와 같이 copy한다 IP aliasing - 하나의 네트워크 장치에 여러 개의 IP주소 설정이 가능하며 이것을 IP aliasing이라고 한다. IP aliasihg을 할경우 해당 장치파일은 eth0에 또 하나의 IP를 설정할 경우 eth0:0로 생성된다. 그러한 이유로 IP aliasing 관련 설정 파일 /etc/sysconfig/network-scripts/ifconfig-eth0:0를 생성한 후 네트워크 초기화 스크립트(/etc/init.d/network)를 재구동하면 된다.
33
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(3)
아래 그림과 같이 copy한 파일을 편집한다.
34
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(3)
먼저 Host에서 nfs 디렉토리를 만든다.
35
7. Host와 Target간의 통신 NFS– nfs용 공유 disk 만들기 (4)
만들어진 directory를 export시켜야 한다. Client로부터의 mount 요청을 처리하는 데몬으로 /etc/exports의 내용을 읽어 어떤 호스트에게 마운트를 허가하고 어떤 제한을 주어야 하는지를 판단하게 된다. Exportfs파일은 마운트될 디렉토리와 허가 대상, 제한을 명시하며 또한 NFS client는 서버의 exports파일을 사용하기 이전에 명확하게 허가된 파일 또는 디렉토리를 마운트해야한다. 서버에서는 마운트를 허가해주기 이전에 인증을 거쳐 올바른 사용자인지를 판단하며 이를 masic cookie라고 한다. 리눅스는 BSD와 비슷한 동작을 취하게 되는데, 그 동작은 mountd라는 client의 요청이 있으면, /etc/exports의 내용을 읽어 호스트에 접속을 허가하고 디렉토리에 제한을 두게 된다.
36
Root는 아니지만 root의 권한을 가진다는 의미
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(5) 만들어진 디렉토리를 export 할 수 있도록 vi를 이용하여 /etc/exports 파일을 다음과 같이 편집한다. Root는 아니지만 root의 권한을 가진다는 의미 Read/ write 대신 *로 하면 모든 ip에서 접속 가능 ro : 읽기 전용 rw: 읽기/쓰기 가능 root=n : n으로 표시된 계정의 uid를 루트권한으로 사용 가능케 한다. insecure : 이 머신에서 인증받지 않은 access를 허용 root_squash : client uid 0에서의 request를 서버의 uid(-2)로 매핑함으로써 지정된 호스트의 슈퍼유저의 access를 거부하는 보안기능 no_root_squash : uid 0 로부터의 request를 매핑하지 않는다. Default 옵션
37
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(6) nfs 데몬을 재 시작한다.
또는 다음과 같은 명령을 사용해도 된다. % service nfs restart
38
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(7)
NFS로 mount시킬 target의 디렉토리를 만든다. NFS server와 target의 디렉토리를 nfs 파일 시스템 형으로 mount 시킨다. Host IP address
39
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(8)
cat /etc/mtab 을 이용하여 mount 성공여부 체크 Mount 전 mtab는 mount table을 의미
40
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(9) Mount 후
41
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(10)
설치가 끝나면 Host의 /home/share와 Target의 /mnt/nfs는 같은 디렉토리의 의미를 가지게 됨. Host의 /home/share 에 nfs_success라는 파일을 만들면 Target의 /mnt/nfs 에서 이 file을 ls 명령어로 확인할 수 있음. Host에서 nfs_success라는 파일을 제작
42
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(11)
Target에서 nfs_success라는 파일을 확인
43
7. Host와 Target간의 통신 NFS – nfs용 공유 disk 만들기(12)
umount 명령을 이용하여 mount 해제
Similar presentations