当前位置: 首页 > news >正文

Linux移植IMX6ULL记录 一:编译源码并支持能顺利进入linux

目录

前言

一、不修改文件进行编译

二、修改设备树文件进行编译


前言

        我用的开发板是100_ask_imx6ull_pro,其自带的linux内核版本linux-4.9.88,然后从linux官网下载过来的linux-4.9.88版本的arch/arm/configs/defconfig和dts设备树文件并没有对imx6ull做适配,即使是用make imx_v6_v7_defconfig,然后make,烧入后的zimage和dtb会导致启动linux一直卡着不动,也没有错误提示。所以果断放弃linux-4.9.88版本。

现在编译使用的linux版本为linux-fslc-5.4-2.1.x-imx。

NXP官网的linux下载地址https://github.com/Freescale/linux-fslc/tree/5.4-2.1.x-imx

一、不修改文件进行编译

首先设置好交叉编译器的环境变量,vim ~/.bashrc然后在末尾添加:

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH="$PATH:/usr/local/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin"

然后执行

make imx_v7_defconfig

make

然后把imx6ull-14x14-evk-emmc.dtb改名100ask_imx6ull-14x14.dtb(因为用的是100 ask自带的烧入工具,并且目前使用的uboot指定了设备树文件为100ask_imx6ull-14x14.dtb),分别烧入zImage和100ask_imx6ull-14x14.dtb,linux内核启动失败,错误如下:

二、修改设备树文件进行编译

从上图可以看到应该是mmc1没有加载到,所以是没有找到emmc存储设备,所以,出现问题就从dts设备树里对emmc的配置入手。

执行vim arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dts,能够看到只有对ushhc2的配置

跟踪代码,发现在arch/arm/boot/dts/imx6ul.dtsi里usdhc2对应着mmc1,所以问题应该是出在usdhc2没有配置对

打开100 ask imx6ull自带能正常启动的Linux-4.9.88内核代码,找到100ask_imx6ull-14x14.dts设备树文件,发现其对usdhc2的配置如下图,发现只是设置了pinctrl-0,并没有设置pinctro-1/2

所以我们修改自己移植的linux-fslc-5.4-2.1.x-imx,打开imx6ull-14x14-evk-emmc.dts

执行vim arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dts

修改如下图:

然后make,重新把imx6ull-14x14-evk-emmc.dtb改名100ask_imx6ull-14x14.dtb,分别烧入zImage和100ask_imx6ull-14x14.dtb,自此linux内核正常启动(如下图),后续就是配置各种硬件的设备树,如LCD,GPIO等等。

http://www.lryc.cn/news/488392.html

相关文章:

  • idea正则表达式-正则替换示例-2024.11笔记
  • Github 2024-11-20C开源项目日报 Top9
  • 安卓CameraX的使用
  • unity3d——基础篇小项目(开始界面)
  • 【YOLOv8】安卓端部署-1-项目介绍
  • 安卓手机root+magisk安装证书+抓取https请求
  • 11.20 深度学习-pytorch包和属性的基础语法
  • SpringMVC域对象共享数据
  • 每日论文23-24ESSERC 6.4-16.1Ghz混合并联-串联谐振器
  • 【软考】系统架构设计师-信息安全技术基础
  • kali搭建pikachu靶场
  • 注解用于从 HTTP 请求中提取数据
  • (Linux)搭建静态网站——基于http/https协议的静态网站
  • 【机器学习chp3】判别式分类器:线性判别函数、线性分类器、广义线性分类器、分段线性分类器
  • 【学习】【HTML】HTML、XML、XHTML
  • ARM中ZI-data段和RW-data段
  • 关联度分析、灰色预测GM(1,1)、GM(1,1)残差模型——基于Python实现
  • linux常用命令(网络相关)
  • 【uni-app多端】修复stmopjs下plus-websocket无心跳的问题
  • VScode学习前端-01
  • Java-05 深入浅出 MyBatis - 配置深入 动态 SQL 参数、循环、片段
  • 突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合
  • YOLO入门教程(三)——训练自己YOLO11实例分割模型并预测【含教程源码+一键分类数据集 + 故障排查】
  • 【加入默语老师的私域】C#面试题
  • 称重传感器指示器行业全面且深入的分析
  • NAT网络地址转换——Easy IP
  • 【Visual Studio系列教程】如何在 VS 上编程?
  • Mybatis-Plus 多租户插件属性自动赋值
  • AWTK-WIDGET-WEB-VIEW 实现笔记 (4) - Ubuntu
  • Python入门(7)--高级函数特性详解