前面工作中,有一段时间,再做海思相关的项目,hisi3531D是一款广泛应用在音视频领域的芯片,其解码的速度和效率,被业内称赞。本文主要是讲解海思3531D在linux系统环境搭建,包括u-boot、linux内核、根文件系统以及少写,以及如何实现网络环境开发。
1.内核编译
内核源代码中除了系统运行所必须的核心代码之外,还包含了各种各样的外部设备驱动、文件系统,以及一些跟某种特性相关的代码。而这些代码,在我们的业务环境中,并不都是必须的。我们将这些不必要的内容,通过配置选项进行筛选。进入内核源代码目录,运行如下命令,打开内核配置菜单,并对菜单上的选项进行配置:
cp arch/arm/configs/hi35xx_xxx_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- menuconfig
编译内核时需要在 make 后添加两个参数:ARCH=arm CROSS_COMPILE=arm-hisiXXXlinux-,其中 CROSS_COMPILE 表示工具链。文档中统一以 CROSS_COMPILE=arm-hisiXXXlinux-来表示两种情况。
Hi35xx_V100R001C01SPCxxx 对应 uclibc,使用 uclibc 工具链时,CROSS_COMPILE= armhisiv5x0-linux-。
Hi35xx_V100R001C02SPCxxx 对应 glibc,使用 glibc 工具链时,CROSS_COMPILE=armhisiv6x0-linux-。
2.首次安装Hi3531D的SDK
在"Hi3531DV100_V100R001***/01.software/board"目录下,找到一个Hi3531DV100_SDK_Vx.x.x.x.tgz 的文件,该文件就是Hi3531DV100的软件开发包。使用命令:tar -zxf Hi3531D_SDK_Vx.x.x.x.tgz ,解压缩该文件,可以得到一个Hi3531D_SDK_Vx.x.x.x目录。
3.展开SDK包内容
返回Hi3531D_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行**./sdk.cleanup**,收起SDK包的内容,拷贝到新的目录后再展开。
4.在linux服务器上安装交叉编译器
安装glibc交叉编译器(注意,需要有sudo权限或者root权限):获取arm-hisiv600-linux.tgz文件,使用命令:tar -zxf arm-hisiv600-linux.tgz解压文件,进入arm-hisiv600-linux目录,运行chmod +x arm-hisiv600-linux.install,然后运行**./arm-hisiv600-linux.install即可。执行source /etc/profile**, 安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆。
4.编译整个osdrv目录
下载linux-3.18.20.tar.gz (或者linux-3.18.20.tar.xz)到osdrv/opensource/kernel目录下
make OSDRV_CROSS=arm-hisiv500-linux PCI_MODE=XXX FLASH_TYPE=XXX all
清除整