现在Linux内核源码的ARM体系结构已经引入了设备树的概念。设备树是描述硬件的数据结构,将之前配置在内核源码中的一部分提取出来。所以分别对内核和设备树文件进行配置和编译。本章节仍然以三星的exy4412芯片为例。

  • 通过内核的配置文件可以对内核进行配置,可以通过make menuconfig来进行图形化配置
  • 设备树文件描述CPU与外围硬件的配置和连接信息,在 arch/arm/boot/dts/ 目录下

 

首先将在Ubuntu环境中,添加交叉编译工具到PATH变量,永久有效。

root@linux:~/linux-3.14-fs4412# vim /etc/bash.bashrc 
export PATH=/home/linux/soft/gcc-4.6.4/bin:$PATH


/home/linux/soft/ 是工具链的路径,添加到PATH的头部;写入/etc/bash.bashrc 中保证重启机器后变量仍然有效。

 

内核配置编译流程

下载内核 linux-3.14.tar.xz

https://www.kernel.org/

 

1.解压内核

tar -xvf  linux-3.14.tar.xz 

 

2.进入目录,在Makefile中指定交叉编译工具

root@linux:~/linux-3.14-fs4412# vim Makefile
ARCH            ?= arm
CROSS_COMPILE   ?= arm-none-linux-gnueabi-

ARCH指定默认索引路径,CROSS_COMPILE 指定交叉编译工具的前缀

 

3.导入三星公司对该芯片的配置文件

make exynos_defconfig     (arch/arm/configs/ 目录下,arch/arm/configs/exynos_defconfig)

 

4.也可以通过图形化的方式修改内核的配置文件

make menuconfig

ps:如果提示缺少图形库文件,试一下这个命令 

 sudo apt-get install libncurses5-dev

 

5.编译内核

make uImage

 

配置编译设备树

1.查看/修改设备树文件

vim arch/arm/boot/dts/exynos4412-fs4412.dts  

 

2.编译设备树

make dtbs