Hi3520d uImage制作 uboot制作 rootfs制作
1、hi3520D SDK包位置
? ? 在"hi3520D_V100R001***/01.software/board"目錄下,您可以看到一個 hi3520D_SDK_Vx.x.x.x.tgz 的文件,
該文件就是hi3520D的軟件開發(fā)包。
2、解壓縮SDK包
? ? 在linux服務(wù)器上(或者一臺裝有l(wèi)inux的PC上,主流的linux發(fā)行版本均可以),使用命令:tar -zxf hi3520D_SDK_Vx.x.x.x.tgz ,
解壓縮該文件,可以得到一個hi3520D_SDK_Vx.x.x.x目錄。
3、展開SDK包內(nèi)容
? ? 返回hi3520D_SDK_Vx.x.x.x目錄,運行./sdk.unpack(請用root或sudo權(quán)限執(zhí)行)將會展開SDK包打包壓縮存放的內(nèi)容,請按照提示完成操作。
如果您需要通過WINDOWS操作系統(tǒng)中轉(zhuǎn)拷貝SDK包,請先運行./sdk.cleanup,收起SDK包的內(nèi)容,拷貝到新的目錄后再展開。
4、在linux服務(wù)器上安裝交叉編譯器
? ? 1)安裝uclibc交叉編譯器(注意,需要有sudo權(quán)限或者root權(quán)限):
? ? ? ?進入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linux目錄,運行chmod +x cross.install,然后運行./cross.install即可。
? ? 2) 安裝glibc交叉編譯器(注意,需要有sudo權(quán)限或者root權(quán)限,暫時不支持glibc版本):
? ? ? ?進入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目錄,運行chmod +x cross.install,然后運行./cross.install即可。
? ? 3) 執(zhí)行source /etc/profile, 安裝交叉編譯器的腳本配置的環(huán)境變量就可以生效了,或者請重新登陸也可。
(1)編譯kernel:
待進入內(nèi)核源代碼目錄后,執(zhí)行以下操作
cp arch/arm/configs/godarm_defconfig .config
cp arch/arm/configs/godcare_defconfig .config
cp arch/arm/configs/hi3520d_full_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- uImage
或者
cp arch/arm/configs/godarm_defconfig .config
cp arch/arm/configs/godcare_defconfig .config
cp arch/arm/configs/hi3520d_full_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- uImage
(2)編譯uboot:
待進入boot源代碼目錄后,執(zhí)行以下操作
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- godarm_config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- godcare_config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- hi3520d_config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux-
或者
make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- godarm_config
make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- godcare_config
make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- hi3520d_config
make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux-
? ? ? ? 待生成uboot.bin后還沒有真正的制作成可使用的uboot,因為Hi3520d的板子flash更換,所以需要修改讀取起始地址,做以下操作
在 Windows 下打開 SDK 中的“ osdrv/ tools/pc_tools/uboot_tools/”目錄下的配置表格。當(dāng)選用不同的 DDR SDRAM 時,需要針對不同器件的特性,對配置工作表中的相關(guān)標
簽頁進行修改。如果管腳復(fù)用有變化,還需要對配置表格中的相關(guān)標簽頁進行修改。
將臨時文件 reg_info.bin 和編譯 u-boot 得到的 u-boot.bin 都拷貝到 SDK 中的“ osdrv/tools/pc_tools/uboot_tools/目錄下,執(zhí)行命令:
mkboot.sh reg_info.bin u-boot-hi3521_930MHz.bin
其中 u-boot-hi3521_930MHz.bin 就是能夠在單板上運行的 U-boot 鏡像。
目前是將 Hi3520D 和 Hi3515A/Hi3515C 做成一個 U-boot 鏡像,需要將 Hi3520D、Hi3515A 表格生成的臨時文件,分別命名為 reg_info_hi3520d.bin、
reg_info_hi3515a.bin,然后將兩個臨時文件和編譯好的 u-boot.bin 一起拷貝到 SDK 中的“osdrv/tools/pc_tools/uboot_tools/目錄下,執(zhí)行命令:./mkboot-hi3520d.sh
reg_info_hi3520d.bin reg_info_hi3515a.bin u-boot-hi3520d.bin需要特別注意 Hi3520D 的 reg_info 在前、 15a 的 reg_info 在后,這個順序不能隨意更改。
(3)制作文件系統(tǒng)鏡像:
在osdrv/pub/中有已經(jīng)編譯好的文件系統(tǒng),因此無需再重復(fù)編譯文件系統(tǒng),只需要根據(jù)單板上flash的規(guī)格型號制作文件系統(tǒng)鏡像即可。
spi flash使用jffs2格式的鏡像,制作jffs2鏡像時,需要用到spi flash的塊大小。這些信息會在uboot啟動時會打印出來。建議使用時先直接運行mkfs.jffs2工具,根據(jù)打印信息填寫相關(guān)參數(shù)。下面以塊大小為64KB為例:
osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x40000 -o osdrv/pub/rootfs_uclibc_256k.jffs2 osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x10000 -o osdrv/pub/rootfs_uclibc_64k.jffs2
或者
osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_glibc -l -e 0x40000 -o osdrv/pub/rootfs_glibc_256k.jffs2
nand flash使用yaffs2格式的鏡像,制作yaffs2鏡像時,需要用到nand flash的pagesize和ecc。這些信息會在uboot啟動時會打印出來。建議使用時先直接運行mkyaffs2image工具,根據(jù)打印信息填寫相關(guān)參數(shù)。下面以2KB pagesize、1bit ecc為例:
osdrv/pub/bin/pc/mkyaffs2image osdrv/pub/rootfs_uclibc osdrv/pub/rootfs_uclibc_2k_1bit.yaffs2 1 1
或者
osdrv/pub/bin/pc/mkyaffs2image osdrv/pub/rootfs_glibc osdrv/pub/rootfs_glibc_2k_1bit.yaffs2 1 1
總結(jié)
以上是生活随笔為你收集整理的Hi3520d uImage制作 uboot制作 rootfs制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用传感器讲解九--雨滴传感器
- 下一篇: Ruby如何成长成高性能系统构架