2013 년 2 학기 임베디드 프로그래밍. 권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC.

Slides:



Advertisements
Similar presentations
1 장 Unix/Linux 소개 1 Helpers. 1 장 내용 1. 왜 유닉스인가 ? 2. 유닉스 시스템 구조 3. 유닉스 역사 및 버전 4. 리눅스 설치 ( 별도 2 시간 실습 ) 5. 사용 환경 6. 사용자 계정 관리 Unix/Linux 2.
Advertisements

Geek-OS 단국대학교 정영진 Geek-OS 설치 및 개발환경구축 정영진
Embedded System Lab. II GUI Programming in Embedded Linux 경희대학교 컴퓨터공학과 조 진 성.
KAIST 09 SPARCS 10 안재만 (Kuss).  OS  Kernel & Shell  OS Layer  Linux  Linux / GNU  Linux 역사  Linux 배포판  Linux Directories.
21. XEN KAIST 10 / SPARCS 11 alphamin ( 유민정 ). Contents 1. Virtualization 2. Installing Xen 3. Reference.
2.1 컴퓨터 시스템의 구성 2.2 컴퓨터 시스템의 정보 표현 2.3 중앙처리장치 2.4 저장장치 2.5 컴퓨터 주변기기
Distributed and Cloud Computing Lab. Embedded System Software 개발 환경 설정 Dept. of Computer Science and Engineering Sogang University, Seoul, KOREA 1.
Root File System 충북대학교 지능로봇연구실.
개발 환경 설치 Embedded System Software
EZ Board-M In-Ho, Roh Real Time System Lab.
임베디드 시스템 개발 환경 (1) Lecture #3.
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
AVR 5관절 로봇 암 활용 예제.
임베디드 시스템 개발을 위한 리눅스 환경설정.
SPARCS Current Status SPARCS08 logue 김도국.
기술부 1차 세미나 - SGE * Clunix 클루닉스 2006년 기술부/부장 서진우
1장 유닉스 소개.
4. 시스템 관리 기본 naldo.
Redhat Linux 설치 과정.
BIG Data 컴퓨터응용과학부 박진완.
Windows CE 시스템 개발 환경 구축.
제6장 FUSING.
Cross Compiler를이용한 커널 컴파일 및 포팅
PXA270 개발환경 설정 Ubuntu 실습용.
개발 환경 개발 환경 개요 PXA270과 타겟 시스템 툴체인 환경 구축 JTAG 유틸리티 미니컴 Make 유틸리티
크로스 컴파일 환경 구축.
PC1 E0 R1 로컬 Host 파일 브로드 캐스트 LMHOSTS 조회 Host 파일 조회 DNS Server 조회
NFS, FTP coearth, george.
제16장 QT/Embedded.
Kernel Porting Lecture #7.
제4장 Cross Compiler 설치.
Install & Simulation VLSI 시스템 설계
컴퓨터 기초 상식 하드 웨어.
Geek OS Setup 정범종
Minicom,tftp,nfs설정,vnc설정
FUSING.
Tftp, nfs, samba 실습 임베디드 시스템 I.
Linux를 이용한 Embedded 장비 개발
임베디드 리눅스 시스템의 기본 개념 강의 목표 내용 임베디드 리눅스 시스템의 기본 개념과 주제 제시 1. 임베디드 시스템
목차 커널의 개념 및 기능 커널 포팅 램디스크.
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
Development Environment of Embedded System : part 1
임베디드 리눅스 설치 및 동작 Lecture #5.
전원설비 포인트연결어댑터 교육자료 주식회사 필 트 론.
컴퓨터 구조.
Double O to the I to the A+ 문무활, 유용승, 홍민정
임베디드 시스템 개론 3주차 Embedded System..
Embedded System Porting (2)
임베디드 소프트웨어 동향. 임베디드 소프트웨어 동향 임베디드 S/W 시장분류 솔루션 측면 시스템 측면 운영체제 개발도구 설계도구 테스트도구 유선통신 무선통신 정보가전 자동차제어 산업자동화 사무자동화 군사/항공우주 의료장비 솔루션 공급 업체 임베디드 S/W시장 임베디드.
개발 환경.
부트로더와 커널 이미지 부트로더 개요 타겟 시스템 부트로더 분석 부트로더 생성 커널 빌드 과정 커널 컴파일 규칙 커널 포팅
Cross Compiler 설치.
Host PC & Target Board 환경설정 Embedded Linux Image 올리기
HBE-SMIII-SV210 리눅스 커널과 디바이스 드라이버
IPv6 기반의 Mobile IP 기술 개발 (iSCSI 성능 분석) - 프로젝트 중간보고서 -
실시간 자원 량 정보 제공을 결합한 Heartbeat
Cross Compiler를이용한 커널 컴파일 및 포팅
Mips cross compile OS LAB.
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
Day-19(Tue_10.02) 이론적인 배경 Hypervisor(Type1) : 물리적인 자원을 추상화해서 관리해줌
「 LINUX IBM SpectrumScale 설치 가이드」
인터넷보안 실습 2012년 1학기.
임베디드 시스템 개론 임베디드 타겟 보드 포팅 및 H/W 제어 3일차 강의 자료 Embedded System Lab.
소리가 작으면 이어폰 사용 권장!.
Linux 9.X 기초에서 활용까지 Chapter 03 리눅스 설치.
컴퓨터의 열을 잡자 컴퓨터는 열이 큰 적. 지나치게 온도가 올라가면 윈도우에서 알 수 없는 오류 메시지가 뜨거나 심할 땐 시스템이 멈춰버린다. PC의 열을 알맞게 관리하는 것은 PC의 성능과 안정성을 높이는 데에 큰 도움. [ 열을 발생하는 장치들 ] CPU 작동으로 인한.
Serial, Parallel, USB, Ethernet
임베디드 리눅스 설치 및 동작 Lecture #5.
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
게임 엔진 ~인체 대 탐험~ 조주열.
Presentation transcript:

2013 년 2 학기 임베디드 프로그래밍

권장사양  HOST PC 권장사항  리눅스 배포판이 설치된 PC - 권장 배포판 : Asianux open edition3 ( 라곤 하지만 Ubuntu, Fedora, CentOS 등 다양한 리눅스 프랫폼이 가능 )  PC 사양  CPU : Pentium 2.4 G 이상 / AMD sempron 2400 이상  (x64 인 경우 32bit 용 배포판을 설치하여 사용한다 )  RAM : 256MB 이상  HDD : 1.5GB 이상의 여유공간  VGA : 리눅스 드라이버 호환 모델 ( ATI, Geforce, Matrox 등 )  Parallel : 1 port (xdb 사용시, *usb to parallel 사용 불가 )  Ethernet : 1 port (2 port 권장 )  Serial : 1 port (*usb to serial 사용가능 )  CD-rom : 32x 이상  즉, 요즘 컴퓨터에서는 다 돌아감

주의사항  리눅 설치 시 주의사항  파티션은 일반 ext3 로 포맷한 후 사용하며, 보안관련 체크를 하게 될 경우 NFS 등의 문제가 발생 할 수 있다.  xinetd, tftp, NFS, minicom 등의 패키지는 개발 시 꼭 필요하므로 최초 설치 시 같이 설치하는 것이 좋다. ( 라곤 하지만 NFS 는 없어도 되는 듯 )  주의 : VMWARE 를 이용하여 리눅스를 설치할 경우, Host PC 자원 분리로 컴파일 시간이 오래 걸리고 가상 PC 내에서 실제 디바이스 제어가 잘 안될 수 있다. ( 라곤 하지만 요즘 컴퓨터는 좋아서 괜춘 )

Ubuntu 에서 root 계정 사용  작업 시 root 로 로그인 하면 GUI 환경에서 작업하기 용이하고 sudo 등의 명령어를 입력할 필요가 없음  우분투에서는 보안상 이유로 인해 기본적으로 root 계정 로그인이 설정되어있지 않음  설치 시 생성하는 계정은 일부 super 유저 권한을 가진 주작업 계정이지 root 계정은 아님  터미널에서 sudo passwd root 를 입력해 root 계정의 암호를 설정한다  sudo geidt /etc/lightdm/lightdm.conf 를 입력하고 greeter-show-manual- loign=true 를 추가해 준다 이제 로그인화면에서 root 를 입력하고, 암호를 치면 root 로그인이 가능하다

필요프로그램 설치  minicom : apt-get install minicom  gcc : apt-get install gcc  automake : apt-get install automake  ncurses-devel : apt-get install libncurses5-dev  xinetd 설치 : apt-get install xinetd*  시작 : service xinetd start <- 이게 안되면 /etc/init.d/xinetd start <- 요거 실행  tftpd : apt-get install tftp tftpd

tftpd 설정  /etc/xinetd.d/tftp 파일수정 ( 없을시 생성 ) gedit /etc/xinetd.d/tftp  tftpboot 디렉토리 생성 : mkdir /tftpboot 혹시모르니 chmod 777 /tftpboot disable= no server_args= -s /tftpboot

tftpd 설정  xinetd 재시작 : service xinetd restart <- 이게 안되면 /etc/init.d/xinetd restart <- 요거 실행  tftp 동작 확인 : netstat -au

보드연결  보드 연결  X-Hyper320-TKU 의 메모리, TFT LCD 및 CPU 등의 소형 칩셋은 작은 충격에도 손상될 우려가 있기 때문에 항상 조심히 다루어야 한다.  전원이 인가 된 후에는 LCD 및 케이블 등에 항상 유의하기 바란다.

보드연결  Serial 연결  시리얼 케이블을 연결한다. X-Hyper320-TKU 에는 그림과 같이 시리얼 케이블로 보드의 DEBUG1 이라고 쓰여져 있는 시리얼 커넥터와 호스트 PC 의 Com 포트에 연결해주면 된다.

보드연결  Serial 연결  시리얼 케이블을 연결한다. X-Hyper320-TKU 에는 그림과 같이 시리얼 케이블로 보드의 DEBUG1 이라고 쓰여져 있는 시리얼 커넥터와 호스트 PC 의 Com 포트에 연결해주면 된다.

보드연결  Ethernet 연결  이더넷 크로스 케이블 (Ethernet cross cable) 을 연결한다. X- Hyper320-TKU 의 이더넷 포트 (Ethernet port) (LAN) 와 Host PC 의 RJ45( 이더넷 카드 ) 를 제공한 크로스 (Cross) LAN 케이블로 연결한다 (X-Hyper320-TKU 를 이더넷 허브에 직접 연결하려면 일반 Direct LAN cable 을 연결하면 된다 ).

시리얼 세팅  Serial setting  리눅스에서 Serial setting 을 하기 위해서 –s 옵션으로 minicom 설정창을 띄운다.

시리얼 셋팅  Serial setting  Minicom –S 명령을 입력하면 다음과 같은 화면을 볼 수 있다.

시리얼 세팅  Serial setting  “Serial port setup” 에서 Bps N1, Hardware Flow Control : NO 로 세팅한다

시리얼 세팅  Serial setting  * Serial Device 에서 /dev/ttyS0 는 COM1, /dev/ttyS1 은 COM2 이다 USB to serial 을 사용할 경우 /dev/ttyUSB0 로 시작된다.  설정이 모두 끝났으면 “Save setup as dfl" 로 저장하고 종료 한 후 다시 minicom 을 실행한다.

Tool-Chain  크로스 컴파일러란 ?  네이티브 (native) 컴파일러 PC 라는 동일한 환경에서 프로그램을 작성한다. PC 에서 프로그램을 짜고 컴파일하고, 실행 파일을 PC 에서 수행  크로스 (cross) 컴파일러 컴파일러가 동작하는 시스템과 컴파일러에 의해서 생성된 실행 파일이 동작

 Tool-Chain 개발에 필요한 Compiler, 각종 Debugger, library, Util 등을 모아 놓았다는 뜻이다. 가장 중요한 것은 gcc 컴파일러이다. 또한 gcc 사용하기 위해 필요한 binutils 도 포함 binutils 는 바이너리를 다루는데 사용된다. C 라이브러리를 사용하는 것을 제외한 나머지 대부분의 커널을 컴파일 Tool-Chain

 CD 전체의 내용을 320TKU 라는 폴더를 만들어서 복사한다  본인은 /root/320TKU/ 에 복사하였다  그런데 제조사에서 CD 체크를 안해서 간혹 재수없게 내용이 잘못된 경우가 있다. 그러므로 ftp://os2.sch.ac.kr 에 있는 320TKU.zip 파일을 다운받아 쓰길 추천한다.ftp://os2.sch.ac.kr CD 복사

 호스트 PC 리눅스를 부팅 한 후치 터미널을 열어 “/usr/local/” 폴더에 “arm-linux tgz” 을 복사하고, 압축을 해제 한다. Tool-Chain 설치

 Tool-Chain 설치  “/usr/local/arm-linux-4.1.1/bin” 폴더 내용을 확인 Tool-Chain

 Tool-Chain 설치 및 PATH 설정 “/etc/environment” 내용을 geidt 를 이용해 조금 전 폴더의 위치인 “:/usr/local/arm-linux-4.1.1/bin/” 을 추가 Tool-Chain

 “/etc/environment” 파일에서 PATH 를 수정한 후 수정된 내용을 “source /etc/environment” 로 적용시켜 준다 Tool-Chain 설치

PATH 가 적용된 것을 확인 어떤 경로에서건 해당 명령어를 실행 가능 Tool-Chain 설치

리눅스용 c 컴파일러 컴파일 명령어 : gcc -o gcc

컴파일된 프로그램의 실행 ‘.’ 으로 실행./ 실행파일경로 / 실행프로그램이름 gcc

 컴파일을 자동화해주는 명령어 생성 프로그램  최종 목표 파일 (target file) 의 빌드 (Build) 과정을 정의해두면 필요한 작업만 수행하여 목표 파일을 생성  종속된 파일들의 상호 의존 관계를 명시한 목록 파일 (description file) 을 사용하여 목표 파일을 생성  원시 파일의 일부가 수정되면 목표 파일을 새롭게 생성하기 위해 다시 컴파일할 파일을 자동으로 판단, 필요한 명령어만 이용해 다시 컴파일하는 지능적인 유틸리티  다중 모듈 프로그램의 재사용성을 유지하고 프로그램 수정에 대한 재번역을 최소화 Make 유틸리티

 목록 파일 – 컴파일 할 것들의 명령어 목록을 모아둠  기본적으로 Makefile 혹은 makefile 이라는 파일 이름을 사용  목표 파일, 부품 파일, 일련의 명령어로 구성  복수의 컴파일 명령어가 존재 가능 Make 유틸리티 my_hello: hello.c gcc -o hello hello.c

Make 유틸리티 Makefile 이라는 이름으로 저장 후 make 실행

 Make 유틸리티의 사용 목록 파일 이름이 makefile 혹은 Makefile 라면 –f 옵션을 사용해 목록 파일임을 명시할 필요 없음  목표파일 : 목록 파일 안에 들어있는 이름들 중 하나 ( 청록색 )  hello 를 생성하기 위한 Makefile first_hello: hello_1.c gcc –o f_hello hello_1.c second_hello: hello_2.c gcc –o s_hello hello_2.c Make 유틸리티

 부트스트랩 로더 (bootstrap loader) 의 준말로 컴퓨터를 사용자가 사용할 수 있도록 디스크나 플래시에 저장된 운영체제를 읽어 주기억장치에 적재해주는 프로그램  부트로더의 종류  LILO(LInux LOader)  GRUB(GRand Unified Boot loader)  NTLDR(NT LoaDeR)  BOOTX  ARMBOOT  BLOB(Boot Loader Object) - 우리가 쓰는것  BOOTLDR  PPCBOOT  REDBOOT  U-BOOT(Universal BOOTloader) 부트로더

 부트스트랩 로더 (bootstrap loader) 의 준말로 컴퓨터를 사용자가 사용할 수 있도록 디스크나 플래시에 저장된 운영체제를 읽어 주기억장치에 적재해주는 프로그램  부트로더의 종류  LILO(LInux LOader)  GRUB(GRand Unified Boot loader)  NTLDR(NT LoaDeR)  BOOTX  ARMBOOT  BLOB(Boot Loader Object) - 우리가 쓰는것  BOOTLDR  PPCBOOT  REDBOOT  U-BOOT(Universal BOOTloader) 부트로더

 부트로더를 생성하려면 툴체인이 설치되어 있어야 함  생성된 부트로더는 jflashmm 이나 이미 설치된 부트로더의 부트 명령을 이용해 타겟 시스템에 있는 플래시 메모리에 퓨징  BBOOT 소스 코드와 make 를 이용해 부트로더 이미지를 생성 부트로더

부트로더 빌드 (boot.bin) CD 다 복사했죠 ? 320TKU 폴더의 Kernel 폴더 안에 있는 linux.tar.gz 압축 해제, 320TKU 폴더의 Bootloader 폴더에 있는 Bootloader.tgz 압축도 해제

부트로더 빌드 (boot.bin) - blob 빌드 해제 후 320TKU 폴더의 Bootloader 폴더에 있는 blob 폴더로 이동 후 아래 명령 실행 export PATH=$PATH:/usr/local/arm-linux-4.1.1/bin 그다음./config.sh 라고 실행하면 좌르륵 컴파일이 진행됨 컴파일 된 결과는 어디 있냐면...

부트로더 빌드 (boot.bin) - blob 빌드 320TKU/Bootloader/blob/src/blob 에 blob 라는 파일이 컴파일 된 최종 결과물이다.

부트로더 빌드 (boot.bin) - mobm 빌드 이번에는 320TKU 폴더의 Bootloader 폴더에 있는 mobm 디렉토리로 이동 후 아래 명령 실행 export PATH=$PATH:/usr/local/arm-linux-4.1.1/bin 그다음 make 를 실행 그러면 뭐라 또 주르륵 컴파일이 됨 결과물은 어디있냐

부트로더 빌드 (boot.bin) - mobm 빌드 320TKU/Bootloader/mobm 폴더에 mobm 이라는 파일이 최종 컴파일 결과물

부트로더 빌드 (boot.bin) 이제는 blob 파일과 mobm 파일을 합쳐서 boot.bin 파일을 만들어야 할 차례  320TKU/Bootloader/image 에 있는 mk_boot.sh 를 실행하면 됨  얘가 무슨 일을 해주는건지 궁금한 사람들은 geidt 로 열어보면 대충 ‘ 두 개 파일을 복사해서 합치는거구나..’ 하고 알 수 있다

부트로더 퓨징 이제 위 처럼 boot.bin 파일을 만들었으니까 이걸 보드에 다운로드 해서 설치를 해야 함 혹시 전에 tftpboot 라는 폴더 만들었던거 생각나는지 ? boot.bin 파일을 그 폴더로 복사 함. 그리고 보드에 랜선, 시리얼케이블을 PC 와 연결하고 PC 터미널에서 minicom 실행한 다음에 보드 전원을 올리세요

부트로더 퓨징  임베디드 보드에서 (minicom 창 ) tftp boot.bin 을 실행하면 PC 로 부터 파일을 다운로드 함  nand_format 후 nand_reinit  nand_write boot.bin 을 실행하면 퓨징 완료  reboot 를 입력하여 재부팅  BLOB 모드로 부팅 가능  이후 BLOB 모드에서 커널이미지 등을 다운 후 설치할것임

보드는 어떻게 작동 되나 ?  dummy 라는 이미지가 있어서 이것이 부트로더 (boot.bin) 을 설치할 수 있게 해줌 부트로더가 설치되면 더미모드로는 부팅이 안됨  boot.bin 이 설치되어 있으면 blob 모드로 부팅해서 임베디드용 리눅스 이미지를 설치할 수 있게 해줌  리눅스 이미지까지 다 포팅이 되어 있으면 정상적으로 부팅 가능  실수로 부트로더를 망가뜨리면 윈도우에서 예전에 했던 작업을 해서 dummy 이미지를 설치해야함. 그 뒤 부트로더를 설치하고, 리눅스 이미지를 설치해야함.

 ZMODEM 을 사용해 호스트 시스템과 타겟 시스템 사이의 직렬 통신이 가능  미니컴에서 ZMODEM 을 기동하여 파일 송수신 가능 ftp 를 이용하지 않고 시리얼 통신으로도 파일 전송 가능

a. ARM 용 실행 파일 hello-arm([ 실습 4-3] 에서 툴체인을 이용해 생성 ) 을 /embed/ex/05 디렉토리로 복사 a. 미니컴 실행 a. 타겟 시스템의 전원을 켜고 자동 부팅 b. [Ctrl] + [A] 와 [Z] 키 입력 → 미니컴 도움말 화면에서 [S] 키 입력 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송 ① ② ③ ④

a. ARM 용 실행 파일 hello-arm([ 실습 4-3] 에서 툴체인을 이용해 생성 ) 을 /embed/ex/05 디렉토리로 복사 a. 미니컴 실행 a. 타겟 시스템의 전원을 켜고 자동 부팅 b. [Ctrl] + [A] 와 [Z] 키 입력 → 미니컴 도움말 화면에서 [S] 키 입력 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송 ① ② ③ ④

a. ZMODEM 을 선택 후 [Enter] 키 입력 a. ARM 용 실행 파일이 있는 /embed/ex/05 디렉토리로 이동. 디렉토리 이동은 메뉴에서 [  ] 와 [  ] 키를 사용해 원하는 디렉토리로 커서를 옮긴 후 [Space] 키를 두 번 입력 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송

전송할 파일로 이동 후 [Space] 키를 한 번 눌러 파일 선택 a. [Enter] 키를 눌러 선택한 파일 전송 a. 완료 후 아무 키나 눌러 타겟 시스템의 프롬프트가 나타나면 전송 받은 파일을 타겟 시스템에서 실행 실습 5-1 실습 5-1 ZMODEM 을 이용한 이미지 전송 ① ②

 커널 환경 설정 유틸리티  make config  make menuconfig  make xconfig 커널 ( 리눅스이미지 ) 빌드 과정

 커널 환경 설정 커널 빌드 과정

 320TKU 폴더에 Kernel 폴더안에 압축을 풀었던것을 기억할것이다. Linux 폴더에 들어가보면 Makefile 이 있는데 이것을 수정해야한다. 450 번째줄에 config %config: scripts_basic outputmakefile FORCE 를 %config: scripts_basic outputmakefile FORCE 로 수정한다. 커널 빌드하기

 make WENDERS_defconfig 를 실행하면 알아서 커널 빌드 옵션을 기본 설정으로 만들어준다  make meunconfig 를 실행하면 수동으로 하나하나 설정이 가능하다.  이후는 교재 95~122 를 진행하면 된다. 커널 빌드하기