使用bsp中的uboot資料夾單獨編譯uboot
使用bsp中的kernel資料夾單獨編譯kernel
自製根檔案系統
buildroot補充
(2)解壓
(3)配置
(4)編譯
嵌入式系統啟動流程:先啟動bootloader,再啟動核心,再啟動根檔案系統,最後啟動使用者的應用。之前的嵌入式linux教學都是從bootloader、核心、裝置驅動、應用、專案全部涉及,但是實際工作中uboot會用就行基本不需要修改,而且從uboot到核心到根檔案系統需要大量的學習週期,對於只有業餘時間的在職工程師來說,需要的是快速上手。uboot、核心、根檔案系統只需懂得如何使用官方bsp包去生成,然後燒寫即可,什麼時候用到了再仔細的去學習。
bsp是板級支援包,(board support package)是介於主機板硬體和作業系統之間的一層,遮蔽底層硬體的多樣性,根據作業系統的要求完成硬體的直接操作,向作業系統提供硬體資訊,最終使作業系統執行於底層硬體主機板。linux bsp開發簡單說,就是將linux在板子上跑起來。包括bootloader,kernel,根檔案系統,也包括一些驅動開發。 參考csdn
x210開發板的bsp是由開發板商(九鼎)提供的檔案位於 光碟b/linux/qt4.8/bsp/qt_x210v3s_160307.tar.bz2
在根目錄(/)下新建目錄:
sudo mkdir x210v3_bsp
進入x210v3_bsp,新建目錄,並進入該目錄
cd x210v3_bsp
sudo mkdir qt_x210v3
cd qt_x210v3
複製共享資料夾中的qt_x210v3s_160307.tar.bz2到新建的/x210v3_bsp/qt_x210v3目錄下(該bsp包一定不要在共享資料夾下解壓編譯,否則會有各種問題)
cp /mnt/hgfs/share/bsp/qt_x210v3s_160307.tar.bz2 .
/
解壓到指定的資料夾
sudo tar -jxvf qt-x210v3s_160307.tar.bz2 -c /x210v3_bsp/qt_x210v3
bsp檔案包解壓後的檔案包含:
資料夾名
說明buildroot
構建根檔案系統
kernel
核心源**
mk用於管理和編譯整個bsp
tools
應用層的工具
tslib_x210_qtopia.tgz
支援qt觸控螢幕操作的應用層庫
uboot
bootloader源**
version
版本說明
xboot
bootloader源**(九鼎給自己開發板編寫的bootloader)
mk指令碼的主要作用是編譯bsp中的源**,實際是整個bsp的makefile。我們可以完整編譯也可以部分編譯
指令說明
./mk -h
檢視mk的幫助資訊
./mk -a
編譯所有的bsp源**
./mk -x
只編譯xboot
./mk -ui
只編譯inand版本開發板的uboot(即我們用的x210v3s開發板)
./mk -k
只編譯kernel
./mk -r
編譯buildroot,只得到資料夾形式的rootfs,並沒有製作成映象檔案
./mk -re
編譯buildroot,並製作得到ext3格式的rootfs映象
./mk -rj
編譯buildroot,並製作得到jffs2格式的rootfs映象
.
/mk -ui
.
/mk -k
在本次bsp開發中buildroot只是用來搭建根檔案系統,uboot和kernel還是用bsp包中的mk編譯生成。但經過網上檢視buildroot也可以配置生成uboot,kernel,根檔案系統,驅動。但是因為是針對x210板卡學習,還是建議根據板卡提供的bsp開發,後面如有需要再學習也可以。將網上蒐集到的buildroot開發放在補充,方便以後檢視。
在使用buildroot建立根檔案系統之前需要安裝軟體包
sudo apt-get install g++
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install texinfo
sudo apt-get install git
sudo apt-get install hgsubversion
sudo apt-get install whois
生成rootfs資料夾
.
/mk -r
生成ext3格式的rootfs映象
.
/mk -re
uboot資料夾是通過makefile檔案編譯uboot
檢查uboot根目錄的makefile中編譯器設定的交叉編譯工具鏈的路徑和名字是否正確(cross_compile ?= /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-)。
在uboot根目錄下執行 make distclean 清除之前編譯產生的檔案。
make distclean
在uboot根目錄下執行:make x210_sd_config (生成用於inand燒寫的uboot和後面的mk -ui 效果相同)
make x210_sd_config
如果出現:configuring for x210_sd board … 說明配置完成。
執行 make (或者 make -j4(4執行緒編譯))指令進行編譯得到 uboot.bin(位於uboot根目錄下)
make
或 make -j4
kernel資料夾是通過makefile檔案編譯kernel
檢查kernel根目錄的makefile中編譯器設定的交叉編譯工具鏈的路徑和名字是否正確(cross_compile ?= /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-)
檢查arch = arm
安裝ncurses庫
sudo apt-get install libncurses5-dev
在kernel根目錄下執行make distclean 清除之前編譯產生的檔案
make distclean
在kernel根目錄下執行:make x210ii_qt_defconfig
make x210ii_qt_defconfig
如果出現configuration writeen to .config 說明配置完成,表明 .config 檔案生成。
將終端輸入指令視窗全屏,執行 make menuconfig
make menuconfig
執行 make (或者make -j4(4執行緒編譯))指令進行編譯得到zimage(位於arch/arm/boot目錄下)
make
或 make -j4
buildroot官方全英文使用手冊的鏈結
buildroot是乙個開源的嵌入式linux系統自動構建框架。整個buildroot是由makefile指令碼和kconfig配置檔案構成的。通過buildroot配置,menuconfig修改,編譯出乙個完整的可以直接燒寫到機器上執行的linux系統軟體(包含boot、kernel、rootfs以及rootfs中的各種庫和應用程式)
放到ubuntu系統下解壓,進入解壓後的buildroot主目錄,其目錄結構解釋如下
make ***_defconfig 選擇乙個defconfig,這個檔案在config目錄下。
make menuconfig 進行配置
make all
在buildroot主目錄的在output/images/ 資料夾下,生成可燒寫檔案:uboot(u-boot.bin);kernel(uimage);根檔案系統(rootfs.jfss2)
具體使用可參考csdn
如何學習嵌入式 嵌入式如何入門?
學習嵌入式,該學習什麼基本的知識呢?嵌入式如何入門?其次,應該對作業系統有所了解,這對你對硬體和軟體的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如程序 執行緒,系統如何來分配資源的,系統如何來管理硬體的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關係,多看看,結合以後的專案經驗...
嵌入式linux入門筆記
學習的是韋東山的jz2440板子,一開始假設是裸板,首先要用jtag把uboot燒到nor flash,完成後拔掉jtag,然後板子從nor flash啟動,剛開始啟動時馬上按空格鍵進入uboot選擇選單,會出現如下選擇項 100ask bootloader for openjtag n downl...
嵌入式學習筆記
嵌入式系統定義 技術角度以應用為中心,以計算機技術為基礎,軟硬體可裁剪,應用系統對功能,可靠性,成本,體積,功耗,和應用環境有特殊要求的專用計算機系統系統角度 設計完成複雜功能的硬體和軟體並使其緊密契合在一起的計算機系統 實時在規定的時間內,完成規定的動作 紅帽linux 基本命令 ls 檢視當前目...