Linux内核裁剪
内核版本:Linux-3.14,需要其他版本的内核可以去官网下载https://www.kernel.org/
Ubuntu版本:16.04
一、搭建环境
交叉编译环境配置:
如果要自己编译工具链,从以下链接下载源码crosstools-ng下载地址
http://ymorin.is-a-geek.org/download/crosstool-ng/
将gcc拷贝到~/tool文件下,并进行解压。
拷贝命令:cp /mnt/hgfs/Share/gcc-4.6.4.tar.xz ~/tool/
解压命令:tar -xvf gcc-4.6.4.tar.xz
再进行环境变量的配置:
修改文件/etc/bash.bashrc添加如下内容
export PATH=$PATH:/home/tool/gcc-4.6.4/bin
重启配置文件
重启命令:source /etc/bash.bashrc
输入命令:arm-none-linux-gnueabi-gcc -v
如果出现了图片中的问题
使用命令:sudo apt-get install lsb-core 安装一下这个标准库就可以了。
以下图片表示交叉编译器环境配置成功。
首相将内核复制到Windows和Linux的共享文件夹下,j将内核拷贝到/home/Linux 目录下,然后我们将内核进行解压。
解压命令:tar -xvf linux-3.14.tar.xz linux-3.14
解压完成后,我们进入到内核中:cd linux-3.14
接下来我们需要修改内核顶层目录下的Makefile。
使用命令:vim Makefile
修改:
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
为:
ARCH ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi-
导入默认配置
make exynos_defconfig //vim arch/arm/configs/exynos_defconfig
• 配置内核
make menuconfig,如果报错,
使用命令:sudo apt-get install ncurses-dev进行安装
再次输入make menuconfig
根据自己的需要进行内核的裁剪。勾选和取消使用空格键。
选择完成后使用命令:make uImage
第一次编译内核时间有点长,请耐心等待。
若遇到以下问题。
使用命令:make uImage LOADADDR=0x40008000可以解决
编译成功后,我们在arch/arm/boot下会有uImage