首页 > 系统相关 >[I.MX6UL] Linux 内核移植(一)

[I.MX6UL] Linux 内核移植(一)

时间:2022-10-31 22:32:34浏览次数:48  
标签:make Linux 内核 linux imx 2.1 arm MX6UL


NXP 官方原版 Linux 4.1.15_2.1.0源码:https://cloud.189.cn/t/JZriMvVNJJBf

一定要先安装:sudo apt-get install lzop

终端输入:mkdir IMX6ULL

[I.MX6UL] Linux 内核移植(一)_ubuntu


将上面的 Linux 4.1.15_2.1.0源码放入IMX6ULL文件夹中。

[I.MX6UL] Linux 内核移植(一)_内核_02


终端输入:

tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
mv linux-imx-rel_imx_4.1.15_2.1.0_ga linux-imx-rel_imx_4.1.15_2.1.0_ga_mybsp //重命名
cd linux-imx-rel_imx_4.1.15_2.1.0_ga_mybsp/

修改顶层 Makefile
gedit Makefile
关键字搜索:CROSS_COMPILE

ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabihf-

[I.MX6UL] Linux 内核移植(一)_内核_03

进入到 Ubuntu 中的 Linux 源码根目录下,执行如下命令配置 Linux 内核:

make clean //第一次编译 Linux 内核之前先清理一下
make imx_v7_mfg_defconfig //配置 Linux 内核

[I.MX6UL] Linux 内核移植(一)_uboot_04

配置完成以后就可以编译了,使用如下命令编译 Linux 内核:

make -j16 //编译 Linux 内核

等待编译完成,结果如图所示:

[I.MX6UL] Linux 内核移植(一)_内核_05

至此我们得到两个文件:

①、Linux 内核镜像文件:zImage。 (arch/arm/boot)

②、NXP 官方 I.MX6ULL EVK 开发板对应的设备树文件:imx6ull-14x14-evk.dtb。(arch/arm/boot/dts)

新建 shell 脚本:gedit mx6ull_mybsp_emmc.sh
内容如下:

#!/bin/sh 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig
#make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16

使用方式:chmod 777 mx6ull_mybsp_emmc.sh
./mx6ull_mybsp_emmc.sh

下载烧录:

设置uboot环境变量

setenv bootargs ‘console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw’
saveenv

将zImage烧录到开发板中(参考 4、tftp 命令)

cp arch/arm/boot/zImage …/…/tftpboot/ -f
cp arch/arm/boot/dts/imx6ull-14x14-evk.dtb …/…/tftpboot/ -f

拷贝完成以后就可以测试了,启动开发板,进入 uboot 命令行模式,然后输入如下命令将zImage 和 imx6ull-14x14-evk.dtb 下载到开发板中并启动:

tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-evk.dtb
bootz 80800000 - 83000000

[I.MX6UL] Linux 内核移植(一)_ubuntu_06


标签:make,Linux,内核,linux,imx,2.1,arm,MX6UL
From: https://blog.51cto.com/xuejianqiang/5811332

相关文章

  • [I.MX6UL] Linux 内核移植(三) 网络驱动修改 配置文件另存为
    使能8线EMMC驱动Linux内核驱动里面EMMC默认是4线模式的,4线模式肯定没有8线模式的速度快,所以将EMMC的驱动修改为8线模式。修改方法很简单,直接修改设备树即可......
  • [I.MX6UL] Linux 内核移植(二) 在 Linux 中添加自己的开发板
    添加开发板默认配置文件将arch/arm/configs目录下的imx_v7_mfg_defconfig重新复制一份,命名为imx_mybsp_emmc_defconfig,命令如下:当前路径:~/linux/IMX6ULL/li......
  • [I.MX6UL]官方 SDK 移植实验
    我们参考ST官方给STM32编写的stm32f10x.h来自行编写I.MX6U的寄存器定义文件。自己编写这些寄存器定义不仅费时费力,没有任何意义,而且很容易写错,幸好NXP官方为I.MX6U......
  • [I.MX6UL] U-Boot 命令使用(五) EMMC 和 SD 卡操作命令
    uboot支持EMMC和SD卡,因此也要提供EMMC和SD卡的操作命令。一般认为EMMC和SD卡是同一个东西,所以没有特殊说明,本教程统一使用MMC来代指EMMC和SD卡。uboot......
  • [I.MX6UL] U-Boot 命令使用(四) 网络操作命令
    uboot支持大量的网络相关命令,比如dhcp、ping、nfs和tftpboot。在使用uboot的网络功能之前先用网线将开发板的ENET2接口和电脑或者路由器连接起来,I.MX6U-ALPHA开发......
  • linux下使用nvm
    安装curl-o-https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh|bash配置环境vim~/.bashrc在~/.bashrc的末尾,添加如下语句:exportNVM_DI......
  • Linux下使用nm命令排查和解决“undefined reference to ”
    一、案例    编译出一个动态库.libXXXEngine.so。然后直接在另一个工程中,把头文件include进来,并link到该库:-lXXXEngine.尝试编译,出错:.//libXXXEngine.so:undefin......
  • Linux下的C语言编写
    终端下输入:创建目录:mkdirC_Program进入目录:cdC_Program创建目录:mkdirhello_world进入目录:cdhello_world使用gedit:gedit输入以下代码并保存:#include<stdio.h>int......
  • Linux C语言 Makefile 的使用 函数
    创建三个.c文件终端输入:创建目录:mkdirMakefile进入目录:cdMakefile使用gedit:gedit第一个文件:main.c#include<stdio.h>#include"input.h"#include"calcu.h"intm......
  • [I.MX6UL] 用STM32的方式来写I.MX6UL程序
    /**************************************************************Copyright©zuozhongkaiCo.,Ltd.1998-2019.Allrightsreserved.文件名:mian.c作者:左......