hi3518e开发环境搭建

文章目录

  • 1.环境说明
  • 2.安装依赖软件
  • 3.修改sh
  • 4.SDK部署
    • 4.1.解压SDK
    • 4.2.安装交叉编译工具链
      • 4.2.1.测试
    • 4.3.更新mtd-utils
      • 4.3.1.获取mtd-utils_1.5.2
      • 4.3.2.修改Makefile中指定的源码包
  • 5.编译
    • 5.1.编译
      • 5.1.1.编译所有(uboot、kernel、rootfs)
      • 5.1.2.单独编译kernel
      • 5.1.3.单独编译module
      • 5.1.4.单独编译uboot
      • 5.1.5.构建可执行uboot
    • 5.2.清除
      • 5.2.1.clean
      • 5.2.2.distclean

1.环境说明

  • 操作系统:UbuntuServer 18.04
  • 海思SDK:Hi3518E_SDK_V1.0.3.0.tgz
  • 硬件:hi3518e

2.安装依赖软件

$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install -y bzip2 lib32z1-dev lib32stdc++6 lrzsz make \
u-boot-tools wget uuid-dev libncurses5-dev \
g++ gcc zlib1g-dev

3.修改sh

ubuntu默认使用的sh是指向dash的,而海思的sdk包中的脚本需要bash

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Feb 14 09:49 /bin/sh -> dash

$ sudo rm -f /bin/sh
$ sudo ln -s /bin/bash /bin/sh

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 9 Jul  9 03:45 /bin/sh -> /bin/bash

4.SDK部署

4.1.解压SDK

$ tar -zxvf Hi3518E_SDK_V1.0.3.0.tgz
$ cd Hi3518E_SDK_V1.0.3.0/
$ ./sdk.unpack

4.2.安装交叉编译工具链

$ cd osdrv/opensource/toolchain/arm-hisiv300-linux/
$ sudo ./cross.install.v300
$ source /etc/profile

4.2.1.测试

如果安装完成,执行下列操作可以正常显示gcc的版本信息

$ arm-hisiv300-linux-gcc -v

4.3.更新mtd-utils

SDK中自带的mtd-utils软件包是1.5.0版本,在高版本ubuntu中不匹配,需要更新到1.5.2版本

4.3.1.获取mtd-utils_1.5.2

$ cd osdrv/tools/pc/jffs2_tool/
$ wget http://nl.archive.ubuntu.com/ubuntu/pool/universe/m/mtd-utils/mtd-utils_1.5.2.orig.tar.bz2
$ mv mtd-utils_1.5.2.orig.tar.bz2 mtd-utils-1.5.2.tar.bz2

4.3.2.修改Makefile中指定的源码包

# 原始内容
MTD_UTILS      := mtd-utils-1.5.0

# 修改之后的内容
MTD_UTILS      := mtd-utils-1.5.2

5.编译

工作目录:

$cd Hi3518E_SDK_V1.0.3.0/osdrv 

编译生成目录

  • Hi3518E_SDK_V1.0.3.0/osdrv/pub/image_uclibc:烧录用的镜像

    • 镜像说明

      Hi3518E_SDK_V1.0.3.0/osdrv/pub/image_uclibc$ tree
      .
      ├── rootfs_hi3518ev200_128k.jffs2
      ├── rootfs_hi3518ev200_256k.jffs2
      ├── rootfs_hi3518ev200_2k_128k_32M.img
      ├── rootfs_hi3518ev200_2k_4bit.yaffs2
      ├── rootfs_hi3518ev200_32M.ext4
      ├── rootfs_hi3518ev200_64k.jffs2
      ├── u-boot-hi3518ev200.bin
      └── uImage_hi3518ev200
      
    • rootfs_hi3518ev200_xxx: 烧录用的根文件系统镜像

    • u-boot-hi3518ev200.bin:uboot镜像

    • uImage_hi3518ev200:kernel镜像

  • Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc.tgz:根文件系统

5.1.编译

5.1.1.编译所有(uboot、kernel、rootfs)

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

5.1.2.单独编译kernel

cp arch/arm/configs/hi3518ev200_full_defconfig  .config
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- uImage

5.1.3.单独编译module

cp arch/arm/configs/hi3518ev200_full_defconfig  .config
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- modules

5.1.4.单独编译uboot

make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- hi3518ev200_config  
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux-

5.1.5.构建可执行uboot

  1. 将生成的u-boot.bin复制到osdrv/tools/pc/uboot_tools/目录下,

  2. 运行./mkboot.sh reg_info.bin u-boot-ok.bin

  3. 生成的u-boot-ok.bin即为可用的u-boot镜像

5.2.清除

5.2.1.clean

清除整个osdrv目录的编译文件:

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 clean

5.2.2.distclean

彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 distclean

你可能感兴趣的:(hi3518e开发环境搭建)