移植最新的linux4.9.9内核(适配fs4412平台)

移植最新的linux4.9内核适配fs4412(samsung exynos4412平台验证通过)

1.源码下载
官网下载最新的linux4.9.9内核:
http://www.kernel.org/pub/linux/kernel/

这里写图片描述
第三个数字是修订版本号

2.解压

tar xvf linux-4.9.9.tar.xz

解压也需要时间,需要耐心等待,注意不要打断解压过程。
3.配置
进入内核源码目录:cd linux-4.9.9
3.1 修改编译工具链
打开顶层的Makefile:

vi Makefile

修改:

ARCH  ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

为:


ARCH  ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi-

注:如果不修改编译工具链,默认使用编译x86的gcc编译器,如果不想修改Makefile也可以执行make时添加 如:
make uImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

3.2 导入默认的配置

 make exynos_defconfig

实际上是执行了:cp arch/arm/configs/exynos_defconfig .config
这里写图片描述
3.3 配置内核
执行

make menuconfig

这里写图片描述
修改指定内核的调试串口:

进入:Kernel hacking
                ->Kernel low-level debugging functions (read help!)  选择
                        ---> Kernel low-level debugging port (Use Samsung S3C UART 2 for low-level debug)  打开选择uart2

选择这个调试串口很重要,否则打印不出内核启动的相关信息(这个地方配置找了半天才找到,exynos默认没有打开此功能,没有打开此处会发现内核打印信息停止在Starting kernel …处)
4.编译
4.1 编译uImage镜像

make uImage -j2 LOADADDR=0X40008000

-j2表示双线程编译
LOADADDR=0X40008000 表示指定内核的加载地址(注:没有此选项编译生成uImage会报错)
最后提示以下错误。

 Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses: 
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make[1]: *** [arch/arm/boot/uImage] 错误 1
make: *** [uImage] 错误 2

经过漫长的等待,结果显示如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值