2 1. 获取内核源码

       1、 首先,我先创建了一个kernal文件夹,用来保存源码

sudo mkdir -p ~/Desktop/linux-study/kernal
cd ~/Desktop/linux-study/kernal

你可以在自己的某个路径下,创建这样一个文件夹。

        2、之后进入这个文件夹,打开终端,获取内核源码。

git clone -b imx_4.1.15_2.0.0_ga https://github.com/nxp-imx/linux-imx.git
cd linux-imx

需要声明的是,我们依旧使用git来获取内核源码。当然,若是你没用安装git,或者clone失败,可以访问后面的链接,找到相应的分支,下载成zip包,解压到kernal目录下面。

 2、配置内核选项

        1、在linux-imx目录,开始基础配置,终端输入下面命令

sudo make imx_v7_defconfig

        2、之后要手动的调节一些配置

sudo make menuconfig

进入Kernal Features

在()Allow old ABI binaries to run with this kernal选项前,按下y键

选项就变成了(*)Allow old ABI binaries to run with this kernal

之后进入File systems

检查 <*> The extended 4 (ext4) filesystem。若括号里没有*,按下y键,选中这个选项

 3、编译

退出menuconfig,退出后,终端输入命令

sudo make zImage
sudo make dtbs

需要注意的是,我们是在linux-imx路径下,在终端执行的这些命令。

4、生成文件

        编译完成后,会在以下目录,生成两个文件

arch/arm/boot/zImage(内核镜像)

arch/arm/boot/dts/imx6ull-14×14-evk.dtb(设备树二进制)

这就是我们所要用的文件。

这里一定要注意设备树文件名字、后缀,imx6ull-14×14-evk.dtb。少一个字母也不对!!

5、可能会遇到的问题

        1、not found问题

终端报错arm-linux-gnueabihf-gcc not found。

此问题是编译器没被找到,如果想要,解决该问题,直接修改Makefile文件。

(1)在linux-imx目录下,打开终端,修改makefile文件权限

sudo chmod 777 Makefile

(2)打开Makefile文件

sudo vim Makefile

(3)在Makefile开头处,做如下修改

ARCH=arm
CROSS_COMPILE=/opt/arm-linux-gnueabihf-4.9.4/bin/arm-linux-gnueabihf-

需要注意的是:/opt/arm-linux-gnueabihf-4.9.4是我的编译器安装路径。如果你的编译器安装路径和我不一样,此处应该修改为你的实际安装路径

        2、运行menuconfig报错

首次运行menuconfig的时候,可能会缺少一些脚本工具,或者环境。

解决此类问题的核心就是,缺少什么就安装什么。

sudo apt-get install

使用上述命令安装缺少的环境、工具。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐