@ 1st step, Bootloader Loading
1) Serial Port 연결
-. 목적 : Debugging 용도
-. 사용 툴 : DNW 실행
-. 연결방법 : 메뉴에서 [Serial Port] - [Connect] 수행하여 PC와 Serial Port 연결
-. 특징 : RS-232 port, 9 pin cable
2) Target Board 부팅 시 Bootloader Prompt 진입
-. Prompt 에서 어떤 명령을 내려야 하지?
-. Bootloader 역할 : "OS Loading" 을 위한 SW
3) 어떻게 OS Loading 하는가?
-. Linux는 부팅을 위해 Bootloader, Kernel, File System이 필요
-. 먼저, OS(Linux Kernel) Loading을 해야 하는데...
-. Host PC에 존재하는 zImage(Kernel Image)를 어떻게 Target Board로 옮기지?
--------------------
File System
--------------------
Linux Kernel
--------------------
Bootloader <-- 현재 위치, Host에 존재하는 Linux Kernel을 끌어올 방법이 필요...
--------------------
H/W
@ 2nd step, Kernel & FileSystem Loading
① TFTP는 source IP, destination IP, filename 만 있으면 파일 전송이 가능한 간단한 프로토콜임
② Host PC에서 build한 Kernel과 File System을 Target Board에 Loading하기 위해 사용
③ Host PC에 TFTP Server를 구동
④ Target Board는 TFTP Client를 이용하여 Server에 파일 전송을 요청
@ TFTP Server 설정 (Host PC)
# apt-get install nfs-kernel-server tftpd tftp xinetd // nfs, tftp 설치
# vi /etc/xinetd.d/tftpd // tftp scripter 파일 편집
# netstat -au // tftp server 동작 확인
서버 설정 시 주의할 사항들
1) Virtual Machine 네트워크 설정 : NAT -> Bridged 변경 후 Reboot
2) eth0 인터페이스 up : ifconfig eth0 192.168.100.2 up
3) Windows 네트워크 설정 : 사용할 '로컬 연결 영역' 제외하고 나머지 '사용 안함'으로 변경
Reference
http://askubuntu.com/questions/201505/how-do-i-install-and-run-a-tftp-server
@ TFTP Client 요청 (Target Board)
-. DNW.exe 실행 후 Serial Port Connect 수행
-. Target Board 전원 On
-. 서버로 Kernel과 File System 전송 요청
# tftp 30c00000 zImage
# tftp 30800000 ramdisk.gz
# go linux // or go 30c00000, Linux는 자체 부팅 능력이 없으므로 이렇게 실행해 줌
@ 3rd step, File Transfer from Host PC to Target
① NFS는 원격의 물리 장치를 로컬 물리 장치처럼 사용하는 방법
② Host PC와 Target이 파일을 공유하기 위해 사용
③ Host PC에 NFS Server를 구동
④ Target Board는 Server의 특정 디렉터리를 NFS 타입으로 mount 하여 사용
@ NFS Server 설정 (Host PC)
1) Serial Port 연결
-. 목적 : Debugging 용도
-. 사용 툴 : DNW 실행
-. 연결방법 : 메뉴에서 [Serial Port] - [Connect] 수행하여 PC와 Serial Port 연결
-. 특징 : RS-232 port, 9 pin cable
2) Target Board 부팅 시 Bootloader Prompt 진입
-. Prompt 에서 어떤 명령을 내려야 하지?
-. Bootloader 역할 : "OS Loading" 을 위한 SW
3) 어떻게 OS Loading 하는가?
-. Linux는 부팅을 위해 Bootloader, Kernel, File System이 필요
-. 먼저, OS(Linux Kernel) Loading을 해야 하는데...
-. Host PC에 존재하는 zImage(Kernel Image)를 어떻게 Target Board로 옮기지?
--------------------
File System
--------------------
Linux Kernel
--------------------
Bootloader <-- 현재 위치, Host에 존재하는 Linux Kernel을 끌어올 방법이 필요...
--------------------
H/W
@ 2nd step, Kernel & FileSystem Loading
① TFTP는 source IP, destination IP, filename 만 있으면 파일 전송이 가능한 간단한 프로토콜임
② Host PC에서 build한 Kernel과 File System을 Target Board에 Loading하기 위해 사용
③ Host PC에 TFTP Server를 구동
④ Target Board는 TFTP Client를 이용하여 Server에 파일 전송을 요청
@ TFTP Server 설정 (Host PC)
# apt-get install nfs-kernel-server tftpd tftp xinetd // nfs, tftp 설치
# vi /etc/xinetd.d/tftpd // tftp scripter 파일 편집
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
# /etc/init.d/xinetd restart // xinetd 데몬 재시작# netstat -au // tftp server 동작 확인
서버 설정 시 주의할 사항들
1) Virtual Machine 네트워크 설정 : NAT -> Bridged 변경 후 Reboot
2) eth0 인터페이스 up : ifconfig eth0 192.168.100.2 up
3) Windows 네트워크 설정 : 사용할 '로컬 연결 영역' 제외하고 나머지 '사용 안함'으로 변경
Reference
http://askubuntu.com/questions/201505/how-do-i-install-and-run-a-tftp-server
@ TFTP Client 요청 (Target Board)
-. DNW.exe 실행 후 Serial Port Connect 수행
-. Target Board 전원 On
-. 서버로 Kernel과 File System 전송 요청
# tftp 30c00000 zImage
# tftp 30800000 ramdisk.gz
# go linux // or go 30c00000, Linux는 자체 부팅 능력이 없으므로 이렇게 실행해 줌
@ 3rd step, File Transfer from Host PC to Target
① NFS는 원격의 물리 장치를 로컬 물리 장치처럼 사용하는 방법
② Host PC와 Target이 파일을 공유하기 위해 사용
③ Host PC에 NFS Server를 구동
④ Target Board는 Server의 특정 디렉터리를 NFS 타입으로 mount 하여 사용
# vi /etc/exports // nfs 설정파일 편집
...
/tftpboot *(rw,no_root_squash,no_all_squash,async)
# exportfs -r // nfs 설정 확인
# /etc/init.d/nfs-kernel-server restart // nfs server 재시작
# netstat -au // nfs server 동작 확인
@ NFS Client 설정 (Target Board)
-. Target Board 전원 On
-. Kernel, File System Loading 하여 shell까지 진입
-. NFS Server로 mount 요청
# mount -t nfs 192.168.100.2:/tftpboot /mnt/nfs
-. PC와 Target에서 동기화되는지 확인
-. Kernel, File System Loading 하여 shell까지 진입
-. NFS Server로 mount 요청
# mount -t nfs 192.168.100.2:/tftpboot /mnt/nfs
-. PC와 Target에서 동기화되는지 확인
@ TFTP와 NFS의 차이점
① NFS는 Linux 부팅 완료 후에만 가능
② 하지만 PC작업과 Target 작업이 그대로 동기화되는 장점이 있음
② 하지만 PC작업과 Target 작업이 그대로 동기화되는 장점이 있음
No comments:
Post a Comment