如何下载、编译官方kernal源码(4.1.15版本)(移植到imx6ull开发板上)
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
使用上述命令安装缺少的环境、工具。
更多推荐
所有评论(0)