0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

i.MX6ULL|快速配置环境配置记录

玩转单片机 来源:玩转单片机 2023-07-28 10:45 次阅读

最近换了新的笔记本,就把老的笔记本装了ubuntu,使用体验比虚拟机好很多,就算是老笔记本的配置,带个ubuntu还是非常流畅的,就是要重新配置环境,这篇文章就来记录下环境配置。

| 交叉编译器安装

交叉编译参考交叉编译器安装这篇推文,具体步骤记录得非常清楚。想要获取当前路径,可以使用 pwd 命令:

0d61bdc6-2c9b-11ee-815d-dac502259ad0.png

| uboot编译

uboot编译参照uboot初探这篇推文,里边有相关介绍和操作,这里就不做过多介绍。

0d9fa910-2c9b-11ee-815d-dac502259ad0.png

| 从网络启动 Linux 系统

可以通过从网络启动Linux系统这篇文章了解相关内容,在ubuntu20中查看ip地址可以使用 ip addr查看,在win11中可以使用ipconfig查看ip,在保证网线接到同一局域网中,还需要配置uboot才能ping通win11和win11,win11需要关闭防火墙,配置如下:

setenvipaddr192.168.2.50//开发板IP地址
setenvethaddrb81d:01:00:00//开发板网卡MAC地址
setenvgatewayip192.168.2.1//开发板默认网关
setenvnetmask255.255.255.0//开发板子网掩码
setenvserverip192.168.2.55/服务器地址,也就是Ubuntu地址
saveenv//保存环境变量

配置完后再重启开发板,再ping通win11和ubuntu,确保它们都在同一局域网下面。最后再搭建TFTP服务,测试linux能否正常通过网络启动。

测试启动

1、设置环境变量

进入uboot中,输入下面配置:

setenvbootargs'console=ttymxc0,115200root=/dev/mmcblk1p2rootwaitrw'
setenvbootcmd'tftp80800000zImage;tftp83000000imx6ull-14x14-evk-emmc.dtb;bootz80800000-83000000'
saveenv

2、下载文件

进入uboot中,输入下面命令:

tftp80800000zImage
tftp83000000imx6ull-14x14-evk-emmc.dtb

3、启动内核

进入uboot中,输入下面命令:

bootz80800000-83000000

| 编译内核

内核的编译可以参考移植内核这篇推文,里边有相关内容介绍及实现过程等。

内核编译配置如下:

#!/bin/sh
#编译之前先清理
makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-distclean
#配置Linux内核
makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-imx_v7_mfg_defconfig
#编译Linux内核
makeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-all-j16

最终会生成一个很重要的文件,就是zImage文件,下方是它存放在系统中的详细路径:

Linux内核镜像文件:
存放路径为arch/arm/boot/zImage

IMX6ULL EVK开发板对应的设备树文件:
存放路径为arch/arm/boot/dts/imx6ull-14x14-evk.dtb

| 编译根文件系统

根文件系统相关知识可以借鉴根文件系统构建这篇推文,详细介绍了如何从零到一构建一个根文件系统。

uboot配置:

setenvbootargs'console=ttymxc0,115200root=/dev/nfsnfsroot=192.168.2.55:/home/noah/linux/nfs/rootfs,proto=tcprwip=192.168.2.50192.168.2.1off'
saveenv

如果遇到根文件挂载失败的,可以借鉴以下下面的方法:

原因:因为ubuntu的nfs版本为version4,而板子的nfs版本为version2,所以直接挂载上去无法识别

解决方法:在 /etc/default/nfs-kernel-server的最后一行添加以下代码:

RPCNFSDOPTS="--nfs-version2,3,4--debug--syslog"

具体看下图(使用命令:sudo gedit nfs-kernel-server):

0dd50682-2c9b-11ee-815d-dac502259ad0.png

| 新字符驱动

字符驱动可以借鉴新字符设备驱动模板这篇文章,里边有完整的相关说明及源代码;从官方下载了Linux kernel源码进行编译,遇到如下错误:

cc1: error: code model kernel does not support PIC mode 解决方法:打开官方内核源码,在Makefile中对应修改一下:

ARCH?=arm
CROSS_COMPILE?=arm-linux-gnueabihf-
#Architectureaspresentincompile.h
UTS_MACHINE:=$(ARCH)
SRCARCH:=$(ARCH)

和


KBUILD_CFLAGS:=-Wall-Wundef-Wstrict-prototypes-Wno-trigraphs
-fno-strict-aliasing-fno-common
-Werror-implicit-function-declaration
-Wno-format-security
-std=gnu89-fno-pie

图片如下:

0e0bac14-2c9b-11ee-815d-dac502259ad0.png

0e276c74-2c9b-11ee-815d-dac502259ad0.png

最后加载驱动,然后测试应用程序,到此驱动开发环境基本搭建完成!






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    591

    浏览量

    27348
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28073
  • Uboot
    +关注

    关注

    4

    文章

    125

    浏览量

    28161
  • TFTP协议
    +关注

    关注

    0

    文章

    5

    浏览量

    5492
  • Ubuntu系统
    +关注

    关注

    0

    文章

    85

    浏览量

    3907

原文标题:i.MX6ULL|快速配置环境

文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【新品】i.MX6ULL工业嵌入式核心板!NXP低功耗MPU,LCD显示

    核心板新品上市ECK20-6Y2XA系列核心板是亿佰特基于NXPCortex-A7内核i.MX6ULL处理器精心设计的,采用邮票孔连接的低成本、低功耗、高性价比、高可靠性的嵌入式核心板。可广泛应用于工业控制、HMI、IoT等领域。
    的头像 发表于 11-15 01:04 96次阅读
    【新品】<b class='flag-5'>i.MX6ULL</b>工业嵌入式核心板!NXP低功耗MPU,LCD显示

    通过工业智能网关实现中间变量表达式的快速配置

    ,出现告警可能是多个变量达到条件而触发的,就需要对中间变量进行配置。 对此,物通博联提供基于工业智能网关实现中间变量表达式的快速配置操作。用户可以根据生产现场的应用需求,灵活配置中间变量表达式,实现多参数、多条件
    的头像 发表于 10-08 17:10 198次阅读
    通过工业智能网关实现中间变量表达式的<b class='flag-5'>快速配置</b>

    在NXP源码基础上如何适配ELF 1开发板的UART功能

    。 接下来,我们将针对上述几个UART接口逐一进行详细的配置说明。本次源码适配工作是在NXP i.MX6ULL EVK评估板的Linux内核源码(特定版
    的头像 发表于 09-29 11:49 283次阅读
    在NXP源码基础上如何适配ELF 1开发板的UART功能

    使用TPS6521815 PMIC为NXP i.MX 6ULL6UltraLite供电

    电子发烧友网站提供《使用TPS6521815 PMIC为NXP i.MX 6ULL6UltraLite供电.pdf》资料免费下载
    发表于 09-13 09:44 1次下载
    使用TPS6521815 PMIC为NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>6ULL</b>、<b class='flag-5'>6</b>UltraLite供电

    如何在NXP源码基础上适配ELF 1开发板的PWM功能

    本次源码适配项目是在NXP i.MX6ULL EVK评估板所搭载的Linux内核源码(版本为Linux-imx_4.1.15)基础上进行的,主要目标是通过调整功能接口引脚配置,使其适应ELF 1开发板。为了深入阐述这一适配过程,我们将以PWM功能的适配作为具体示例,深入解
    的头像 发表于 09-10 10:00 875次阅读
    如何在NXP源码基础上适配ELF 1开发板的PWM功能

    Linux平台移植音频芯片实战记录

    本文详细记录在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程,其他平台操作方法类似,希望为大家提供帮助。
    的头像 发表于 05-17 14:28 1022次阅读
    Linux平台移植音频芯片实战<b class='flag-5'>记录</b>

    浅析在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程

    本文详细记录在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程,其他平台操作方法类似,希望为大家提供帮助。
    的头像 发表于 05-17 11:33 1179次阅读
    浅析在NXP <b class='flag-5'>I.MX6ULL</b>+Linux平台下进行WM8960音频芯片移植的过程

    米尔NXP i.MX 93开发板限量6折!赋能入门级边缘处理市场

    NXP在处理器板块耕耘多年,从早期的i.MX6i.MX7→i.MX8,再到最新的i.MX9都已经有一条完整的生态链以及很多客户基础。i.MX
    的头像 发表于 04-29 08:01 505次阅读
    米尔NXP <b class='flag-5'>i.MX</b> 93开发板限量<b class='flag-5'>6</b>折!赋能入门级边缘处理市场

    I.MX6ULL-飞凌 ElfBoard ELF1板卡- 减少uboot阶段的等待时间

    ; saveenv 也可以在include/configs/mx6ullevk.h中将bootdelay设置为默认环境变量,并设置其值。 如果不设置bootdelay环境变量,我们也可以在代码中进行修改,在include/con
    发表于 04-12 09:06

    基于飞凌嵌入式i.MX6ULL核心板的电梯智能物联网关方案

    使用飞凌嵌入式FETMX6ULL-S核心板作为智能电梯物联网关的主控平台,为智能电梯的变革提供了强有力的技术支持。
    的头像 发表于 03-22 10:45 1391次阅读
    基于飞凌嵌入式<b class='flag-5'>i.MX6ULL</b>核心板的电梯智能物联网关方案

    适用于 NXP i.MX 6ULL6ULZ 和 6UltraLite的TPS6521835电源管理IC数据表

    电子发烧友网站提供《适用于 NXP i.MX 6ULL6ULZ 和 6UltraLite的TPS6521835电源管理IC数据表.pdf》资料免费下载
    发表于 03-01 09:10 0次下载
    适用于 NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>6ULL</b>、<b class='flag-5'>6</b>ULZ 和 <b class='flag-5'>6</b>UltraLite的TPS6521835电源管理IC数据表

    小疆CCLINK转ModbusTCP网关快速配置说明

    关键字:cclink ModbusTCP 三菱PLC CCLINK转ModbusTCP 本案例是用于指导客户快速使用CCLINK转ModbusTCP网关建立起设备通讯,具体功能如下图所示 拓扑图
    的头像 发表于 01-23 17:27 464次阅读
    小疆CCLINK转ModbusTCP网关<b class='flag-5'>快速配置</b>说明

    AD7147使用,input pin与conversion stage是怎么连接的?控制寄存器要如何快速配置?数据是怎么输入输出?

    AD7147使用,input pin与conversion stage是怎么连接的?控制寄存器要如何快速配置?数据是怎么输入输出的? 我需要用AD7147做几个简单的触控屏的驱动(仅仅是触控部分
    发表于 12-18 06:53

    jvm配置mx

    JVM配置中的mx参数主要用于设置JVM的最大堆内存大小。本文将详细介绍mx参数的作用、配置方法以及如何选择合适的值。 一、mx参数的作用
    的头像 发表于 12-05 14:24 674次阅读

    如何通过GPIO驱动配置实现控制i.MX8芯片引脚电平变化

    本文我们要讲的是如何通过 GPIO 驱动配置实现控制 i.MX8 芯片引脚电平变化。
    的头像 发表于 12-04 11:41 1032次阅读
    如何通过GPIO驱动<b class='flag-5'>配置</b>实现控制<b class='flag-5'>i.MX</b>8芯片引脚电平变化