参考海思官方文档:《Hi3519AV100╱Hi3556AV100 开发环境用户指南.pdf》、~/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/kernel/readme_cn.txt
1、下载v4.9.37版本的内核
- 进入网站:www.kernel.org
- 选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面
- 选择linux/菜单项,进入子页面
- 选择kernel/菜单项,进入子页面
- 选择v4.x/菜单项,进入子页面
- 下载linux-4.9.37.tar.gz
2、给linux内核打补丁
- 将下载的 linux-4.9.37.tar.gz 存放到 osdrv的opensource/kernel目录中
- 在linux服务器中进入 osdrv 的根目录,执行如下命令
cd opensource/kernel
tar -zxf 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
3、内核配置
- 需要先安装make工具:apt install make
- 需要安装依赖libncurses5-dev:apt install libncurses5-dev
- 不安装依赖运行make menuconfig会报错:fatal error: curses.h: No such file or directory
- 官方文档提示对内核不熟悉不要修改默认配置,但可以新增模块
source /etc/profile
cd linux-4.9.y
cp arch/arm/configs/hi3519av100_smp_nand_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
4、编译内核
- 编译前需安装镜像生成工具
- 编译好的镜像文件:arch/arm/boot/uImage
# 避免编译时找不到相应交叉编译工具
source /etc/profile
# 安装镜像制作工具,否则会报错:"mkimage" command not found - U-Boot images will not be built
sudo apt-get install u-boot-tools
# 编译内核
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j 20
# 出错后需清理并重新编译
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- clean
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j 20