新手必看!韦东山IMX6ULL开发板Linux环境搭建全流程(附常见问题解决)

从零到一:在IMX6ULL开发板上构建你的第一个Linux世界

很多朋友拿到像韦东山IMX6ULL这样的嵌入式开发板时,既兴奋又有点不知所措。兴奋的是终于可以动手实践了,不知所措的是面对全新的Linux环境、交叉编译、内核驱动这些概念,不知道从哪里开始。我刚开始接触嵌入式Linux时也有同样的感受,甚至花了好几天时间才让开发板正常启动。这篇文章就是为你准备的——无论你是刚毕业的学生,还是想从单片机转向Linux的工程师,我都会用最直白的方式,带你走完从开箱到运行第一个驱动程序的完整流程。

嵌入式Linux开发环境和我们平时在PC上写代码有很大不同。你需要同时和开发板、虚拟机、主机电脑打交道,中间涉及网络配置、文件传输、交叉编译等多个环节。任何一个环节出问题,都可能让你卡住很久。但别担心,这个过程虽然有点繁琐,但每一步都有明确的逻辑。一旦走通第一次,后面就会顺畅很多。

我会假设你完全是新手,从最基础的软件安装开始,一直到在开发板上运行自己编写的程序。过程中我会重点讲解那些容易踩坑的地方,比如为什么开发板ping不通虚拟机、文件传输后为什么没变化、编译出来的程序为什么在开发板上跑不起来等等。这些细节问题往往比主线步骤更耗费时间。

1. 开发环境搭建:打好地基

搭建开发环境就像盖房子前打地基,这一步做扎实了,后面的工作才能顺利进行。嵌入式Linux开发环境通常包含三个部分:主机电脑(我们日常用的Windows或Mac)、虚拟机(运行Ubuntu等Linux系统)、开发板(这里是IMX6ULL)。三者之间需要通过网络和USB连接起来,形成一个可以协同工作的环境。

1.1 软件准备与安装

首先需要在主机电脑上安装必要的软件。这些软件主要分为三类:虚拟机软件开发工具连接工具

  • 虚拟机软件:推荐使用VMware Workstation Player(个人使用免费)或VirtualBox。我更喜欢VMware,因为它的网络配置更直观,和主机文件共享也更方便。
  • Ubuntu系统镜像:韦东山提供的资料里通常包含了专门配置好的Ubuntu镜像,这个镜像已经安装好了交叉编译工具链、NFS服务等开发必需组件。对于新手来说,强烈建议直接使用这个现成的镜像,而不是自己从头安装配置。这能避免大量环境配置问题。
  • 连接与传输工具
    • 串口工具:用于通过串口连接开发板,查看启动信息、执行命令。MobaXterm、Putty、SecureCRT都可以,MobaXterm功能更全面些。
    • 文件传输工具:FileZilla(支持FTP/SFTP)用于在主机和虚拟机之间传输文件。
    • 代码编辑工具:Source Insight、VS Code、Sublime Text都可以。我个人习惯用VS Code,配合一些插件后对C语言和Makefile的支持很好。

安装这些软件没什么特别要注意的,基本都是“下一步”到底。唯一需要留意的是虚拟机软件的安装,如果系统提示要安装虚拟化驱动或重启电脑,按照提示操作即可。

1.2 虚拟机网络配置:让三者互通

网络配置是新手最容易卡住的地方。开发板、虚拟机、主机三者之间需要能互相访问,才能传输文件、挂载目录、远程登录。常见的配置方式有两种:桥接模式NAT模式

提示:如果你不确定该用哪种模式,可以先尝试桥接模式。大多数家庭路由器环境下,桥接模式配置起来更简单。

桥接模式下,虚拟机会获得一个和主机同网段的IP地址,就像一台真实的电脑接入了你的局域网。开发板也连接到同一个路由器,这样三者就在同一个网络里了。

配置步骤大致如下:

  1. 在VMware中打开虚拟机设置,找到网络适配器。
  2. 选择“桥接模式”,并勾选“复制物理网络连接状态”。
  3. 启动Ubuntu虚拟机,打开终端,用ifconfigip addr命令查看网络接口和IP地址。通常你会看到类似ens33ens36的接口名。
  4. 如果IP地址是192.168.x.x这样的形式(x通常不是1),说明桥接成功了。

为了让IP地址固定不变,方便后续操作,最好设置为静态IP。编辑网络配置文件:

sudo vi /etc/netplan/01-network-manager-all.yaml

在文件中添加或修改为以下内容(注意根据你的实际接口名和网段修改):

network:
  version: 2
  renderer: networkd
  ethernets:
    ens36:  # 你的网卡名
      dhcp4: no
      addresses: [192.168.31.100/24]  # 静态IP和子网掩码
      gateway4: 192.168.31.1  # 网关,通常是路由器地址
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

保存后应用配置:sudo netplan apply。然后用ping 192.168.31.1测试是否能通网关(路由器)。

NAT模式下,虚拟机通过主机的网络连接出去,但外部设备(如开发板)无法直接访问虚拟机。这时需要配置端口转发或使用其他方法,对新手来说稍复杂。所以初期建议先用桥接模式。

1.3 开发板初步连接与测试

给IMX6ULL开发板接上电源、串口线(USB转TTL)、网线。串口线连接主机的USB口,网线连接到同一个路由器。

打开串口工具(如MobaXterm),新建一个Serial会话:

  • 端口号:在Windows设备管理器中查看串口对应的COM号(如COM3)
  • 波特率:115200
  • 数据位:8
  • 停止位:1
  • 校验位:None
  • 流控:None

连接后,给开发板上电。你应该能在串口终端看到类似下面的启动信息:

U-Boot 2020.04 (Mar 15 2021 - 16:30:25 +0800)

CPU:   Freescale i.MX6ULL rev1.1 528 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 44C
Reset cause: POR
Model: Freescale i.MX6 ULL 14x14 EVK Board
Board: MX6ULL 14x14 EVK
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial
Net:   FEC0 [PRIME]
Hit any key to stop autoboot:  0 

如果没看到任何输出,检查:串口线是否接对(开发板的UART_TX接USB转TTL的RX,UART_RX接TX,GND接GND)、串口工具参数是否正确、开发板电源是否正常。

启动完成后,你会进入Linux命令行。先测试一下网络,用ifconfig eth0查看开发板的IP地址,然后尝试ping虚拟机的IP:

ping 192.168.31.100

如果能看到回复,说明网络通了。如果ping不通,检查:

  1. 开发板和虚拟机是否在同一个网段(IP地址前三位相同)
  2. 虚拟机防火墙是否关闭(sudo ufw disable
  3. 路由器是否允许设备间互相访问

2. 系统烧录与启动模式选择

IMX6ULL开发板支持多种启动方式,这通过板上的拨码开关来设置。理解这些启动方式,能帮你更好地理解开发板的工作原理,也能在系统出问题时进行恢复。

2.1 启动模式详解

IMX6ULL常见的启动模式有:

启动模式 拨码开关设置 启动介质 适用场景
SD卡启动 1:OFF, 2:OFF SD/TF卡 最常用的启动方式,适合开发和调试
eMMC启动 1:ON, 2:OFF 板载eMMC存储 产品量产时使用,系统存储在板载芯片中
USB启动 1:OFF, 2:ON USB OTG接口 用于通过USB烧录系统到eMMC或NAND
串行下载 1:ON, 2:ON USB OTG接口
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值