在orangepi_sdk目錄下:
///
//////
//////
//////
//////
//////
/////
uboot的配置過程
make config_uboot //配置uboot
1). //當前目錄的makefile
26 phony += config_uboot
27 config_uboot :
28 @echo "+++++config uboot+++++"
29 @$(pwd)/script/config_uboot_source.sh
2). //當前目錄下的script/config_uboot_source.sh
2 source $pwd/script/orangepi.conf //讓orangepi.conf裡的環境變數生效。如交叉編譯器,uboot, kernel目錄路徑
3 source $pwd/script/common.sh //提供功能函式
11 message "entry u-boot source dir " && cd $ //進入uboot原始碼目錄
1213
if [ ! -f .config ] //判斷uboot原始碼根目錄下是否存在".config", ".config"用於指定uboot的編譯配置
14 then //如沒有.config檔案
15 message "clear u-boot " && make distclean //清作編譯生成的檔案及配置檔案
16 message "config u-boot " && make $ // make orangepi_linux_defconfig
17 fi
20 message "config u-boot" && make menuconfig //彈出乙個配置介面
//////
//////
////
總結下uboot的配置過程:
1). script/orangepi.conf裡的環境變數生效, 及進入uboot原始碼目錄
2). make distclean
3). make orangepi_linux_defconfig
4). make menuconfig
uboot編譯是通過命令:
make uboot
1). 當前目錄下的makefile
42 phony += uboot
43 phony += bootloader
44 uboot bootloader :
45 @echo
"+++++build u-boot+++++" | tee $(opi_output_dir)/build_uboot.log
46 @$(pwd)/script/make_uboot.sh 2>&1 | tee -a $(opi_output_dir)/build_uboot.log
2). script/make_uboot.sh裡的主要內容:
2source
$opi_work_dir/script/common.sh
10 message "entry u-boot source dir " && cd
$opi_u_source
20 message "build u-boot , please wait some time." && make -j8
22if [ -f u-boot-sunxi-with-spl.bin ]; then
23# copy u-boot-sunxi-with-spl.bin to output
24 cp u-boot-sunxi-with-spl.bin $opi_uboot_output_dir
25 cp arch/arm/dts/*sun8i-h3* $opi_dtb_output_dir
26fi
// boot.scr檔案的生成, boot.scr是uboot的環境變數存放檔案
30 message "build u-boot boot.scr" && rm $opi_uboot_output_dir/boot.scr
31 mkimage -c none -a arm -t script -d
$opi_source/u-boot-script/orangepi.cmd $opi_uboot_o utput_dir/boot.scr
//由orangepi.fex生成script.bin, 檔案裡用於描述硬體相關的資源
34 message "build sunxi script.bin" && rm $opi_uboot_output_dir/script.bin
35 fex2bin $opi_source/sunxi-script/orangepi.fex $opi_uboot_output_dir/script.bin
總結下編譯主要過程:
1).進入uboot原始碼目錄
2). make -j8
3). 生成boot.src環境變數檔案
4). 生成script.bin檔案
///
//////
//////
//////
//////
//////
//////
//////
///////
最後我們是用"make install_uboot sdcard=/dev/sdb"燒寫到sd卡里
1). 當前目錄裡的makefile:
63 phony += install_uboot
64 install_uboot :
65 @echo "script run sudo , please authorize :"
66 @sudo $(pwd)/script/install_uboot.sh $(sdcard)
2). script/install_uboot.sh的主要內容:
2 source $pwd/script/orangepi.conf
3 source $pwd/script/common.sh
4 sdcard=$1
// sdcard=/dev/sdb
18 echo "mount -t vfat $sdcard"
1" $opi_sdcard_boot"
19 mount -t vfat $sdcard"1" $opi_sdcard_boot //掛載/dev/sdb1到目錄裡, sdb1是fat分割槽
2021 cd $
23 cp boot.scr $/ //複製到掛載目錄裡,也就是存放到sd卡的fat分割槽
25 cp script.bin $/ //複製script.bin到sd卡的fat分割槽
27 cp u-boot-sunxi-with-spl.bin $/ //也複製uboot.bin到分割槽裡
29 dd if=/dev/zero of=$sdcard bs=1k seek=8 count=1015
//從sd卡的第8個扇區(每個扇區512位元組)開始,清零1015k位元組空間
30 dd if=u-boot-sunxi-with-spl.bin of=$sdcard bs=1k seek=8
//把uboot.bin從sd卡的第8個扇區開始燒寫進去
U Boot的配置 編譯 連線過程
u boot,全稱為universal boot loader,即通用bootloader。通用有兩層含義 可以引導多種作業系統 支援多種架構的cpu。根據u boot原始碼資料夾頂層的readme檔案說明,針對使用的開發板 board 執行 1 make config 2 make all 可以生...
u boot的配置過程
1.頂層makefile 這裡我們將以smdk2410為例來介紹,uboot是u boot 2009.03,首先我們應該開啟u boot的頂層makefile,這裡按照人的思維來說,我們應該首先去看看smdk2410的配置項 smdk2410 config 2830 smdk2410 config ...
UBOOT的編譯過程三
繼續上 objs cpudir start.o ifeq cpu i386 objs cpudir start16.o objs cpudir resetvec.o endif ifeq cpu ppc4xx objs cpudir resetvec.o endif ifeq cpu mpc85xx...