海思3516EV200 编译Uboot Kernel 文件系统 | 您所在的位置:网站首页 › 海思3516EV200芯片参数和Rk3566那个好 › 海思3516EV200 编译Uboot Kernel 文件系统 |
文章中提到的压缩包如果SDK包里没有的话直接去网上下载 这个压缩包最好在Linux环境下解压运行 解压后进入Hi3516EV200_SDK_V1.0.1.1 执行:./sdk.unpack(请用root或sudo 权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。 ( 如果您需要通过WINDOWS 操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。) 本目录下的编译脚本支持 arm-himix100-linux 和 arm-himix200-linux 工具链,其中 arm-himix100-linux 对应uclibc库。arm-himix200-linux 对应glibc库。具体命令如下(以hi3516ev200举例) a:linux-4.9.37.tar.gz 将下载的 linux-4.9.37.tar.gz 存放到 osdrv的opensource/kernel目录中 b:yaffs2utils-0.2.9.tar.gz 将下载的 yaffs2utils-0.2.9.tar.gz 存放到osdrv的tools/pc/mkyaffs2image/目录中 c:gdb-7.9.1.tar.gz将下载的 gdb-7.9.1.tar.gz 存放到 osdrv的tools/board/gdb/目录中 d:ncurses-6.0.tar.gz将下载的 ncurses-6.0.tar.gz 存放到 osdrv的tools/board/gdb/目录中 e:util-linux-2.31.tar.gz将下载的 util-linux-2.31.tar.gz 存放到 osdrv的tools/pc/cramfs_tool/目录中 f:xz-5.2.2.tar.bz2将下载的 xz-5.2.2.tar.bz2 存放到 osdrv的tools/pc/squashfs4.3/目录中 n: squashfs4.3.tar.gz将下载的 squashfs4.3.tar.gz 存放到 osdrv的 tools/pc/squashfs4.3 目录中 g:e2fsprogs-1.42.13.tar.gz将下载的 e2fsprogs-1.42.13.tar.gz 存放到 osdrv的tools/board/e2fsprogs/中 h: lzo-2.09.tar.gz将下载的 lzo-2.09.tar.gz 存放到 osdrv的tools/pc/jffs2_tool/目录中 i:eudev-3.2.7.tar.gz将下载的 eudev-3.2.7.tar.gz 存放到 osdrv的tools/board/eudev-3.2.7目录中 j: libuuid-1.0.3.tar.gz将下载的 libuuid-1.0.3.tar.gz 存放到 osdrv的tools/board/mtd-utils/目录中 k: zlib-1.2.11.tar.gz 由于zlib 工具在pc端及board端多处都有使用到,所以需要将源码包分别放置到下面路径: 将下载的 zlib-1.2.11.tar.gz 存放到 osdrv的 tools/board/mtd-utils/ 目录中 将下载的 zlib-1.2.11.tar.gz 存放到 osdrv的 tools/pc/zlib/ 目录中 将下载的 zlib-1.2.11.tar.gz 存放到 osdrv的 tools/pc/squashfs4.3/ 目录中 l: mtd-utils-2.0.2.tar.bz2 由于mtd-utils在pc端及board端都有使用到,所以需要将源码包分别放置到下面路径: 将下载的 mtd-utils-2.0.2.tar.bz2 存放到 osdrv的 tools/board/mtd-utils/ 目录中 将下载的 mtd-utils-2.0.2.tar.bz2 存放到 osdrv的 tools/pc/jffs2_tool/目录中 m:gzip-1.8.tar.gz将下载的 gzip-1.8.tar.gz 存放到 osdrv的 tools/pc/hi_gzip/ 目录中 (1)编译整个osdrv目录:(多半成功不了)注意:默认不发布内核源码包,只发布补丁文件。内核源码包需自行从开源社区上下载。 从linux开源社区下载v4.9.37版本的内核: 1)进入网站:www.kernel.org 2)选择HTTP协议资源的Index of /pub/选项,进入子页面 3)选择linux/菜单项,进入子页面 4)选择kernel/菜单项,进入子页面 5)选择v4.x/菜单项,进入子页面 6)下载linux-4.9.37.tar.gz (或者linux-4.9.37.tar.xz)到osdrv/opensource/kernel目录下 make all 其中 hi3516dv200 和 hi3516ev300 支持 arm-himix200-linux 工具链 make OSDRV_CROSS=arm-himix200-linux CHIP=hi3516dv200 all make OSDRV_CROSS=arm-himix200-linux CHIP=hi3516ev300 all 注意:由于Makefile中文件系统编译依赖组件较多,不能保证单独编译的文件系统可用,建议采用make all编译; 但可单独编译uboot,kernel; 可以传如下参数: a, BOOT_MEDIA:spi(default) or emmc b, CHIP:hi3516ev200(default) or hi3516ev300 or hi3518ev300 or hi3516dv200 c, 如果客户想要更换可以使用TARGET_XLSM=*.xlsm来指定所需要的u-boot表格文件 (2)清除整个osdrv目录的编译文件:make clean (3)彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:make distclean (4)单独编译kernel:打补丁: 1)将下载的 linux-4.9.37.tar.gz 存放到 osdrv的opensource/kernel目录中 2)在linux服务器中进入 osdrv 的根目录,执行如下命令: cd opensource/kernel tar -zxf linux-4.9.37.tar.gz 这个文件夹上要是有个锁的标志的话需要加个权限 (chmod 777 linux-4.9.37.tar.gz) mv linux-4.9.37 linux-4.9.y cd linux-4.9.y patch -p1 < ../linux-4.9.37.patch cd ../ tar -czf linux-4.9.y.tgz linux-4.9.y cd ../../ 待进入内核源代码目录后,执行以下操作 cp arch/arm/configs/hi3516ev200_full_defconfig .config (emmc启动时执行如下操作:cp arch/arm/configs/hi3516ev200_emmc_defconfig .config) make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig 这个最好先别动选择Exit(后面需要根据需要生成内核的时候才需要更改这些) make ARCH=arm CROSS_COMPILE=arm-himix100-linux- uImage 生成的内核文件在arch/arm/boot/uImage (emmc启动时执行如下操作:cp arch/arm/configs/hi3516ev200_emmc_defconfig .config) make ARCH=arm CROSS_COMPILE=arm-himix100-linux- modules (5)单独编译uboot:注意:发布包默认按照DMEB板的配置发布,如果客户单板和DEMB板不一致,需要根据客户自己的单板环境修改 uboot表格才能使用,否则可能导致uboot无法启动或者其他问题。 进入 uboot目录 执行: tar -zxf u-boot-2016.11.tgz 待进入 uboot源代码目录 后,执行以下操作 make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3516ev200_defconfig (emmc启动时执行如下操作:make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3516ev200_emmc_defconfig) make ARCH=arm CROSS_COMPILE=arm-himix100-linux- -j 20 编译成功后,将在U-boot 目录下生成u-boot.bin。 Windowns下进入到osdrv/tools/pc/uboot_tools/目录下打开对应单板的Excel文件,在main标签中点 击"Generate reg bin file"按钮,生成reg_info.bin即为对应平台的表格文件。 使用板子对应的配置的那个表格 从osdrv/tools/pc/uboot_tools目录拷贝reg_info.bin到boot源代码目录,重命名为.reg cp ../../../tools/pc/uboot_tools/reg_info.bin .reg make ARCH=arm CROSS_COMPILE=arm-himix100-linux- u-boot-z.bin opensource/uboot/u-boot-2016.11下生成的u-boot-hi3516ev200.bin即为可用的u-boot镜像 (6)制作文件系统镜像:在osdrv/pub/中有已经编译好的文件系统,因此无需再重复编译文件系统,只需要根据单板上flash的规格型号制 作文件系统镜像即可-> 这个版本 rootfs_hi3516ev200_64k.jffs2 进入busybox 执行: tar -zxf busybox-1.26.2.tgz 1)配置busybox进入源码目录 找到config_v100_a7_softfp_neon或config_v200_a7_softfp_neon 复制一份改名为 .config 指定配置文件,更改配置本质上就是改.config文件,不用图形化界面直接打开.config文件直接编辑也行 config_v100_a7_softfp_neon 对应 32bit 操作系统工具链 arm-himix100-linuxlinux- 执行:make menuconfig busybox的配置界面和内核配置相似,其 功能选项 容易理解,可以根据自己的需求 选择配置。在 Busybox Settings --- > Build Options 中 第一个选项是用于选择 SDK 推荐的交叉编译器,配置好后保存并退出。欲了解busybox 各选项含义请参考busybox 配置帮助。 2)编译和安装busybox执行make make install 编译并安装成功后,在busybox 目录下的_install 目录下生成以下目录及文件: 在osdrv目录先执行:mkdir rootbox cd rootbox 在rootbox中创建以下文件夹 etc dev lib tmp var mnt home proc 在内核源码目录下创建名为_modules_install 执行:make ARCH=arm INSTALL_MOD_PATH=_modules_install modules_install 将生成在_modules_install/lib中的modules拷贝到rootbox中 etc 中需要inittab、fstab、init.d/rcS文件等,这些文件最好从 busybox-1.26.2/examples/bootfloppy/etc 目录下 拷贝过来,根据需要自行修改 dev 从系统根目录拷贝sudo cp -R /dev /home/tom/Hi3516EV200_SDK_V1.0.1.1/osdrv/rootbox 更改权限sudo chmod -R 777 dev/ lib 从opt/hisi-linux/x86-arm/arm-himix100-linux/runtime_uclibc/a7_softfp_neon-vfpv4中复制lib压缩包到 rootbox中的lib中并解压 sudo tar -xf /opt/hisi-linux/x86-arm/arm-himix100-linux/runtime_uclibc/a7_softfp_neon-vfpv4/lib.tgz -C ./ 将上一步中编译生成在_install中的bin sbin usr linuxrc复制到rootbox中 到这一步rootbox下应该有以下目录及文件 编译生成根文件系统的工具 解压automake-1.15.1 将autoconf-2.6.8解压到automake-1.15.1中 将m4-1.4.9 解压到autoconf-2.6.8中 包含关系如下 执行:./configure make sudo make install 返回上级目录 执行:./configure make sudo make install 返回上级目录 执行:./configure make sudo make install 解压lzo-2.09.tar.gz 将autoconf-2.68复制到 lzo-2.09 中一份 执行:./configure make sudo make install 在jffs2_tool目录下执行make 如果报错uuid和library安装下面的依赖 apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config 生成mkfs.jffs2 把它复制到usr/bin下 在osdrv目录下执行:mkfs.jffs2 -d ./rootbox -l -e 0x10000 -o rootfs.jffs2 生成我们需要的文件系统 |
CopyRight 2018-2019 实验室设备网 版权所有 |