Hi3520d uImage制作 uboot制作 rootfs制作

首次安装SDK
1、hi3520D SDK包位置
    在"hi3520D_V100R001***/01.software/board"目录下,您可以看到一个 hi3520D_SDK_Vx.x.x.x.tgz 的文件,
该文件就是hi3520D的软件开发包。


2、解压缩SDK包
    在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf hi3520D_SDK_Vx.x.x.x.tgz ,
解压缩该文件,可以得到一个hi3520D_SDK_Vx.x.x.x目录。


3、展开SDK包内容
    返回hi3520D_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。
如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。


4、在linux服务器上安装交叉编译器
    1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):
       进入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100nptl-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。
    2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限,暂时不支持glibc版本):
       进入hi3520D_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。

    3) 执行source /etc/profile, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。


(1)编译kernel:
待进入内核源代码目录后,执行以下操作
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源代码目录后,执行以下操作
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/”目录下的配置表格。当选用不同的 DDR SDRAM 时,需要针对不同器件的特性,对配置工作表中的相关标
签页进行修改。如果管脚复用有变化,还需要对配置表格中的相关标签页进行修改。

完成配置表格的修改后,保存表格。单击表格第一个标签页上的按钮“ Generage regbin file”,生成临时文件 reg_info.bin。
将临时文件 reg_info.bin 和编译 u-boot 得到的 u-boot.bin 都拷贝到 SDK 中的“ osdrv/tools/pc_tools/uboot_tools/目录下,执行命令:
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/目录下,执行命令:./mkboot-hi3520d.sh
reg_info_hi3520d.bin reg_info_hi3515a.bin u-boot-hi3520d.bin需要特别注意 Hi3520D 的 reg_info 在前、 15a 的 reg_info 在后,这个顺序不能随意更改。

(3)制作文件系统镜像:
在osdrv/pub/中有已经编译好的文件系统,因此无需再重复编译文件系统,只需要根据单板上flash的规格型号制作文件系统镜像即可。

spi flash使用jffs2格式的镜像,制作jffs2镜像时,需要用到spi flash的块大小。这些信息会在uboot启动时会打印出来。建议使用时先直接运行mkfs.jffs2工具,根据打印信息填写相关参数。下面以块大小为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工具,根据打印信息填写相关参数。下面以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

你可能感兴趣的:(Hi3520d uImage制作 uboot制作 rootfs制作)