uboot分析 SD卡映象製作指令碼分析

2022-09-07 19:12:08 字數 2951 閱讀 5900

sd_fusing檔案中的sd_fushing.sh指令碼檔案用於製作u-boot的sd卡映象,即將u-boot.bin映象燒錄進sd卡中,以便於開發板從sd卡中啟動u-boot。

sd_fusing資料夾下各檔案介紹

sd_fusing.sh

sd卡映象製作指令碼

sd_fusing2.sh

sd卡映象製作指令碼2,一般用第乙個

sd_fdisk.c

用於生成sd_fdisk

sd_fdisk

用於sd卡分割槽

c110-evt1-mkbl1.c

用於生成mkbl1

mkbl1

用於計算u-boot校驗和

c110.signedbl1_bin

將u-boot的bl1分離出來(前8k)

makefile

編譯檔案

p.s.:sd_fisk.c生成了sd_fdisk可執行檔案。sd_fusing.sh中呼叫sd_fdisk對mmc裝置進行分割槽,具體的分割槽資訊已經包含在sd_fdisk檔案中。分割槽完成後,會將分割槽資訊(mbr)儲存在mmc的第0扇區。核心在初始化mmc時,直接讀取mbr即可得知mmc的分割槽資訊。

使用方法如下:

1)進入/uboot/sd_fusing目錄下;

2)執行命令:make  clean (清除之前編譯的檔案);

3)執行命令:make (編譯生成燒錄工具);

4)執行命令:./sd_fusing.sh  /dev/sdb(將u_boot.bin映象燒錄進sd卡)。

sd_fusing.sh指令碼的主要作用是在sd卡內建立乙個fat32分割槽,然後將u-boot的bl1和整個u-boot燒錄進sd卡中。

//

定義sd卡裝置,應該根據實際的裝置資訊進行修改

reader_type1="

/dev/sdb

"reader_type2="

/dev/mmcblk0"//

如果沒有引數,則顯示幫助資訊

if [ -z $1

]then

echo

"usage: ./sd_fusing.sh

"exit 0fi

//判斷sd卡的裝置型別,然後定義四個分割槽

if [ $1 =$reader_type1 ]

then

partition1="

$11"

partition2="

$12"

partition3="

$13"

partition4="

$14"

elif [ $

1 =$reader_type2 ]

then

partition1="

$1p1

"partition2="

$1p2

"partition3="

$1p3

"partition4="

$1p4

"else

//不能識別sd卡裝置

echo "

unsupported sd reader

"exit 0fi

//判斷裝置是否存在,且是否是塊裝置

if [ -b $1

]then

echo

"$1 reader is identified.

"else

echo

"$1 is not identified.

"exit 0fi

//開始進行sd卡分割槽

# make partition

echo

"make sd card partition

"echo

"./sd_fdisk $1

"./sd_fdisk $1

dd iflag=dsync oflag=dsync if=sd_mbr.dat of=$1

rm sd_mbr.dat

# format

umount $partition1

2> /dev/null

umount $partition2

2> /dev/null

umount $partition3

2> /dev/null

umount $partition4

2> /dev/null

echo

"mkfs.vfat -f 32 $partition1"//

建立乙個fat32分割槽

mkfs.vfat -f 32

$partition1

//定義u-boot的扇區位置

#bl1_position=1

uboot_position=49

//將u-boot的bl1(前8k)和u-boot的校驗和(uboot的前16位元組)燒錄進sd卡的bl1_position=1扇區

echo

"bl1 fusing

"./mkbl1 ../uboot_inand.bin sd-bl1-8k.bin 8192

//計算uboot的校驗和

dd iflag=dsync oflag=dsync if=sd-bl1-8k.bin of=$1 seek=$bl1_position //

燒錄rm sd-bl1-8k.bin

//將整個u-boot燒錄進sd卡的uboot_position=49扇區

#echo

"u-boot fusing

"dd iflag=dsync oflag=dsync if=../uboot_inand.bin of=$1 seek=$uboot_position

//燒錄成功資訊提示

#echo

"u-boot image is fused successfully.

"echo

"eject sd card and insert it again.

"

uboot 引導卡製作

color red size medium 一 格式化sd卡 size color size small sudo fdisk dev sdb command m for help d partition number 1 4 1 size color red size medium 二 檢視資訊 ...

sd卡燒錄uboot的過程

1 uboot配置編譯 1 x210移植過的uboot在開發板光碟b linux qt4.8的bsp中,裡面的內容就是這個開發板的所有相關的源 文件 教程等。2 將b linux qt4.8的bsp中tar jxvf qt x210v3 160807.tar.bz2放在共享檔案裡面新建乙個空檔案 因...

製作荔枝派sd映象

uboot製作參考 鏈結 步驟如下 查詢sd卡裝置 fdisk l,記下裝置名,比如sdb 先解除掛載 sudo umount dev sdb1,sudo umount dev sdb2 然後分割槽 fdisk dev sdb 輸入n,回車,跟隨提示設定第一分區起始扇區和結束扇區 重複此操作建立第二...