海思Hi3516DV300芯片与ubuntu16.04开发环境的搭建

海思Hi3516DV300芯片与ubuntu16.04开发环境的搭建

安装依赖包以及编译arm-himix200交叉编译器

步骤 1 配置默认使用 bash

#sudo dpkg-reconfigure dash

选择 no

步骤 2 安装软件包

执行:

#sudo apt-get install make libc6:i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev

sudo apt install lib32z1-dev

#sudo apt-get install ncurses-term libncursesw5-dev g++ u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl

步骤 3 创建/etc/ld.so.preload 文件

并执行

#echo “” > /etc/ld.so.preload

以解决 64bit linuxserver 上某些第三方库编译失败的问题。

步骤 4 安装其他软件包

因为Linux交叉编译器是32位的,而ubuntu16.0.4是64位的,因此需要安装lib32ncurses5和lib32z1兼容x86的运行库及环境。

#sudo apt-get install lib32ncurses5
#sudo apt-get install lib32z1

为了解决Hi3516DV300 sdk 编译提示 cannot find uuid library required for mkfs.ubifs错误,安装u-boot-tools libuuid1:i386 gperf和zlib1g-dev liblzo2-dev uuid-dev pkg-config库。

#sudo apt-get install u-boot-tools libuuid1:i386 gperf
#sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config

步骤 5 编译arm-himix200交叉编译器
1)将toolchain\arm-himix200-linux.tgz拷贝到ubuntu16.0.4系统中

2)解压arm-himix200-linux.tgz

执行如下命令进行解压:

#tar –xzf arm-himix200-linux.tgz

3)安装arm-himix200-linux交叉编译器

运行

**#chmod +x arm-himix200-linux.install
然后运行

#./arm-himix200-linux.install
执行
#source /etc/profile

安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。
5)修改环境变量

#sudo vim ~/.bashrc

bashrc文件末尾添加以下代码:

export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH
export LC_ALL=C

6)配置环境变量生效

#source ~/.bashrc
image.gif

7)查看编译器版本

#arm-himix200-linux-gcc -v

编译osdrv

虽然目录下有详细解说文档,但是建议分开编译uboot和kernel,建议使用root用户进行编译等操作,sudo可能会掉权
首先,输入
su root ,环境也要改变
#vim ~/.bashrc
在环境变量末尾添加以下代码
export LC_ALL=C
export PATH=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin:$PATH

然后source一下使文件生效即可
解压下载下来的海思SDK包,然后运行
./sdk.unpack

编译kernel打补丁

将下载的 linux-4.9.37.tar.gz 存放到 osdrv/opensource/kernel 目录中
进入 osdrv 的根目录,执行如下命令:
cd opensource/kernel
tar -zxf linux-4.9.37.tar.gz

此时解压出来的osdrv文件夹处有read me,按照提示下载压缩包下来放到各自所处的位置。

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 …/…/
**
进入 osdrv/opensource/kernel/linux-4.9.y 目录
执行如下命令:
cp arch/arm/configs/hi3516dv300_smp_defong .config
source /etc/profile
export LC_ALL=C
sudo apt-get install u-boot-tools
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules //编译模块

生成的 uImage 在 linux-4.9.y/arch/arm/boot 目录下

编译uboot

进入目录osdrv/opensource/uboot
解压文件
tar -xzf u-boot-2016.11.tgz
cd u-boot-2016.11

编译uboot
先制作reg.bin文件
uboot_tools目录下制作reg.bin,参考readme
得出一个reg_info.bin文件,
tar -xzf hiregbin-v5.0.1.tgz
cd Hi3516CV500_SDK_V2.0.1.0/osdrv/tools/pc/uboot_tools/hiregbin-v5.0.1
之后复制bin文件到hiregbin-v5.0.1,dv500的xlsm文件也复制到该目录,并且改名为Hi3516dv300
然后
chmod 777 hiregbin
./hiregbin ./Hi3516dv300.xlsm ./reg.bin

再回到 u-boot-2016.11执行
cp …/…/…/tools/pc/uboot_tools/reg.bin .reg
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- u-boot-z.bin

可以看到dv300的bin文件已经成功生成
一般解压运行那个
./sdk.unpack里面的smp_image_glibc文件夹就有所有镜像以及Bin文件了,不需要自己手动去编译那么多,把交叉编译工具链配置好就是弄好环境了。

五级标题
六级标题

猜你喜欢

转载自blog.csdn.net/weixin_42569526/article/details/107283720