美文网首页
移植linux3.4内核到2440

移植linux3.4内核到2440

作者: 吃苹果的猫C | 来源:发表于2016-11-28 09:44 被阅读122次

    平台: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

          本文链接:https://www.haomeiwen.com/subject/mhfopttx.html