Building Embedded Linux 2 Outline v v Bootloader



















































































































- Slides: 115

Building Embedded Linux 2


Outline v前言及介紹 v. Bootloader v. Kernel v. Root Filesystem v燒寫資料至flash 3

此章節使用套件 vvivi bootloader(0. 1. 4) v. Linux kernel(2. 4. 18) v. Busybox(1. 0. 0) v. JFlash 4






開發流程 v步驟 1 Ø 建立Cross-Toolchain v步驟 2 Ø 使用Cross-Toolchain編譯目標板的Bootloader v步驟 3 Ø 使用Cross-Toolchain編譯目標板的Kernel v步驟 4 Ø 使用Cross-Toolchain建立目標板的Root Filesystem 10




v前言及介紹 v. Bootloader v. Kernel v. Root Filesystem v燒寫資料至flash 14

Bootloader (vivi) v支援ARM Core處理器的Bootloader眾多,在 此以MIZI公司所開發的VIVI Bootloader為預 設使用的Bootloader,沒有限定一定要何種 Bootloader。 15

Bootloader (vivi) • vivi – 韓國 MIZI公司所開發的bootloader專 門使用在arm系列平台上,並且開放原始碼 採用GPL授權,支援SA-1110, S 3 C 2400, S 3 C 2410, PXA 250 Processors。 出處 : http: //www. mizi. com/ 16

Bootloader (vivi)特色 v. It's easy to add new Processor. v. It's easy to add new board. v. It's easy Porting Kernel device driver. v. It supports Various MTD. v. You can add sample source code or can load test code to RAM. 出處 : http: //www. mizi. com/ 17

Bootloader (vivi) v初始化硬體. Ø 設定CPU頻率, 點亮LED, v將kernel, rootfs從Flash複製到RAM, 並執行kernel. vvivi 有能夠將資料寫入Flash的功能 Ø 經由serial port傳輸 v提供一個能夠對目標板下command的介面 Ø 經由serial port 18

Bootloader (vivi) v能夠經由JTAG cable、Serial cable、 Ethernet cable 傳輸檔案。 19

Bootloader (vivi) v下載完後,置於$PRJROOT/boot/ v移至vivi位置 Ø# cd $PRJROOT/boot/ v解開vivi Ø# tar jxvf vivi. tar. bz 2 v解開後,會出現vivi/目錄夾,則進入。 Ø# cd vivi/ 20


Bootloader (vivi) v. System Type Ø 處理器型號 v. General setup Ø Cache Enable (Dual Cache) v. Serial Port Ø Serial Port support v. Memory Technology Devices(MTD) Ø support nand flash device。 22

選擇所需組態 # make menuconfig 23

選擇所需組態 v進入System type Ø 點選ARM system type n 再選取S 3 C 2410 -based 24

選擇所需組態 v進入System type Ø 點選Implementations n 支援NAND Boot 25

選擇所需組態 v. General setup Ø s 3 c 2410 X有dual cache,I-cache、D-cache 26

選擇所需組態 v. Memory Technology Devices(MTD) Ø NAND Flash Device Drivers 27





Bootloader (vivi) v於vivi開機時可將檔案寫入Flash # Load flash Partition. Name x flash = Partition. Name= x 所要載入的記憶體 可在vivi開機時設定 有三個區塊可選,kernel、root及vivi = 選擇以xmodem傳輸 32

Bootloader (vivi) v可使用Windows 裡的超級終端機傳送。也可 使用linux中的minicom。 33

Bootloader (vivi) v於vivi開機時可進入vivi功能列,設 定kernel的命令列(set parameter)。 Ø# param set linux_cmd_line “命令列參數” 34

v前言及介紹 v. Bootloader v. Linux Kernel v. Root Filesystem v燒寫資料至flash 35

Linux Kernel架構 v在此簡略介紹Linux kernel源碼的架構。並不 深入講解其原理。 v標準版Kernel一般包含了下列子目錄 : Ø Documentation、arch、drivers、fs、include、init、 ipc、kernel、lib、mm、net及scripts。 36








Linux Kernel組態及編譯 v在kernel解開目錄下,設定kernel組態 Ø# make menuconfig v產生相依性, 編譯出映像檔. Ø# make dep; make bz. Image v映像檔所產生的位置 Ø /kernel source code/arch/arm/boot/z. Image 44

Linux Kernel組態及編譯 v如不是用開發商已修正過的kernel,編譯時 需加參數。 Ø Ø # make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig # make ARCH=arm CROSS_COMPILE=arm-linux- dep v有以上參數後,也會連帶更改compiler, assembler等。 45

Linux Kernel 組態 # make menuconfig 46

Linux kernel 離開組態 47




v前言及介紹 v. Bootloader v. Kernel v. Root Filesystem v燒寫資料至flash 51


標準Linux檔案系統結構 v /dev /root /bin /usr /lib /etc /tmp /proc… 53

Root Filesystem v假設在本地端(Host)所要開發根檔案系統的 目錄設為$PRJROOT/rootfs_SBC-2410 X。 Ø# mkdir $PRJROOT/rootfs_SBC-2410 X v建立根檔案系統所需的目錄。 Ø# Ø# cd $PRJROOT/rootfs_SBC-2410 X mkdir bin boot dev etc home lib mnt opt proc root sbin tmp usr var 54





Glibc 介紹 vlibnsl Ø NIS網路服務程式庫函式 vlibpcprofile Ø 程式計數器統計函式 vlibpthread Ø Linux 的Posix 1003. 1 c執行緒常式 vlibthread_db Ø 執行緒除錯函式 59



devfs v如欲選取devfs。如下 62

建構裝置節點檔 v/dev 裡所放置的是裝置檔. 必須先建構. Ø# Ø# cd $PRJROOT/rootfs_SBC-2410 X/dev mknod tty. S 0 c/b 4 64 tty. S 0 c/b 64 4 = = = 裝置檔名稱 字元裝置 or 區塊裝置 = major number minjor number *kernel source code/Documentaion/devices. txt 可在此查閱對應表,並 63 可得知其主次編號。但額外寫的driver不一定會照此表。










Busybox定義函式 73

Busy. Box v. V 1. 0. 0 安裝步驟 : make menuconfig, make all install. v跨平台參數 : TARGET_ARCH CROSS PREFIX 目標版 (cpu 族系) 跨平台參數 安裝路徑 (make TARGET_ARCH=arm CROSS=arm-linux- PREFIX=/目標位置 all install ) 74

Busy. Box # make menuconfig 75

Busy. Box v. Archival Utilities Ø 例rpm, unzip, gunzip v. Coreutils Ø 例chmod, chown, cp, env, mknod v. Editors Ø 例Vi v. Linux System Utilities Ø 例mount, fdisk 76

Busy. Box v. Finding Utilities Ø 例find, grep v. Init Utilities Ø 例init, reboot, poweroff v. Login/Passwd Management Utilities Ø 例login, passwd v. Linux Module Utilities Ø 例insmod, lsmod 77

Busy. Box v. Networking Utilities Ø 例wget, route, ifconfig, netstat v. Process Utilities Ø 例Free, kill, ps v. Another Bourne-like Shell Ø 例ash 78







Init Utilities v待會會介紹Busybox init用途及用法。在此, 我們不使用標準System V init。 85

Login/Password Management Utilities v在此是使用Tiny-Login,Busybox-1. 0. 0才合 併的成果。 86

Linux Module Utilities v選取insmod,以利於未來要載入模組。 87

Networking Utitlities v包括基本網路 具,例telnet、ping等。 88

Process Utilities v有關於Process的 具,例kill,可移除程序 89

Another Bourne-like Shell v在此需要選擇一個預設使用的Shell。 90



Busy. Box init v/bin/init 是系統程序初始化,並讀取 /etc/inittab此支設定檔。 v設定檔內容格式如下 : <id>: <runlevels>: <action>: <process> runlevels action process 此欄位可忽略 Process所要執行的動作 所要執行的Process 93

<action> vsysinit, Ø 系統第一執行的Process vrespawn, Ø 當Process關閉時會自己開啓 vaskfirst, Ø 當Process執行時會先詢問 94

<action> vonce, Ø Process只會執行一次 vrestart, Ø 當重開機時所執行的Process vctrlaltdel, Ø 按下ctrl + alt + del 所執行的Process vshutdown. Ø 當Poweroff時, 所執行的Process 95

Busy. Box 如/etc/inittab不存在則預設內容為下 : : sysinit: /etc/init. d/rc. S : : askfirst: /bin/sh : : ctrlaltdel: /sbin/reboot : : shutdown: /sbin/swapoff -a : : shutdown: /bin/umount -a -r : : restart: /sbin/init tty 2: : askfirst: /bin/sh tty 3: : askfirst: /bin/sh tty 4: : askfirst: /bin/sh 96


CRAMFS v唯讀的格式 v壓縮比約為 50% v. GID只有8位元的寛度, 群組數不可超過255 v至#kernel_source/scripts/cramfs/ Ø# Ø# Ø# make (產生mkcramfs) cp mkcramfs /bin mkcrafs rootfs /目標位置/自定檔名 98


v前言及介紹 v. Bootloader v. Kernel v. Root Filesystem v燒寫資料至flash 100

Writing data to flash memory v燒寫Flash : filesystem也開發完成後,只剩下最後步 驟,就是把bootloader、Linux kernel和root filesystem燒寫至flash。 Ø 當root v燒寫軟體可至samsung網站下載。 Ø http: //www. samsung. com/Products/Semicondu ctor/System. LSI/Mobile. Solutions/Mobile. ASSP/ Mobile. Computing/S 3 C 2410 X. htm 101

燒寫資料至 NAND FLASH v可以使用SJF (SEC JTAG FLASH ) 將vivi 透 過JTAG 寫入 FLASH. # Jflash-s 3 c 2410 vivi /t=5 vivi => 寫入之映像檔 /t=5 => /t 選擇寫入FLASH的型號, 5 : SMDK 2410: K 9 S 1208 64 MB 102

Writing data to flash memory v. JFlash vivi to the flash memory Ø# JFlash-s 3 c 2410 vivi /t=5 103

SEC JTAG FLASH 燒寫畫面 104

Writing data to flash memory v. VIVI Bootloader燒寫完畢 Ø 當Bootloader已經燒寫至Flash後,即可使用 VIVI將資料傳送至Flash。 v. VIVI 開機時 : Ø 在Booting時,可隨意按任何鍵進入VIVI Command Mode,就可以選擇傳送資料至flash。 105

Writing data to flash memory v. Load kernel to the flash memory Ø# load flash kernel x 106

Writing data to flash memory v. Load rootfs to the flash memory Ø# load flash rootfs x 107



Graphical User Interface v. Embedded Linux有幾種較為廣泛使用的GUI 系統: Ø QT/Embedded Ø Nano-X Ø Mini-GUI Ø Tiny-X 110

Nano-X v. Nano-X是Open Source的專案: Ø 專門為小型裝置和平台製作而成。 Ø 原名為Microwindows ,和Microsoft 的windows 商標相衝突,故在 2005年 1月30日重新命名為 Nano-X Window System。 Ø 在此系統中有實作二種APIs,一種是Win 32 另一種是Xlib-like API。 出處: http: //www. microwindows. org/ API, 111


QT/Embedded v. QT/Embedded Ø Trolltech公司所開發,是一種跨平台的C++應用 程式。 Ø 可在Windows, Linux, Unix, Mac OS X和 Embedded Linux上執行。 Ø QT有許多版本,其中Embedded版是適合於嵌 入式系統。 113

編譯QT/Embedded v組態 Ø# . /configure -embedded arm -shared -debug -nocups --prefix=安裝目錄夾 v編譯 Ø# make v安裝 Ø# make install v放置於root filesystem裡的 LD_LIBRARY_PATH裡,通常指/lib Ø 把編譯好的library,放置於root 114

Embedded linux vs desktop linux
Grub, lilo, ntldr to
Qt arm cross compile
Build android kernel
Simon hsu
Intel slim bootloader
Oc bootloader
Embedded linux development using eclipse
Kernel linux security module m1 support
Embedded systems building blocks
Linux outline
Quotation sandwhich
Lesson outline lesson 3 mountain building answers
Embedded controller program
Windows embedded standard iso
Embedded assessment significato
Memory shadowing in embedded system
Integrating quotes mla
What is embedded metadata
Embedded practice
Microsoft embedded products
Embedded rpc
Embedded systems
Clauses
Average value of signal
Pwm in embedded system
Pengertian embedded system
Embedded markov chain
What did we learn last class
Embedded software protection
Embedded relative clauses
Embedded markov chain
Memory testing in embedded system
Embedded iud
Embedded iud
Intonation examples
Kiran embedded
Kategori dari embedded system
Gps moving map in embedded systems
Windows embedded standard 7 image builder
Embedded systems example
Multilevel bus architecture
Vahid e5
Embedded systems history
European embedded control institute
Embedded web technology documentation
Koroui
Embedded systems roadmap
Embedded systems are not always standalone devices
Device driver programming in embedded systems
Embedded system in automobiles
Embedded microprocessor system design using fpgas
Embedded software tools
Round robin architecture in embedded system
Embedded sistemi
Embedded processor design
Characteristics of embedded system
What is an embedded clause
Embedded systems vs cyber physical systems
Different phases of edlc in embedded system
Embedded systems voorbeelden
Domain specific embedded system
Dsp in embedded system
Characteristics of embedded system
Evolution of embedded systems
Embedded c data types
Design metrics of embedded system
Embedded systems characteristics
High performance embedded computing
Embedded systems
Embedded os porting
Digital camera embedded system
An embedded software primer
Embedded relative clauses
Agile embedded software development
Embedded systems
Embedded systems
Embedded systems
Turner incisor
How to do quotes in mla format
Chapman kolmogorov equation
Embedded ui framework
Timer and counting devices in embedded systems
Embedded database meaning
Learning is embedded in memory history and story
Embedded database systems
Embedded systems voorbeelden
Power bi embedded demo
Reduced noun clauses
Interface 16kx8 program rom with 8051mc and explain
Nedokonoene
Embedded systems visualization
Ibm embedded solution agreement
Microcontrollers and embedded processors
Embedded design life cycle
Graph manipulation
Embedded assignment
Eecs 473
Hardware interfacing in embedded system
Designing embedded systems with pic microcontrollers
Embedded system in digital camera
Design automation for embedded systems
Embedded software primer
Cognitive embedded system
Embedded text evidence
Ewfapi.dll
Xp embedded builder
Valuing bonds with embedded options
Embedded systems topics for presentation
Insulin pump case study in software engineering
Syarat embedded system
8 karakteristik embedded system
Tags are tiny chips that can be embedded
Embedded systems
Embedded system
Tcb in embedded system