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

    文章

    567

    浏览量

    26923
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27381
  • Uboot
    +关注

    关注

    4

    文章

    123

    浏览量

    27875
  • TFTP协议
    +关注

    关注

    0

    文章

    5

    浏览量

    5466
  • Ubuntu系统
    +关注

    关注

    0

    文章

    84

    浏览量

    3785

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

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

收藏 人收藏

    评论

    相关推荐

    jvm配置mx

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

    i.MX6ULL——ElfBoard ELF1板卡 初次编译uboot的方法

    在下面章节有讲解,本章节主要演示编译流程,ELF1开发板的配置文件为imx6ull_elf1_defconfig。 三、 编译 如果曾经编译过,在编译之前可以使用make clean命令清除一下中间
    发表于 11-16 09:34

    行车记录仪专用的配置工具:termconfigv1.52快速配置工具

    一款行车记录仪专用的配置工具,可以快速产生指令termconfigv1.52快速配置工具
    发表于 11-15 09:30 0次下载

    基于i.MX6ULL的掉电检测设计与软件测试

    基于i.MX6ULL的掉电检测设计与软件测试基于i.MX6ULL平台设计实现掉电检测功能,首先选择一路IO,利用IO电平变化触发中断,在编写驱动时捕获该路GPIO的中断,然后在中断响应函数中发
    的头像 发表于 11-09 10:40 479次阅读
    基于<b class='flag-5'>i.MX6ULL</b>的掉电检测设计与软件测试

    i.MX RT的FlexRAM配置问题

    i.MX RT的FlexRAM配置问题
    的头像 发表于 10-24 15:46 289次阅读
    i.<b class='flag-5'>MX</b> RT的FlexRAM<b class='flag-5'>配置</b>问题

    已知的HAB漏洞是否会影响i.MX6ULL版本1.1?

    我有一个 NXP iMX6ULL rev 1.1,发现i.MX6ULL 的 HAB 机制中存在两个已知漏洞。但是,我所指的文档并未指定芯片版本。因此,我不确定这些漏洞是否会影响我的设备。你能帮我澄清一下吗?
    发表于 06-02 09:07

    i.MX6ULL (MYiR MYD-Y6ULL) Linux v4的WiFi模块激活问题求解

    我在 MYiR MYD-Y6ULL 定制板中激活 WiFi 模块 (AP6212) 时遇到问题。问题出在 Linux v4 上,它在 Linux v5 上工作(可以看到 wlan0)。 这是我在
    发表于 06-01 08:15

    线程边界路由器i.mx6ull otbr-agent处于非活动状态是什么原因造成的?怎么解决?

    我关注 https://github.com/nxp-imx/meta-matter “如何在目标上设置 OpenThread 边界路由器”以在 i.mx6ull(定制板,非 EVK)上运行线程边界
    发表于 05-31 06:37

    如何在i.MX6ULL上为PF1510配置i2c?

    我们计划将 PF1510 与 i.MX6ULL 处理器一起使用。我看到这个设备树示例: https://github.com/Freescale/linux-fslc/blob
    发表于 05-17 14:02

    飞凌嵌入式技术帖——i.MX9352的GPIO怎么用?

    让我们一起走近i.MX9352处理器,深入了解这位i.MX系列新成员的GPIO该如何操作,以及它与前辈i.MX6ULL处理器又有哪些异同。
    的头像 发表于 05-16 15:07 612次阅读
    飞凌嵌入式技术帖——i.<b class='flag-5'>MX</b>9352的GPIO怎么用?

    i.MX6ULL上电序列是怎样的?

    请告诉我们 iMX6ULL 的上电顺序中的以下几点。 1. IMX6ULLIEC.pdf (DataSheet) 没有以下电源的序列描述。你介意认为如果在VDD_SNVS_IN之后就没有序列顺序
    发表于 05-09 10:09

    如何使用Linux版本在i.mx6ull上启用USB网络共享?

    我从 lf-5.10-y 分支为 i.mx6ull evk 构建了 Linux。我将我的 android 手机连接到 usb otg 端口并在我的手机上启用网络共享。但是我没有看到 USB0 接口
    发表于 05-09 08:06

    I.MX6ULL的SPI延迟问题如何解决?

    我们使用 NXP 的 I.MX6ULL 处理器和 TCAN4550 进行 CANFD 通信。我们在传输 CAN 数据时面临 SPI 延迟问题。CAN 数据传输/接收是根据 SPI 中断发生的。我们
    发表于 05-05 10:29

    i.MX6ULL u-boot中一些U盘访问失败怎么解决?

    :49:03 +0000) CPU:i.MX6ULL rev1.1 792 MHz(以 396 MHz 运行) CPU:工业温度等级(-40C 至 105C)在 50C 复位原因:POR 型号:i.MX6
    发表于 05-05 09:00

    I.MX6ULL官方SDK驱动LED灯

    本章学习如何使用NXP官方的imx6ull的SDK。
    的头像 发表于 05-03 20:53 44.8w次阅读
    <b class='flag-5'>I.MX6ULL</b>官方SDK驱动LED灯