移植linux3.4内核到2440

平台:JZ2440开发板
作者:赵贺

移植linux3.4内核到2440

1. 下载内核源码

https://www.kernel.org/pub/linux/kernel/

2. 交叉环境搭建(只要编译不出错,一般都可以使用,如果出现汇编错误,升级gcc版本即可)

工具下载
最新版下载

  1. 在/usr/local/下建立交叉编译器的安装目录arm
    sudo mkdir /usr/local/arm

  2. 将下载的交叉编译器包解压到/usr/local/arm目录下
    sudo tar jxvf cross-4.2.2-eabi.tar.bz2 -C /usr/local/arm/

  3. 解压成功后,修改PATH环境变量
    sudo vim /etc/profile

export PATH=$PATH:/usr/local/arm/4.2.2-eabi/usr/bin

Special for me:(下面是我配置的方法,由于经常需要更换编译器版本,用软链接指向当前的编译器)
sudo vim /etc/profile
export PATH=$PATH:/usr/local/arm/current_compiler/bin
sudo ln -s 编译器文件夹 /usr/local/arm/current_compiler/

  1. 更新一下配置文件/etc/profile
    source /etc/profile

3.解压内核

tar xvf linux-3.4.tar.bz2
make clean(每次编译内核前使用 make clean 一种良好的习惯)

4.修改Makefile

vim Makefile
修改
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

ARCH ?= arm
CROSS_COMPILE ?= arm-linux-

5.make xxx_defconfig(具体使用什么由厂家提供)

make s3c2410_defconfig (这个目录下可以找到 配置arm的全部的配置文件/linux-3.4/arch/arm/configs)

ps:执行make s3c2410_defconfig -n可以现实详细的信息

如果出现下面的错误
make: *** /home/zhaohe/Linux/linux-3.4/arch/arm: Is a directory. Stop.
查看上面的修改在行末是否有多出来的括号

6.make一下查看是否成功

7.支持串口调试

make menuconfig
"System Type--->"
    --->"(0)S3C UART to use for low-level messages"

这里我的理解
1,开发板上使用的COM1 这里之所以设置为0 因为计算机里面是以0开始的
2,即便这里设置成其他在命令行中 加入命令 set bootargs console=ttySAC0,115200 依然会使用ttySAC0

8.make uImage

make uImage

CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage //这个目录下可以找到uImage文件
Image Name: Linux-3.4.0
Created: Tue Nov 22 17:16:07 2016
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2353088 Bytes = 2297.94 kB = 2.24 MB
Load Address: 0x30108000 //这个地址是由链接文件指定的
Entry Point: 0x30108000

Image arch/arm/boot/uImage is ready

9. 下载内核到开发板子中 并启动

配置环境变量

set bootcmd 'tftp 30000000 uImage;bootm 30000000'

你可能感兴趣的:(移植linux3.4内核到2440)