Chapter. 5 Embedded System I Bootloader, Kernel, Ramdisk Professor. Jaeheung, Lee

Similar documents
Microsoft PowerPoint - 03-Development-Environment-2.ppt

슬라이드 제목 없음

Microsoft PowerPoint - em8-리눅스설치.ppt

Microsoft PowerPoint - 06-CompSys-11-System.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint - 02-Development-Environment-1.ppt

Mango220 Android How to compile and Transfer image to Target


망고100 보드로 놀아보자-4

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

목차 개발환경 JTAG Bootp TFTP NFS 1

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

슬라이드 1

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

Chap 5 루트파일시스템 (Root F/S)

PowerPoint 프레젠테이션

Chap 10 안드로이드커널 (Kernel)

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 1

MV6410 Linux 마이크로비젼 MV6410-LCD Linux 활용가이드 마이크로비젼 MV6410 Linux 1

PowerPoint 프레젠테이션

Adobe Flash 취약점 분석 (CVE )

Microsoft Word - Fedora Core 9 개발환경 최종본.docx

PowerPoint Presentation

Microsoft PowerPoint - ARM 개발 환경.ppt

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

페도라 코어 5 설치 가이드

망고100 보드로 놀아보자 -13

Code Generation in Rapid

KEY 디바이스 드라이버

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

휠세미나3 ver0.4

문서 대제목

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

Microsoft Word - Armjtag_문서1.doc

DE1-SoC Board

ESP1ºÎ-04

PowerPoint 프레젠테이션

1217 WebTrafMon II

Tizen

Microsoft PowerPoint 통신 및 압축 명령어.ppt

망고 M 카메라 포팅 가이드

PowerPoint 프레젠테이션

교육지원 IT시스템 선진화

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

벤처연구사업(전동휠체어) 평가

<4D F736F F D20B1B9B0A1BAB020BEC6C0CCC7C720C2F7B4DC20B0A1C0CCB5E5>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

LN_5_Rootfs

Microsoft Word ARM_ver2_0a.docx

작성자 : 기술지원부 김 삼 수

작성자 : saint Overview BackTrack 는 LILO 를부트로더로사용한다. BactTrack 을기본환경설정그대로설치하면부팅할수없는경우가있는데, 이것은실린더크기가 1024 보다큰하드디스크에설치하면 LILO 가 OS 를정상적으로읽어올수없기때문이다. 요즘나오는

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

untitled

Abstract View of System Components

PowerPoint 프레젠테이션

Remote UI Guide

LXR 설치 및 사용법.doc

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

untitled

chapter1,2.doc

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

Chapter #01 Subject

<4D F736F F D E20B4DCB8BB20C1A1B0CB20B9D720C1B6C4A120B8C5B4BABEF35F76312E335F2E646F63>

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - LN_10_rootFS.ppt [호환 모드]

PowerPoint 프레젠테이션

Discrete Mathematics

Microsoft PowerPoint - Cross Development Environment [호환 모드]

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

<4D F736F F F696E74202D20C0BDBCBA484D4920C0FBBFEB20C5DAB7B9B8C5C6BDBDBA20B4DCB8BBB1E228B9DFC7A5C0DAB7E129>

Microsoft PowerPoint APUE(Intro).ppt

Microsoft Word _LT_리눅스 마운트강좌 mount 1편.doc

Microsoft Word - MV210_CPUSpec.doc

(SW3704) Gingerbread Source Build & Working Guide

Microsoft PowerPoint - chap01-C언어개요.pptx

PCServerMgmt7

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

5" TFT- LCD 및감압터치지원 : 800x480 USB Host 2.0, USB OTG 2.0, GPS, Wireless LAN, Ethernet 10/100Mbps 통신지원 300 만화소 CMOS Image Sensor 고해상도카메라모듈내장 전원은베이스보드에서공

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

vm-웨어-앞부속

Microsoft Word - zfs-storage-family_ko.doc

Microsoft PowerPoint - e7.pptx

Sun Java System Messaging Server 63 64

Abstract View of System Components

<3032B0AD202D20B8AEB4AABDBA20BCB3C4A12D556E6978C0CEC5CDB3DDBAB8C3E6C7D0BDC02E687770>

RealDSP UT 프로그램 메뉴얼

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

교육지원 IT시스템 선진화

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Transcription:

Chapter. 5 Bootloader, Kernel, Ramdisk Professor. Jaeheung, Lee

목차 Bootloader Kernel File System 1

Bootloader Bootloader 란? 리눅스커널부팅이전에미리실행되면서커널이올바르게부팅되기위해필요한모든관련작업을마무리하고최종적으로리눅스커널을부팅시키기위한목적으로짜여진프로그램 Bootloader 의기능 H/W 초기화 CPU Clock, Memory Timing, Interrupt, UART, GPIO 등을초기화 Linux 부팅 Kernel Image 를 SDRAM 에저장후 Kernel Image 주소로점프 Image Downloading Kernel Image (zimage) 와 File System 을 SDRAM 에 Download Ethernet (bootp, tftp) 을통해서가능 2

Bootloader Bootloader 의기능 Flash 제어 Flash Write, Erase 기능 Flash Lock, Unlock 기능 3

Bootloader Linux Bootloader 실행구조 시작 JTAG Interface Loader 확인 Yes Loader 로딩 Loader 생성 Ethernet (tftp) zimage 확인 Yes zimage 확인 No zimage 생성 Ethernet (tftp) Ramdisk 확인 Yes Ramdisk 로딩 No Ramdisk 생성 커널시작 4

Bootloader Bootloader 실행절차 5

Bootloader Start.S (1/2) 6

Bootloader Start.S (2/2) 7

Bootloader Manual Boot (main.c) 8

Bootloader Bootloader 명령모드로의전환방법 부팅후메시지에서 Ethernet 확인이어서 Kernel, Ramdisk가 Flash에서 RAM으로 copy 확인 Command mode로전환시 Enter 입력 대부분의키트는 Power On 후수초내에키를입력하면명령모드로전환 9

Bootloader Bootloader 명령어 각각의명령어는타겟보드에따라다르지만일반적으로유사한명령어구조를가짐 예 ) Help : Command Mode 에서사용가능한명령어를출력 10

Bootloader Bootloader 설치 개발키트 CD/Internet을통해 Source를구함압축해제 # mkdir /home/working # cd /mnt/cdrom/source # cp empos_boot-20031022.tar.bz2 /home/working # cd /home/working # tar xvfj empos_boot-20031022.tar.bz2 bz2 파일압축해제옵션 # cd /home/working/empos_boot-20031022 # make 11

Bootloader Bootloader 설치 cont d 12

Bootloader Bootloader 설치 cont d 13

Bootloader Bootloader Porting JTAG 을이용한포팅 컴파일후완성된 Bootloader 파일을 Jflash 실행파일이있는디렉토리로복사후 Target Board 에 Write # cd /home/working/empos_boot-20031022 # cp empos_boot(bootloader 파일 ) /usr/local/jtag/jflash-xscale # cd /usr/local/jtag/jflash-xscale #./Jflash-Xscale empos_boot JFLASH Version 1.00-HBE-EMPOS COPYRIGHT 2000, 2001 Intel Corporation JTAG Test Passed Target Board 에컴파일된파일을 Fusing 후 Target Board 를 Reset 시켜야함 14

Bootloader Bootloader Porting Jflash 를이용한 Bootloader 포팅 15

Bootloader tftp 를이용한다운로드 Target Board 에서 tftp 를이용한 Bootloader 다운로딩 tftp 이용시해당파일을 /tftpboot 디렉토리에복사 # cd /home/working/empos_boot-20031022 # cp emos_boot( 부트로더파일 ) /tftpboot Host PC tftp 명령을이용하여 Target Board 에 Bootloader 파일다운로드 Bootloader 의 Flash 명령을이용하여 Write EMPOS # tftp empos_boot booter EMPOS # flash booter Target Board 16

Bootloader tftp 를이용한다운로드 cont d Host PC Target Board 17

Bootloader tftp 를이용한다운로드 cont d tftp 를통해서이미지가전송이되는 booter 라는영역과이어서나올 kernel, ramdisk 라는영역은휘발성이있는 ram 영역이므로이곳에저장이된이미지 ( 현재 empos_boot) 는보드가재부팅이되면없어지게된다. 따라서 ram 영역에서 flash 영역으로옮겨주어야한다. 이명령어가 flash 이다. 18

Kernel Kernel 이란? 운영체계를이루는핵심적소프트웨어 자원의관리 CPU, 메모리, 프로세스, IPC, 파일시스템, 네트워크등의자원들을관리하고분배하는기능및디바이스드라이버에의한주변장치제어기능들을제공 19

Kernel Kernel 의기능 프로세스처리와스케줄링및 IPC 기능 어떤특정한업무의처리하기위해실행되고관리되는단위인프로세스에대한생성, 제거, 스케줄링및각프로세스간의통신인 IPC 기능제공 메모리관리와가상주소기능 페이지 단위의메모리관리하여논리적인접근방식에의한한정된메모리의효율적인사용 파일시스템기능 리눅스커널은외부장치를하나의파일로간주하여입 / 출력이이루어지기때문에장치파일의관리, 캐시및특수 proc 파일시스템기능을제공 20

Kernel Kernel 의기능 cont d 강력한네트워크기능 TCP/IP 를비롯한많은네트워크프로토콜자원, 다양한네트워크서비스및관련장치의제어를위한디바이스드라이버등을지원 모듈화된디바이스드라이버 자주사용되지않는디바이스를제어하기위한디바이스드라이버는모듈로처리하여메모리의낭비를최소화 인터럽트및시스템운영기능 인터럽트처리를비롯한타이머, 디버깅, 로그메시지처리, 사용자인터페이스와같은시스템운영자원들을포함 21

Kernel Linux Kernel 실행구조 시작 JTAG Interface Loader 확인 Yes Loader 로딩 Loader 생성 Ethernet (tftp) zimage 확인 Yes zimage 확인 No zimage 생성 Ethernet (tftp) Ramdisk 확인 Yes Ramdisk 로딩 No Ramdisk 생성 커널시작 22

Kernel Linux Kernel 구조 23

Kernel Linux Kernel 구조 security sound kernel ipc lib mm scripts doc /usr/src/linux drivers block char alpha arch crypto fs init include user net usb i386 coda asm ethernet video m68k ext2 asm-arm ipv4 audio mips ext3 linux ipv6 sound ppc ext4 net unix sparc jffs scsi x25 arm boot nfs video atm kernel lib mach-pxa 임베디드시스템 I 의주관심영역을빨간색으로표시 24

Kernel Kernel 의주요함수 시스템시작및초기화 arch/i386/kernel/head.s 일련의시스템구조의의존적인초기화를수행한후, init/main.c 의 Start_kernel() 함수호출 Start_kernel() Start_kernel(){ setup_arch(); paging_init(); trap_init(); init_irq(); sched_init(); kernel_thread(init); cpu_idle(); } Init(){ setup(); execute( /sbin/init ); } 25

Kernel Kernel 의주요함수 cont d 메모리관리 페이지폴트핸들링 : mm/memory.c 메모리매핑및페이지캐싱 : mm/filemap.c 버퍼캐쉬 : mm/buffer.c 스왑캐쉬 : mm/swap_state.c, mm/swapfile.c Kernel 기능 스케줄러 : kernel/sched.c Fork : kernel/fork.c Bottom half of interrupt handling Include/linux/interrupt.h Process table : include/linux/sched.h 26

Kernel Kernel 의주요함수 cont d Interrupt Handling 대부분의구조는서로의존적임 arch/i386/kernel/irq.c 네트워크 Networking code in net/ Header files in include/net BSD socket code : net/socket.c IP version 4 INET code : net/ipv4/af_inet.c Generic protocol support code : net/core TCP/IP networking code : net/ipv4 27

Kernel Kernel Image (zimage) 생성하기 특정한 Xscale 용 Target Board 에맞는 kernel image 의생성은일반적으로다음 4 단계로이루어짐 Linux Kernel 소스를구함 ARM 용패치파일소스를구함 / 패치 Xscale 용패치파일소스를구함 / 패치 Target Board 패치파일소스를구함 / 패치 28

Kernel Kernel Image (zimage) 생성하기 cont d Linux Kernel 소스파일설치 (ex. Version 2.4.19) # mount /mnt/cdrom # mkdir /home/working/kernel # cp /mnt/cdrom/source/linux-2.4.19.tar.gz../working/kernel # cd /working/kernel # tar xvfz linux-2.4.19.tar.gz ARM 패치 patch-2.4.19-rmk4.gz # mount /mnt/cdrom # cd /mnt/cdrom/source/patch # cp patch-2.4.19-rmk.gz /home/working/kernel/linux-2.4.19 # cd /home/working/kernel/linux-2.4.19 # zcat patch-2.4.19-rmk.gz patch p1 29

Kernel Kernel Image (zimage) 생성하기 cont d Xscale 패치 diff-2.4.19-rmk4-pxa2.gz # mount /mnt/cdrom # cd /mnt/cdrom/source/patch # cp diff-2.4.19-rmk-pxa2.gz /home/working/kernel/linux-2.4.19 # cd /home/working/kernel/linux-2.4.19 # zcat diff-2.4.19-rmk-pxa2.gz patch p1 EMPOS II Board 패치 diff-2.4.19-rmk4-empx1.gz # mount /mnt/cdrom # cd /mnt/cdrom/source/patch # cp diff-2.4.19-rmk-pxa2-empx1.gz /home/working/kernel/linux-2.4.19 # cd /home/working/kernel/linux-2.4.19 # zcat diff-2.4.19-rmk-pxa2-empx1.gz patch p1 30

Kernel Kernel Image (zimage) 생성하기 cont d menuconfig 실행 원하는 Kernel 내용을구성 dep 실행 clean 실행 zimage 생성 # make menuconfig # make dep # make clean # make zimage arch/arm/boot 에 zimage 생성확인 31

Kernel Kernel Image (zimage) 생성하기 cont d menuconfig 실행 # make menuconfig 본명령어를통해커널을컴파일할때추가, 삭제해야할것을선택할수있는메뉴가출력되어커널에서필요부분을추가, 삭제할수있어좀더최적화된커널을생성가능 32

Kernel Kernel Image (zimage) 생성하기 cont d dep 실행 # make dep 본명령어는커널소스사이의코드의존성을검사하여분석후.depend 라는파일로저장.depend 파일안에는소스들의 PATH 정보등컴파일에필요한정보들이저장 33

Kernel Kernel Image (zimage) 생성하기 cont d clean 실행 # make clean 본명령어는컴파일수행후생성된여러오브젝트파일을삭제해주는명령어 34

Kernel Kernel Image (zimage) 생성하기 cont d ziamge 생성 # make zimage 실제커널을컴파일하는명령어 make dep 의결과로생성된.depend 파일을참조하면서커널소스를하나씩컴파일 압축커널이미지가 arch/arm/boot 에 zimage 로생성되며, zimage 의처음부분에압축을해제하는코드가포함되어있음 35

Kernel Kernel Image (zimage) 생성하기 cont d ziamge 생성 zimage 생성확인 36

Kernel Kernel Image 다운로딩 Kernel 포팅 tftp를이용하여 Kernel Image를 Target Board에다운로드 Flash 명령을이용하여 Flash Memory에 Write # cd /home/working/kernel/linux-2.4.19/arch/arm/boot # cp zimage /tftpboot Host PC EMPOS # tftp zimage kernel EMPOS # flash kernel Target Board 37

Kernel Kernel Image 다운로딩 cont d Host PC Download Fusing 38

File System Target Board 의 File System 은사양에따라다양한선택이가능 Ramdisk Jffs Jffs2 Cramfs Ramfs Root File System 에는커널이동작하기위한공간과 Library, Util 등이포함 39

File System Ramdisk 란? 별도의물리적저장장치가없이메모리의한부분을할당하여컴퓨터의하드디스크처럼사용가능하도록한것 별도의디스크저장공간이없는임베디드보드에서 root 파일시스템으로이러한 Ramdisk 를보편적으로사용 Ramdisk 의성질 RAM이휘발성이므로전원을차단시키면모든데이터가사라짐 RAM에서동작하므로빠른실행이가능압축방법 (gzip) 을이용하므로용량을효율적으로사용할수있음 40

File System Linux Ramdisk 실행구조 시작 JTAG Interface Loader 확인 Yes Loader 로딩 Loader 생성 Ethernet (tftp) zimage 확인 Yes zimage 확인 No zimage 생성 Ethernet (tftp) Ramdisk 확인 Yes Ramdisk 로딩 No Ramdisk 생성 커널시작 41

File System Kernel Configuration menuconfig 에서 Ramdisk 를 Root File System 으로사용하기위해다음과같이설정 Default RAM disk size 는사용할 Ramdisk 의크기 : 8Mbytes 설정예 42

File System Ramdisk 생성 Host PC 의루프백디바이스를사용한 Ramdisk 생성및수정어떤파일시스템의파일한개를마치하나의디바이스처럼인식다른디바이스처럼포맷되고마운트될수있음 파일의내용을모두 0 으로채우는의미생성된 Ramdisk 이름 # cd /home/working/ramdisk # dd if=/dev/zero of=./skhu_ramdisk count=3096 bs 1024 # mkfs t ext2 skhu_ramdisk 1024byte 크기의블록을총 4096 번반복 ( 총 4Mbyte 의 Ramdisk 생성 ) dd 명령으로생성된 Kernel Image 에서파일시스템을생성하는과정 ( 리눅스에서가장많이사용되고있는 ext2 로생성 ) 43

File System Ramdisk 수정 / 작성방법 만들어진가상디바이스를 mount 하기위한디렉토리를하나만듬 (mkdir rampoint) gzip 으로파일 (skhu_ramdisk.gz) 을압축해제 skhu_ramdisk 이생김 만들어진공간에 Ramdisk image(shhu_ramdisk) 를 mount 시킴 (mount t ext2 -o loop shhu_ramdisk./rampoint) mount point 에필요한설정파일, 라이브러리, 유틸리티프로그램등을복사 작업디렉토리를 umount(umount./rampoint) gzip 으로파일 (skhu_ramdisk) 을압축 압축파일 (skhu_ramdisk.gz) 이생김 bootloader 에서해당파일을올리면새로운 Ramdisk 가 root file system 으로동작 44

File System Ramdisk 수정 / 작성방법 cont d # mkdir /home/working/ramdisk # mount /mnt/cdrom # cp /mnt/cdrom/ramdisk-empos1.gz /home/working/ramdisk # cd/ home/working/ramdisk # gzip d ramdisk-empos1.gz # mkdir /mnt/ramdisk # mount t ext2 o loop ramdisk-empos1 /mnt/ramdisk # ls /mnt/ramdisk Ramdisk 수정작업시여기에필요한파일복사 # umount /mnt/ramdisk # gzip ramdisk-empos1 # ls /home/working/ramdisk Target Board 에포팅이가능한형태로 Ramdisk 수정 45

File System Ramdisk 수정 / 작성방법 cont d 수정내용 : testfolder 라는 directory 생성 46

File System Ramdisk 포팅 tftp 를이용하여 Ramdisk Image 를 Target Board 에다운로딩 Flash 명령을이용해서 Flash Memory 에 Write # cp ramdisk.gz /tftpboot Host PC EMPOS # tftp ramdisk.gz kernel EMPOS # flash kernel EMPOS # boot Target Board 47

File System Ramdisk 포팅 cont d Host PC Target Board 48

File System Ramdisk 포팅 cont d Flash Ramdisk Ramdisk 확인 49