임베디드 시스템 개발 환경 (1)

79
임임임임 임임임 임임 임임 (1) Lecture #3 Lecture #3

description

임베디드 시스템 개발 환경 (1). Lecture #3. 목 차. 교차 개발 환경 Host 와 Target 의 연결 Host 및 Target 사양 Host 개발 환경 구축 Toolchain(Cross-Compiler Tool) 설치 Minicom 설정 및 사용 방법 JTAG 설치 및 사용 방법 TFTP 서버 설치 및 구동 NFS 서버 설치 및 구동. 교차 개발 환경 (1). 교차 개발 환경이란 ? Target system 에서 응용 프로그램을 개발할 수 없다 - PowerPoint PPT Presentation

Transcript of 임베디드 시스템 개발 환경 (1)

Page 1: 임베디드 시스템 개발 환경  (1)

임베디드 시스템개발 환경 (1)

Lecture #3Lecture #3

Page 2: 임베디드 시스템 개발 환경  (1)

2

목 차

교차 개발 환경

Host 와 Target 의 연결

Host 및 Target 사양

Host 개발 환경 구축 Toolchain(Cross-Compiler Tool) 설치

Minicom 설정 및 사용 방법

JTAG 설치 및 사용 방법

TFTP 서버 설치 및 구동

NFS 서버 설치 및 구동

Page 3: 임베디드 시스템 개발 환경  (1)

3

교차 개발 환경이란 ? Target system 에서 응용 프로그램을 개발할 수 없다

하드웨어 구성이 소프트웨어 개발환경으로 부적합 저성능 CPU 및 메모리 용량 부족으로 컴파일 실행에 무리

소프트웨어 개발 생산성 저하 Target system 개발 방법

Target system 보다 성능이 좋은 Host system 을 이용하여 target system 에서 동작하는 프로그램을 생성

프로그램 작성 및 컴파일은 Host system 에서 , 프로그램 실행은 Target system 에 수행

Target system 과 Host system 이 서로 다른 형태의 프로세서를 사용하는 경우 cross compiler 가 필요

주로 Host system 이 target system 의 console 로 동작 이러한 개발 환경을 교차 개발 환경이라고 함

교차 개발 환경 (1)

Page 4: 임베디드 시스템 개발 환경  (1)

4

1. 프로그램 작성 및 컴파일 수행

2. Target system 실행 상태 디스플레이

프로그램 실행

교차 개발 환경 (2)

Page 5: 임베디드 시스템 개발 환경  (1)

5

교차 개발 환경 (3) Host 시스템

임베디드 소프트웨어를 개발하는 시스템 일반 PC 에 Linux 운영체제를 설치하여 사용 Cross compile 환경 필요 (toolchain 설치 ) Target 시스템에 연결하는 소프트웨어 설치 (minicom, JTAG

프로그램 등 )

Target 시스템 (=KIT) 개발된 임베디드 소프트웨어가 실제 수행되는 시스템 Target CPU 가 탑재된 시스템에 Linux 운영체제 porting Bootloader 및 특별한 flash 메모리용 file system 설치

Page 6: 임베디드 시스템 개발 환경  (1)

6

교차 개발 환경 (4)

Host 시스템와 target 시스템의 연결 Serial 선 -Console 연결 , zmodem 을 이용한 파일 전송 JTAG 선 - Hardware debugging, Flash memory

programming USB 선 – 빠른 속도의 파일 전송 지원 Ethernet 선 - 빠른 속도의 파일 전송 , NFS 지원

Page 7: 임베디드 시스템 개발 환경  (1)

7

Host 시스템 사양

Host 시스템

CPU Pentium IV 3GHz

Memory 512M

Disk 160G

CD-ROM CD: x48

I/O Serial / JTAG

Network 10/100 BaseT

O/S Red Hat Linux 9

Page 8: 임베디드 시스템 개발 환경  (1)

8

Target 시스템 H/W 사양 CPU: Intel XScale PXA255 400MHz RAM: Samsung SDRAM 128MB ROM: Intel Flash 32MB Screen: 6.4’’ TFT LCD (640 x 480) Touch Panel: BBADS7846E I/O: Serial, JTAG, USB 1.1(host/client), PCMCIA,

Buttons, CMOS camera, IrDA, MIC, MMC Ethernet: CS8900A 10BaseT Audio: CS4202-JQ Cables: Power, Serial, Parallel, USB, Ethernet Case: Aluminum

Page 9: 임베디드 시스템 개발 환경  (1)

9

Target 시스템 S/W 사양

O/S: Linux 2.4.19 kernel

Device Drivers: CS8900A Ethernet, Frame buffer,

BBADS7846E(Touch Screen), USB(host/client),

PCMCIA, IrDA, CS4202-JQ stereo audio

File System: Ramdisk, JFFS2

Page 10: 임베디드 시스템 개발 환경  (1)

10

Target 시스템 (PXA255-PRO3)

Page 11: 임베디드 시스템 개발 환경  (1)

11

Host 와 Target 의 연결

JTAG 케이블serial 케이블

Ethernet 케이블USB 케이블

Page 12: 임베디드 시스템 개발 환경  (1)

12

Toolchain 설치 및 테스트

Cross-Compiler 개요

Toolchain 설치

Toolchain 테스트

Page 13: 임베디드 시스템 개발 환경  (1)

13

Cross compile 환경 Embedded 시스템은 매우 제한된 H/W 및 S/W resource 를

가지고 있기 때문에 여기서 Embedded S/W 를 개발할 수는 없다 (S/W 개발은 Host 시스템에서 )

Host 컴퓨터의 processor 와 Embedded 시스템의 processor 는 다르기 때문에 Host 컴퓨터의 compiler 를 사용하여 Embedded S/W 를 compile 할 수는 없다

Host 컴퓨터에서 작성된 프로그램을 Embedded 시스템에서 수행시키기 위하여 "Host to Embedded 시스템 " cross compiler ( 교차 컴파일러 ) 가 필요하다

일반적인 Linux 시스템에는 cross compiler 가 설치되어 있지 않기 때문에 개발에 필요한 cross compiler 는 개발자가 설치하여야 한다

Page 14: 임베디드 시스템 개발 환경  (1)

14

Toolchain 이란 ? Target 시스템에서 수행되는 소프트웨어를 개발하기 위해

필요한 Host 시스템의 cross compile 환경 소스 코드를 compile & link 하여 binary 실행 파일을

생성하는데 필요한 각종 utility 및 library 의 모음 기본적으로 assembler, C compiler, linker, C library

등으로 구성되어 있다 . GNU 에서 제공하는 Toolchain 을 사용

GNU GCC for C, C++ : gcc GNU binary utilities: assembler, linker various object file

utilities : binutils GNU C library : glibc

Page 15: 임베디드 시스템 개발 환경  (1)

15

HUINS 에서 제공하는 CD 를 삽입하고 CD-ROM 을 mount한다 .

CD 를 넣으면 자동으로 mount 가 됨 . mount 가 되지 않았을 경우 아래와 같이 실행

CD-ROM device name

Read only option

CD-ROM 장치를 /mnt/cdrom 디렉토리에

mount

Toolchain 설치하기 (1)

Page 16: 임베디드 시스템 개발 환경  (1)

16

cd 명령을 이용하여 mount 된 CD-ROM 으로 이동한다 .

ls 명령을 치면 CD 의 내용을 볼 수 있음

Tool Chain file

Toolchain 설치하기 (2)

Page 17: 임베디드 시스템 개발 환경  (1)

17

cp 명령을 이용하여 Tool Chain 파일을 /usr/local/arm으로 copy

ls 명령으로 copy 가 잘 되어 있는지 확인 후 usr/local/arm 디렉토리로 이동

arm directory 생성

Kernel source 의 makefile 안에서 tool chain의 경로가 /usr/local/arm 으로 되어 있기 때문에 반드시 이 경로에 tool chain 을

설치해야 함

Toolchain 설치하기 (3)

Page 18: 임베디드 시스템 개발 환경  (1)

18

tar 명령을 이용하여 압축을 풀면 Tool Chain 은 자동으로 설치됨 .

설치 후 ls 명령으로 잘 설치 되었는지 확인

Bunzip2 로 압축된 파일은 bz2 라는

확장자를 가진다 .

j 옵션은 bunzip2 의 확장자를 가진 압출 파일을

풀 때 사용

Toolchain 설치하기 (4)

Page 19: 임베디드 시스템 개발 환경  (1)

19

다음으로 path 를 잡아주어야 함 . cd 를 쳐서 자신의 root 디렉토리로 이동 .bashrc 을 vi 로 open.

Toolchain 설치하기 (5)

Page 20: 임베디드 시스템 개발 환경  (1)

20

PATH 를 아래와 같이 설정해줌 .

/usr/local/arm/bin 에 tool chain에서 설치한 여러 compiler 가

있음 .

Toolchain 설치하기 (6)

Page 21: 임베디드 시스템 개발 환경  (1)

21

수정된 .bashrc 는 source 명령을 사용하여 적용됨

Toolchain 설치하기 (7)

Page 22: 임베디드 시스템 개발 환경  (1)

22

hello.c 라는 Test file 을 만든다 .

Toolchain 설치하기 (8)

Page 23: 임베디드 시스템 개발 환경  (1)

23

설치된 arm 용 cross compiler 를 이용하여 compile한다 .

hello 라는 object 파일이 만들어졌는지 확인한다 .arm 용 cross

compiler

Hello 라는 object file 이 생성

Toolchain 설치하기 (9)

Page 24: 임베디드 시스템 개발 환경  (1)

24

만들어진 hello object 파일을 실행시켜본다 . 아래 그림처럼 error 가 발생하면 설치 성공 . file 이라는 명령어를 이용하여 file 의 속성을 확인

ARM 용 object 파일

의미

Toolchain 설치하기 (10)

Page 25: 임베디드 시스템 개발 환경  (1)

25

Minicom 설치 및 실행

터미널 에뮬레이터 개요

Minicom 설치 및 실행

Page 26: 임베디드 시스템 개발 환경  (1)

26

터미널 에뮬레이터 - 개요

필요성 Host 컴퓨터가 Taget 보드의 콘솔로 동작 Taget 보드의 동작 상황 및 각종 메시지를 콘솔에 출력 Host 컴퓨터와 Taget 보드간의 적은 용량의 파일 전송

Minicom 소프트웨어 Linux 운영체제에서 기본적으로 제공하는 터미널 에뮬레이터

소프트웨어 텍스트 기반의 인터페이스를 제공 다양한 터미널 에뮤레이터 모드를 제공 다양한 파일 전송 프로토콜을 제공

Page 27: 임베디드 시스템 개발 환경  (1)

27

Minicom 동작 환경

터미널 에뮬레이터 – 설치 (1)

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

전송

Page 28: 임베디드 시스템 개발 환경  (1)

28

Host 와 Target 을 minicom 으로 연결하기 위해 아래와 같은 환경 필요 Serial Cross Cable(9 pins) 1EA Linux 운영체제가 설치되어 있는 PC(Host) PXA255-pro 실습보드 (Target)

Cross cable 의 한쪽은 Host 의 COM1 에 연결하고 , 다른 한쪽은 Target 의 COM1 연결한다 .

터미널 에뮬레이터 – 설치 (2)

Page 29: 임베디드 시스템 개발 환경  (1)

29

만들어진 hello object 파일을 target 에 download하기 위해 minicom 이라는 emulator 를 이용

Minicom 은 RS232C 통신을 이용 Minicom 을 실행하기 전 통신 포트 설정을 해야 함

Minicom 실행 : ‘-s’ 옵션 사용

터미널 에뮬레이터 - 실행 (1)

Page 30: 임베디드 시스템 개발 환경  (1)

30

Serial port setup 으로 커서를 옮긴 후 enter 를 입력하여 serial port setup 모드를 실행

터미널 에뮬레이터 - 실행 (2)

Page 31: 임베디드 시스템 개발 환경  (1)

31

COM1 은 ttyS0, COM2 는 ttyS1 로 Linux 에서는 표시함 .

A 를 눌려서 Serial cable 이 연결된 포트를 설정 . Host 와 Target 의 연결 설정 : 115200 bps, 8 bit, no

parity, 1 stop bit Flow Control 은 모두 NO 로 설정

터미널 에뮬레이터 - 실행 (3)

Page 32: 임베디드 시스템 개발 환경  (1)

32

설정을 default 로 저장하고 나옴 .

터미널 에뮬레이터 - 실행 (4)

Page 33: 임베디드 시스템 개발 환경  (1)

33

설정을 마친 후 target 보드의 전원을 on 시키면 아래와 같은 화면을 보게 됨 .

터미널 에뮬레이터 - 실행 (5)

Boot loader loading

Kernel loading

ramdisk loading

Kernel uncompressing

Page 34: 임베디드 시스템 개발 환경  (1)

34

Root 를 입력 후 login 한다 .

터미널 에뮬레이터 - 실행 (6)

Page 35: 임베디드 시스템 개발 환경  (1)

35

Toolchain 설치 과정에서 만들었던 hello 라는 object 파일을 host 에서 target 으로 download 하려고 한다 .

CTRL 과 A 를 동시에 누른 후 Z 키를 입력하면 아래와 같은 Minicom command 모드가 실행됨 .

터미널 에뮬레이터 - 실행 (7)

Page 36: 임베디드 시스템 개발 환경  (1)

36

파일 전송 명령 S 를 입력하면 아래와 같은 화면이 나오며 , 파일 전송 프로토콜 중에서 Zmodem 을 선택한다 .

터미널 에뮬레이터 - 실행 (8)

Page 37: 임베디드 시스템 개발 환경  (1)

37

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

파일 목록에서 원하는 파일 선택을 space 키를 사용

터미널 에뮬레이터 - 실행 (9)

Page 38: 임베디드 시스템 개발 환경  (1)

38

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

터미널 에뮬레이터 - 실행 (10)

Page 39: 임베디드 시스템 개발 환경  (1)

39

ls 명령을 이용하여 hello 파일이 전송되었는지 확인

터미널 에뮬레이터 - 실행 (11)

Page 40: 임베디드 시스템 개발 환경  (1)

40

Hello 파일을 실행

터미널 에뮬레이터 - 실행 (12)

Page 41: 임베디드 시스템 개발 환경  (1)

41

JTAG - 설치 및 사용법

JTAG 개요

JTAG I/F 프로그램 설치 및 실행

Page 42: 임베디드 시스템 개발 환경  (1)

42

JTAG 인터페이스 구성

JTAG 개요 (1)

타겟 보드의 플래시 메모리에 부트로더 , 커널 이미지 등을

fusing

Page 43: 임베디드 시스템 개발 환경  (1)

43

JTAG 란 ? Joint European Test Access Group

JTAG 은 PCB 와 IC 를 테스트 하기 위한 목적으로 1985 년 조직된 JTAG(Joint Test Action Group) 에 의해 제정된 표준이다 .

Boundary Scan Test

기본 구조 보드 내 소자의 외부 연결점에 하나의 셀을 설치 각각의 셀은 시리얼 쉬프트 레지스터 ( 바운더리 스캔 레지스터 ) 를

형성하고 서로 연결됨 전체적인 인터페이스는 5 개의 핀에 의해서 제어 (TDI, TMS, TCK,

nTRST, TDO) 칩 내부에 Boundary Cell 이란 것을 두어 외부의 핀과 일대

일로 연결시켜 프로세서가 할 수 있는 동작을 중간에 Cell 을 통해 모든 동작을 인위적으로 수행할 수 있어 여러 가지 하드웨어 테스트나 연결 상태 등을 체크할 수 있다 .

JTAG 개요 (2)

Page 44: 임베디드 시스템 개발 환경  (1)

44

JTAG 개요 (3) Boundary-Scan Test Interface JTAG Diagram

소자의 연결 상태점검

Registers

Flash 메모리 write

TAP

Digital

Chip

Page 45: 임베디드 시스템 개발 환경  (1)

45

JTAG 기능 프로세서 (CPU) 의 상태와는 상관없이 디바이스의 모든 외부

핀을 구동시키거나 값을 읽어 들일 수 있는 기능을 제공

회로의 배선과 소자의 전기적 연결상태 test

디바이스간의 연결상태 test

Flash memory fusing

JTAG 개요 (4)

Page 46: 임베디드 시스템 개발 환경  (1)

46

pxa255-pro 의 JTAG 호환 장치 (cpu) 의 구조

cpu 의 각각의 pin 은 BSC (Boundary-Scan Cell) 에 연결되어 있고 , 이 BSC 가 BSR (Boundary-Scan Register) 를 이루게 된다 .

BSC : 각 pin 에 대한 bit 단위의 값 ( 혹은 상태 ) 를 가지게 된다 .

BSR : 모든 BSC 이 연결 되어 하나의 Register를 이루게 된다 .

TDI 로부터 입력된 데이터가 shift 작업을 통해 적절한 위치에 값을 위치시키거나 , 가져올 수 있게 되며 , TDO 를 통해 이 값이 출력된다 .

JTAG 이 테스트 상태일 경우에 동작하며 , IC 동작 상태 일 경우에는 동작 불능 상태가 된다 .

BSRBSC

JTAG I/F Program 설치 및 실행 (1)

Page 47: 임베디드 시스템 개발 환경  (1)

47

PC 를 통한 JTAG 호환 장치의 제어

JTAG I/F Program 설치 및 실행 (2)

Page 48: 임베디드 시스템 개발 환경  (1)

48

PXA255-PRO V1.0 에서 Host 와 Target 의 JTAG Interface

Host 의 parallel port

JTAG port

JTAG I/F Program 설치 및 실행 (3)

Page 49: 임베디드 시스템 개발 환경  (1)

49

JTAG I/F 프로그램 Host PC 에서 jtag interface 를 통하여 target system 의

flash memory 에 data 를 fusing 하는 작업을 간편하게 해주는 프로그램

ftp://ftp.arm.uk.linux.org/pub/linux/arm/people/xscale/lubbock/jtag/ 에서 jtag.0624.tar.bz2 를 다운 받을 수 있다 .

PXA255-PRO V1.0 실습 보드에서는 이 보드에 맞게 수정되어 huins 에서 제공 하는 jtag 프로그램을 사용하여야 한다

JTAG I/F Program 설치 및 실행 (4)

Page 50: 임베디드 시스템 개발 환경  (1)

50

jtag 프로그램 설치 jtag 소스파일 (pxa255-jtag.tar.gz) 을 임시 디렉토리에 복사한다 . Example 에서는 /usr/local/pxa255 에 복사

압축풀기% tar xfvz pxa255-jtag.tar.gz

소스 파일이 있는 디렉토리로 이동% cd pxa255-jtag/jtag-0.4

configure (Makefile 생성 )% ./configure --prefix=/usr/local/pxa255/pxa255-jtag

--with-include=/usr/local/pxa255/pxa255-jtag/include-0.2.3

compile & install% make; make install

반드시 절대 경로로 지정한다 . 하위 디렉토리에도 적용되기 때문

JTAG I/F Program 설치 및 실행 (5)

Page 51: 임베디드 시스템 개발 환경  (1)

51

jtag 설치 확인 /usr/local/pxa255/pxa255-jtag 디렉토리로 이동하여 bin 폴더와 share폴더가 생성되었는지 확인한 후 , 제대로 되었다면 bin 디렉토리를 PATH 에 등록한다

또는 , 실행 파일 jtag 를 기존의 실행 파일을 모아둔 ‘ /bin’ 디렉토리로 복사해 둠으로써 언제든지 접근할 수 있도록 한다

JTAG I/F Program 설치 및 실행 (6)

Page 52: 임베디드 시스템 개발 환경  (1)

52

Jtag 프로그램 실행 이전에 생성한 blob 이미지가 있는 곳으로 이동한 후 jtag

를 실행한다 .

JTAG I/F Program 설치 및 실행 (7)

Page 53: 임베디드 시스템 개발 환경  (1)

53

Jtag 프로그램 실행 다음과 같은 명령을 주어 blob 를 flash 메모리의 0 번지에 올린다 ( 약 3~5분 정도 걸린다 )

JTAG I/F Program 설치 및 실행 (8)

Page 54: 임베디드 시스템 개발 환경  (1)

54

TFTP 서버 설치 및 구동

TFTP 개요

TFTP 서버 설치 및 구동

Page 55: 임베디드 시스템 개발 환경  (1)

55

TFTP? TCP 를 사용하여 신뢰성있는 file 전송을 제공하는 ftp 와 달리 UDP 를 사용하여 file 을 전송하는 protocol

Data 의 전송 중에 오류가 날 확률이 극히 적은 근거리에서 빠르게 file 을 전송 받고자 할 경우에 사용한다

Embedded system 개발 과정에서 kernel image 나 ramdisk 와 같이 용량이 큰 데이터를 bootloader 를 통해 target board 로 빠르게 전송하기 위해 많이 사용한다

Linux 용 TFTP 프로그램 www.rpmfind.net 에서 tftp 로 검색하면 해당 rpm 을 받을 수 있다

TFTP 서버 설치 및 실행 (1)

Page 56: 임베디드 시스템 개발 환경  (1)

56

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

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

% rpm –qa | grep tftp

설치 Host 에 설치가 되어있지 않으면 다음과 같이 설치한다 .

% rpm –ivh tftp-0.32-4.i386.rpm tftp-server-0.32-4.i386.rpm

TFTP 서버 설치 및 실행 (2)

Page 57: 임베디드 시스템 개발 환경  (1)

57

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 /tftpbootper_source = 11cps = 100 2flags = IPv4

}

TFTP 서버 설치 및 실행 (3)

Page 58: 임베디드 시스템 개발 환경  (1)

58

TFTP Server 구동 (cont’) 파일을 전송할 때 사용하는 디렉토리를 /tftpboot 로 만든

다 .% mkdir /tftpboot

TFTP 설정 파일을 편집한 후에는 xinet daemon 에 적용 시키기 위해 xinet daemon 을 재시작 해주어야 한다 .% /etc/init.d/xinetd restart

TFTP 가 현재 제대로 동작하고 있는가 확인한다 .% netstat –a | grep tftp

tftp 가 포함된 행이 보인다면 제대로 동작하고 있는 것이다 .

TFTP 서버 설치 및 실행 (4)

Page 59: 임베디드 시스템 개발 환경  (1)

59

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

ramdisk.gz 복사% cp /mnt/cdrom/ramdisk.gz /tftpboot/

Minicom 을 실행시킨다 .% minicom

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

TFTP 서버 설치 및 실행 (5)

Page 60: 임베디드 시스템 개발 환경  (1)

60

TFTP 사용 예 (cont’) tftp “ 전송할 파일명” ramdisk 를 실행하여 파일을

전송한다 .

TFTP 서버 설치 및 실행 (6)

Page 61: 임베디드 시스템 개발 환경  (1)

61

NFS 구축 및 실행

NFS 구축 환경

NFS 실행

Page 62: 임베디드 시스템 개발 환경  (1)

62

NFS – 구성 (1)

NFS 구축 (1)

Ethernet 을 사용한 NFS 통신

Page 63: 임베디드 시스템 개발 환경  (1)

63

NFS – 구성 (2)

NFS 구축 (2)

192. 168. 1. *

Host

192.168.1.100

Target

192.168.1.101

Page 64: 임베디드 시스템 개발 환경  (1)

64

설치 준비 - NFS 설정을 위해 아래와 같은 환경이 필요 LAN Direct Cable Linux 운영체제가 설치되어 있는 PC(Host) PXA255-pro 실습 보드 (Target)

Lan cable 은 direct 나 cross cable 모두 사용가능하나 이 자료에서는 direct cable 을 사용한다 .

NFS 구축 (3)

Page 65: 임베디드 시스템 개발 환경  (1)

65

NFS– nfs 용 공유 disk 만들기 (1) NFS(network file system) 란 client 가 server 상에 있는

file 혹은 file system 에 대하여 여과 없는 접근 권한을 지원하는 네트워크 파일시스템

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

NFS 구축 (4)

Page 66: 임베디드 시스템 개발 환경  (1)

66

NFS– nfs 용 공유 disk 만들기 (2) Host 와 target 의 통신을 위해서 host 의 방화벽 설정을 변경한다 .

NFS 구축 (5)

Page 67: 임베디드 시스템 개발 환경  (1)

67

NFS– nfs 용 공유 disk 만들기 (3) Host 와 target 의 통신을 위해서 host 의 방화벽 설정을 변경한다 .

NFS 구축 (6)

Page 68: 임베디드 시스템 개발 환경  (1)

68

NFS – nfs 용 공유 disk 만들기 (4) 일반적으로 lan card 가 1개이므로 광대역 IP 를 같이 쓰면서

target 과 사설 ip 로 통신하기 위해서 IP aliasing 이 필요 IP aliasing 설정 파일을 아래와 같이 copy 한다

NFS 구축 (7)

Page 69: 임베디드 시스템 개발 환경  (1)

69

NFS – nfs 용 공유 disk 만들기 (5) 아래 그림과 같이 copy 한 파일을 편집한다 .

NFS 구축 (8)

Page 70: 임베디드 시스템 개발 환경  (1)

70

NFS – nfs 용 공유 disk 만들기 (6) 먼저 Host 에서 nfs 디렉토리를 만든다 .

NFS 구축 (9)

Page 71: 임베디드 시스템 개발 환경  (1)

71

NFS– nfs 용 공유 disk 만들기 (7) 만들어진 directory 를 export 시켜야 한다 .

NFS 구축 (10)

Page 72: 임베디드 시스템 개발 환경  (1)

72

NFS – nfs 용 공유 disk 만들기 (8) 만들어진 디렉토리를 export 할 수 있도록 vi 를 이용하

여 /etc/exports 파일을 다음과 같이 편집한다 .

NFS 구축 (11)

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

Read/ write

Page 73: 임베디드 시스템 개발 환경  (1)

73

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

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

NFS 구축 (12)

Page 74: 임베디드 시스템 개발 환경  (1)

74

NFS – nfs 용 공유 disk 만들기 (10) NFS 로 mount 시킬 target 의 디렉토리를 만든다 . NFS server 와 target 의 디렉토리를 nfs 파일 시스템 형으로

mount 시킨다 .

NFS 구축 (13)

Host IP address

Page 75: 임베디드 시스템 개발 환경  (1)

75

NFS – nfs 용 공유 disk 만들기 (11) cat /etc/mtab 을 이용하여 mount 성공여부 체크 Mount 전

NFS 구축 (14)

Page 76: 임베디드 시스템 개발 환경  (1)

76

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

NFS 구축 (15)

Page 77: 임베디드 시스템 개발 환경  (1)

77

NFS – nfs 용 공유 disk 만들기 (13) 설치가 끝나면 Host 의 /home/share 와 Target 의

/mnt/nfs 는 같은 디렉토리의 의미를 가지게 됨 . Host 의 /home/share 에 nfs_success 라는 파일을 만들면

Target 의 /mnt/nfs 에서 이 file 을 ls 명령어로 확인할 수 있음 .

Host 에서 nfs_success 라는 파일을 제작

NFS 구축 (16)

Page 78: 임베디드 시스템 개발 환경  (1)

78

NFS – nfs 용 공유 disk 만들기 (14) Target 에서 nfs_success 라는 파일을 확인

NFS 구축 (17)

Page 79: 임베디드 시스템 개발 환경  (1)

79

NFS – nfs 용 공유 disk 만들기 (15) umount 명령을 이용하여 mount 해제

NFS 구축 (18)