韦东山IMX6ULL Pro开发板开箱:从零配置Ubuntu 18.04到点亮第一个LED灯(保姆级避坑指南)

张开发
2026/4/20 19:42:36 15 分钟阅读

分享文章

韦东山IMX6ULL Pro开发板开箱:从零配置Ubuntu 18.04到点亮第一个LED灯(保姆级避坑指南)
韦东山IMX6ULL Pro开发板开箱实战从零点亮LED的完整指南刚拿到韦东山IMX6ULL Pro开发板时面对成堆的线缆和陌生的Linux终端多数新手都会感到无从下手。本文将以点亮第一个LED灯为明确目标用真实的操作记录带你走过完整的开发流程——从拆箱接线到驱动编译每个步骤都包含我亲自踩过的坑和解决方案。不同于碎片化的知识罗列这是一条经过验证的可复现路径特别适合零基础但渴望快速看到成果的嵌入式开发者。1. 开箱与环境准备拆开IMX6ULL Pro开发板包装后你会看到以下核心组件开发板主体带散热片12V/2A电源适配器USB转串口调试模块网线与USB数据线包含资料的TF卡必须完成的物理连接将USB转串口模块的TX、RX、GND分别连接开发板的UART1接口注意交叉连接插入网线连接开发板与路由器最后接通电源开关位于板子边缘常见坑点串口模块需要安装CH340驱动Windows设备管理器出现黄色感叹号时需手动安装驱动验证连接成功的标志是使用MobaXterm等终端工具设置正确的COM端口波特率115200上电后能看到如下启动日志U-Boot 2016.03 CPU: Freescale i.MX6ULL rev1.1 792 MHz DRAM: 512 MiB MMC: FSL_SDHC: 02. Ubuntu开发环境搭建推荐使用韦东山提供的Ubuntu 18.04镜像已预装基础工具按以下顺序配置2.1 关键软件安装# 更新软件源 sudo apt-get update # 安装编译依赖 sudo apt-get install build-essential libncurses5-dev bison flex # 网络工具 sudo apt-get install tftp-hpa nfs-kernel-server2.2 网络配置双通道开发需要两种网络连接方式NAT模式用于Ubuntu上网下载软件桥接模式与开发板直连配置示例/etc/network/interfaces# NAT接口 auto ens33 iface ens33 inet dhcp # 桥接接口 auto ens38 iface ens38 inet static address 192.168.5.11 netmask 255.255.255.02.3 交叉编译工具链解压提供的arm-buildroot-linux-gnueabihf_sdk-buildroot.tar.xz后在~/.bashrc末尾添加export ARCHarm export CROSS_COMPILEarm-buildroot-linux-gnueabihf- export PATH$PATH:/opt/toolchain/bin执行source ~/.bashrc后测试arm-buildroot-linux-gnueabihf-gcc --version应显示gcc version 7.5.0等版本信息。3. 开发板与主机联调3.1 NFS共享目录设置在Ubuntu创建共享目录mkdir /home/book/nfs_rootfs chmod 777 /home/book/nfs_rootfs修改/etc/exports添加/home/book/nfs_rootfs *(rw,sync,no_root_squash,no_subtree_check)重启服务sudo service nfs-kernel-server restart3.2 开发板挂载NFS在开发板串口终端执行mount -t nfs -o nolock,vers3 192.168.5.11:/home/book/nfs_rootfs /mnt成功挂载后在/mnt下创建文件会实时同步到Ubuntu主机。排错技巧如果挂载失败检查双方防火墙是否关闭sudo ufw disable4. LED驱动实战全流程4.1 获取内核源码从提供的资料中找到linux-4.9.88.tar.xz解压tar xvf linux-4.9.88.tar.xz cd linux-4.9.884.2 编译内核与设备树make 100ask_imx6ull_defconfig make zImage -j4 make dtbs生成的产物arch/arm/boot/zImage内核镜像arch/arm/boot/dts/100ask_imx6ull-14x14.dtb设备树复制到NFS共享目录cp zImage dtbs /home/book/nfs_rootfs4.3 LED驱动编译进入驱动示例目录02_led_drv_for_boards/100ask_imx6ull_src_bin执行make生成的100ask_led.ko即为驱动模块ledtest是测试程序。4.4 开发板加载驱动在开发板串口终端insmod /mnt/100ask_led.ko ./mnt/ledtest /dev/100ask_led0 on此时开发板上的黄色用户LED应被点亮执行off参数则熄灭。深度优化修改设备树文件arch/arm/boot/dts/100ask_imx6ull-14x14.dts可以重新定义LED对应的GPIO引脚leds { compatible gpio-leds; led0 { label led0; gpios gpio1 3 GPIO_ACTIVE_LOW; /* 修改GPIO编号 */ linux,default-trigger heartbeat; }; };5. 进阶调试技巧当驱动加载失败时可通过以下命令排查dmesg | tail -20 # 查看内核日志 cat /proc/devices # 查看已注册设备号 ls /sys/class/leds # 检查LED设备节点对于更复杂的驱动开发建议在Ubuntu安装kgdb进行内核调试sudo apt-get install kgdb make menuconfig # 开启KGDB选项记得在每次内核修改后重新编译并更新NFS目录中的文件。当你在黑暗中看到那个黄色LED终于亮起时这种成就感正是嵌入式开发的魅力所在——这不仅是点亮了一个灯更是点亮了你进入Linux驱动开发的大门。

更多文章