iMX8MM linux5.15.32移植

  • 1. 添加板子
    • 1.1 添加配置文件
    • 1.2 添加设备树
  • 2. 修改设备树
    • 2.1 修改网卡
    • 2.2 修改SD卡
    • 2.3 关闭屏幕
  • 3. 编译验证
    • 3.1 编译
    • 3.2 验证
  • 4. 总结

我移植的板子是讯为i.MX8MM开发板,参考板为官方 8MMINILPD4-EVK开发板。

  1. iMX8MM uboot2021.04 linux5.15.32移植
  2. iMX8MM启动流程
  3. iMX8MM u-boot2021.04移植
  4. iMX8MM linux5.15.32移植
  5. iMX8MM buildroot-2022.02.5构建根文件系统

1. 添加板子

Linux移植我们只需要添加配置文件和设备树。

1.1 添加配置文件

官方是相同arm架构的板子公用一个配置文件,自己板子的配置文件最好单独存一份,每次修改配置最好保存,在源码目录下执行下列命令创建我们自己板子的配置文件。

$ cd arch/arm64/configs/
$ cp imx_v8_defconfig imx8mm_topeet_defconfig

1.2 添加设备树

复制参考板的设备树文件,在源码目录下执行下列命令创建我们自己板子的设备树文件。

$ cd arch/arm64/boot/dts/freescale/
$ cp imx8mm-evk.dts imx8mm-topeet.dts
$ cp imx8mm-evk.dtsi imx8mm-topeet.dtsi

修改arch/arm64/boot/dts/freescale/imx8mm-topeet.dts文件

// 文件arch/arm64/boot/dts/freescale/imx8mm-topeet.dts#include "imx8mm-evk.dtsi"
// 改为
#include "imx8mm-topeet.dtsi"//根节点下的这两个属性改为
/ {model = "FSL i.MX8MM TOPEET board";compatible = "fsl,imx8mm-topeet", "fsl,imx8mm";
};

修改arch/arm64/boot/dts/freescale/Makefile文件

# 在文件最后加下面一行
dtb-$(CONFIG_ARCH_MXC) += imx8mm-topeet.dtb

2. 修改设备树

这部分和uboot一样,修改网卡和SD卡的一个引脚。

2.1 修改网卡

讯为i.MX8MM开发板使用的phy芯片和官方iMX8MM EVK开发板是同系列,只有设计上略有不同。讯为i.MX8MM开发板的phy芯片复位引脚接到了GPIO2_IO10上,所以要对phy配置复位引脚。因为这个引脚官方开发板被usdhc1用在了WiFi上,我们先不使用WiFi把usdhc1失能掉。

// 文件arch/arm64/boot/dts/freescale/imx8mm-topeet.dtsi&iomuxc {pinctrl_fec1: fec1grp {fsl,pins = </* MX8MM_IOMUXC_SAI2_RXC_GPIO4_IO22     0x19 */MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10      0x19>;};
};
// 文件arch/arm64/boot/dts/freescale/imx8mm-topeet.dts&usdhc1 {// status这个属性改为disabledstatus = "disabled";
};

2.2 修改SD卡

讯为i.MX8MM开发板和官方iMX8MM EVK开发板SD卡,只有SD2_DET引脚不同。讯为i.MX8MM开发板SD2_DET引脚接到了GPIO2_IO12上,所以要对SD配置CD引脚。

// 文件arch/arm64/boot/dts/freescale/imx8mm-topeet.dtsi&usdhc2 {// 更改cd引脚属性cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
};&iomuxc {pinctrl_usdhc2_gpio: usdhc2grpgpiogrp {fsl,pins = <MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12  0x1c4>;};
};

2.3 关闭屏幕

因为我没有屏幕,所以需要失能屏幕。

// 文件arch/arm64/boot/dts/freescale/imx8mm-topeet.dtsi&lcdif {status = "disabled";
};&mipi_dsi {status = "disabled";
};

3. 编译验证

3.1 编译

利用之前安装的工具链,执行下列命令完成编译。

$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- imx8mm_topeet_defconfig
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j12

3.2 验证

进入uboot命令行设置服务器地址,并保存。

=> setenv serverip 192.168.0.100
=> saveenv

arch/arm64/boot/Imagearch/arm64/boot/dts/freescale/imx8mm-topeet.dtb复制到tftp服务器文件夹中,重启开发板会自动下载linux镜像和设备树并启动。

linux启动成功,无法挂载NFS文件系统。

4. 总结

linux移植就完成了,下面将利用buildroot构建一个根文件系统。本文仅供学习参考,如有问题欢迎指正。

移植源码获取:

git clone https://github.com/Sonboy97/linux.git -b imx

iMX8MM linux5.15.32移植相关推荐

  1. 基于linux5.15.5的IMX 参考手册 --- 12

    基于linux5.15.5的IMX 参考手册 - 12 6.4.5 EPDC(电泳显示控制器接口) 6.4.5.1介绍 电泳显示控制器(EPDC)是一种直接驱动有源矩阵EPD控制器,设计用于驱动支持多 ...

  2. 基于linux5.15.5的IMX 参考手册 --- 10

    基于linux5.15.5的IMX 参考手册 - 10 6.3显示控制器 6.3.1 DPU (Display Processing Unit) 6.3.1.1介绍 显示处理单元(DPU)旨在支持视频 ...

  3. 基于linux5.15.5的IMX 参考手册 --- 9

    基于linux5.15.5的IMX 参考手册 - 9 第六章 视频 6.1捕捉概述 6.1.1 介绍 i.MX捕获驱动程序支持通过V4L2接口与相机传感器控制器和接口.应用程序不能直接使用相机驱动程序 ...

  4. davinci DM365-DM368开发攻略—linux-2.6.32移植

    本文最始出自http://www.360doc.com/content/12/0318/16/532901_195392228.shtml 一.介绍linux-2.6.32: Linux-2.6.32 ...

  5. ubuntu20 下从linux 5.14.0-1045 源码编译 linux-5.15.56 内核

    ubuntu20 下从linux 5.14.0-1045 源码编译 linux-5.15.56 内核 原以为会是很简单的事,结果还是颇废一番周折.很多情况是没有遇到过得.所以这里记录一下. 问题记录的 ...

  6. STM32CUBEIDE(15)----移植兆易创新SPI Nor Flash之GD25Q64Flash

    spi概述 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的 ...

  7. 基于linux5.15.5的IMX 参考手册 ---20

    基于linux5.15.5的IMX 参考手册 - 20 10.2.3 MMDC 10.2.3.1测试名称 •mmdc2 10.2.3.1.1位置 / unit_test / MMDC / 10.2.3 ...

  8. RK3399驱动开发 | 15 - RTC实时时钟芯片HYM8563S调试(基于linux5.4.32内核)

    文章目录 一.Linux RTC设备驱动框架 二.HYM8563实时时钟芯片 1. 简介 2. 引脚图 3. 连接原理图 三.设备驱动调试 1. 设备树节点描述 2. 使能内核驱动 3. 测试 四.h ...

  9. Ubuntu-Base在iMX8MM平台上的移植

    先说废话↓ 转眼大学快过完了,已经开始了毕业设计的开发.笔者的毕业设计是一个运行ARM-Linux的第一人称控制机器人,为了挑(zhe)战(mo)一下自己,选择了一个性能很美丽的平台--iMX8MM, ...

  10. linux5支持32,Red Hat发布RHEL5.3 可支持32颗虚拟CPU

    近日,Red Hat发布了适用于企业用户的Red Hat Enterprise Linux 5.3,当前稳定版的第三个更新.新的更新增加了新特性,增强了扩展性,支持OpenJDK和Intel Neha ...

最新文章

  1. mysql+keepalived必须要lvs吗_MySQL 双主热备 + LVS + Keepalived 高可用操作记录
  2. 千万级的mysql数据库与sql优化方法
  3. emoji .png_根据我对3.5GB聊天记录的分析,Emoji开发人员使用最多
  4. Koa 中实现 chunked 数据传输
  5. java如何确保单线程_java是如何解决单线程之间的通信问题呢?这篇文章给你答案...
  6. WeTest功能优化第3期:业内首创,有声音的云真机
  7. js实现select跳转
  8. Java多线程编程系列-多线程基础
  9. 分布式锁没那么难,手把手教你实现 Redis 分布锁!|保姆级教程
  10. 程序员如何接私活?十年码农悄悄告诉你
  11. 下载docker镜像包
  12. photoshop cc 2014(附完整软件和方法)
  13. *理解JavaWeb目录结构
  14. Canvas-2d fillRect
  15. R语言:基本变量及其之间关系探索分析
  16. UE4 键盘按键实现开关门
  17. php启动 大量sess文件,关于PHP中Session文件过多的有关问题
  18. 【190411】VC++ 双摄像头视频监控捕捉程序源代码
  19. Android手机如何更改hosts文件
  20. 如何做到两个IP地址是否属于同一网段?

热门文章

  1. Java工程师成神之路(2019正式版)
  2. PLC液压控制系列之比例流量阀结构分析
  3. 纯Java代码实现 企业微信钉钉 机器人群+告警
  4. 高考方向计算机基础试题题库,计算机基础考试题库 计算机基础考试题库(含答案).doc...
  5. 极域电子教室功能讲解-电子教室
  6. JDK1.7 jdk7安装和环境变量配置(Windows环境)
  7. android 显示系统时间,Android 实时获取当前时间并显示
  8. 自己动手开发多线程异步 MQL5 WEBREQUEST
  9. java 获取jsessionid_如何从JSESSIONID加载Java HttpSession?
  10. 2016noip-问题求解超级详细解