作者
QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118
参考
ReleaseDoc\zh\01.software\board\Hi3531DV100 SDK 安装以及升级使用说明.txt
ReleaseDoc\zh\01.software\board\Hi35xxVx00 U-boot 移植应用开发指南.pdf
ReleaseDoc\zh\01.software\board\Hi35xxVx00 Linux 开发环境用户指南.pdf
readme.cn
[海思]–Hi3516aMpp开发环境配置
海思3536:kernel编译和mpp_single编译过程报错及解决方法
安装SDK
将路径Hi3531DV100R001C01SPC040\software\board
下的SDKHi3531DV100_SDK_V1.0.4.0.tgz
拷贝到Linux下,运行命令,
$ tar -zxvf Hi3531DV100_SDK_V1.0.4.0.tgz
$ cd Hi3531DV100_SDK_V1.0.4.0
$ ./sdk.unpack
SDK目录结构介绍,
|--Hi3531D V100R001C0xSPC0xx_SDK.rar
| |--01.software
| |--board
| |--Hi3531D_SDK_Vx.x.x.x
| |-- sdk.cleanup # SDK清理脚本
| |-- sdk.unpack # SDK展开脚本
| |-- osdrv # 存放操作系统及相关驱动的目录
| | |-- opensource # opensource源代码
| | | |-- busybox # busybox源代码
| | | |-- kernel # linux内核补丁文件
| | | |-- uboot # uboot源代码
| | |-- pub # 编译好的镜像、工具、drv驱动等
| | |-- tools # linux工具源代码
| | |-- readme_cn.txt # osdrv使用说明(中文版)
| | |-- readme_en.txt # osdrv使用说明(英文版)
| | |-- ...... #
| | `-- Makefile # osdrv Makefile
| |-- package # 存放SDK各种压缩包的目录
| | |-- osdrv.tgz # linux内核/uboot/rootfs/tools源码压缩包
| | |-- mpp.tgz # 媒体处理平台软件压缩包
| | |-- drv.tgz # drv压缩包
| | |-- osal.tgz # osal压缩包
| | |-- rootfs_*.tgz # rootfs压缩包
| | |-- image * # 可供FLASH烧写的映像文件,如内核、根文件系统
| |-- scripts # 存放shell脚本的目录
| |-- drv # drv目录
| |-- osal # osal目录
| | |-- include # 存放操作系统适配层的头文件的目录
| | |-- source # 存放操作系统适配层的源文件的目录
| |-- mpp # 存放媒体处理平台的目录
| |-- component # 组件源代码
| |-- extdrv # 板级外围驱动源代码
| |-- include # 对外头文件
| |-- ko # 内核模块
| |-- lib # release版本库以及音频库
| |-- linux.param # linux相关的全局编译选项
| |-- Makefile.param # mpp一些全局编译选项
| |-- tools # 媒体处理相关工具
| `-- sample # 样例源代码
|
|--arm-hisiv500-linux.tgz # uclibc交叉编译器压缩包
|--arm-hisiv600-linux.tgz # glibc交叉编译器压缩包
安装交叉编译工具链
工具链有两种,目前采用uclibc版本的,比较小,百度网盘下载比较快,
- arm-hisiv500-linux.tgz对应uclibc
- arm-hisiv600-linux.tgz对应glibc
运行命令,
$ tar -zxvf arm-hisiv500-linux.tgz
$ gedit arm-hisiv500-linux.install
TOP_DIR=/etc/hisi-linux/x86-arm -> TOP_DIR=/home/qe/program/Hisilicon/hisi-linux/x86-arm
$ ./arm-hisiv500-linux.install
sorry, you must have super privilege!
1) I have root passwd 3) Try again 5) Aboart
2) I have sudo privilege 4) Ignore
#? 2
[sudo] password for qe:
$ cat /etc/profile
...
# Wed Dec 25 18:02:12 PST 2019
# Hisilicon Linux, Cross-Toolchain PATH
export PATH="/home/qe/program/Hisilicon/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin:$PATH"
#
readme.cn
,编译sdk,
make OSDRV_CROSS=arm-hisiv600-linux PCI_MODE=master FLASH_TYPE=nand all
编译u-boot
注意xx
表示3531d
,搞了半天,
$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- hi3531d_nand_config
$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux-
首先用excel制作reg info
文件,然后更新生成烧录的boot镜像u-boot.bin
,
$ cd Hi3531DV100_SDK_V1.0.4.0/osdrv/tools/pc/uboot_tools/
$ cp osdrv/opensource/uboot/u-boot-2010.06/u-boot.bin .
$ ./mkboot.sh reg_info_hi3531d.bin u-boot.bin
编译env tools时注释掉,
Hi3531DV100_SDK_V1.0.4.0/osdrv/opensource/uboot/u-boot-2010.06/include/linux/types.h:154:36: error: conflicting types for ‘uintmax_t’
typedef u_int32_t uintmax_t;
编译内核
$ cd Hi3531DV100_SDK_V1.0.4.0/osdrv/opensource/kernel/linux-3.18.20
$ patch -p1 < ../hi3531dv100_for_linux_v3.18.y.patch
$ make ARCH=arm hi3531d_nand_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig
$ make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- -j4
$ ls -l arch/arm/boot/
total 13308
drwxrwxr-x 2 qe qe 4096 Aug 7 2015 bootp
drwxrwxr-x 2 qe qe 4096 Dec 25 22:52 compressed
drwxrwxr-x 3 qe qe 36864 Dec 25 22:56 dts
-rwxrwxr-x 1 qe qe 6715424 Dec 25 22:52 Image
-rw-rw-r-- 1 qe qe 1648 Aug 7 2015 install.sh
-rw-rw-r-- 1 qe qe 3587 Dec 25 19:15 Makefile
-rwxrwxr-x 1 qe qe 3422352 Dec 25 22:52 zImage
-rw-rw-r-- 1 qe qe 3435538 Dec 25 22:52 zImage-dtb
编译mpp
遇到一些错误,待定位
$ cd mpp/
# export LIBC?=glibc
$ cd sample/
$ make
$ cd tools/
$ make
$ cd component/hdmi/sample/
$ make
$ cd component/pci/
$ make
# WARNING: "osal_remove_proc_entry" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
# WARNING: "PCIV_FirmWareGetPreProcCfg" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
# WARNING: "hios_mcc_setopt" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
# WARNING: "osal_printk" [/home/qe/program/Hisilicon/Hi3531DV100_SDK_V1.0.4.0/mpp/component/pci/pciv/kernel/hi3531d_pciv.ko] undefined!
...
$ cd extdrv/
$ make
$ cd osal/source/kernel/
$ make
巨魔总结
我们遇到什么困难都不要怕,微笑着面对,战胜困难的唯一方法就是面对,奥利给!,欢迎加入巨魔的QQ群852283276