现在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