Linux环境下Intel Edison开发板板级配置完整指南:从串口调试到网络连接

📅 2026/7/29 16:00:09 👁️ 阅读次数 📝 编程学习
Linux环境下Intel Edison开发板板级配置完整指南:从串口调试到网络连接

1. 项目缘起与核心价值

最近在整理工作室的旧设备,翻出来几块尘封已久的Intel Edison开发板。这玩意儿当年可是物联网(IoT)领域的明星产品,集成了双核Atom处理器、蓝牙、Wi-Fi,还有那个独特的70针扩展接口。但说实话,对于很多刚接触嵌入式Linux开发的朋友来说,拿到Edison后的第一步——板级配置,往往就是第一个拦路虎。网上的资料要么年代久远链接失效,要么步骤零散不成体系,特别是如何在Linux主机环境下完成这一系列操作,更是让不少新手感到迷茫。

所以,我决定结合自己当年踩过的坑和积累的经验,写一个清晰、完整的“菜鸟入门”系列。这第一篇,我们就聚焦最基础也最关键的一步:在Linux系统中,为你的Edison开发板完成从“开箱”到“联网跑通第一个程序”的全部板级配置。所谓“板级配置”,说白了就是让这块“裸板”认识你的电脑,连上网络,具备基础的开发环境,为后续写代码、调应用铺平道路。无论你是想用Edison做智能家居网关、数据采集节点,还是学习嵌入式Linux开发,这一步都绕不过去。

整个过程会涉及到串口调试、固件刷写、网络配置、SSH登录等核心操作。别担心,我会一步步拆解,不仅告诉你怎么做,更会解释为什么这么做,以及每个环节可能遇到的“坑”和应对技巧。只要你有一台运行Linux的电脑(Ubuntu、Debian、Fedora等主流发行版都行),一块Edison主板(最好是带Arduino扩展板的套件),一根Micro USB线,就能跟着操作下来。

2. 开箱检查与硬件连接要点

在通电之前,我们先花几分钟理清硬件。Edison板本身非常小巧,直接操作不太方便,所以通常它会插在一块扩展板上。最常见的是Arduino扩展板(也叫Breakout Board)。请确认你的Edison模块已经牢固地插入扩展板的70针接口中,听到“咔哒”声表示锁紧。

接下来是连接电脑。Edison扩展板上通常有两个Micro USB接口,它们功能不同,极易混淆:

  • 靠近板子边缘的USB口(通常标记为J16UART:这个是串口控制台接口。它的主要作用是输出系统启动信息、提供命令行交互界面。在配置初期,我们与板子的“对话”全靠它。你需要用一根Micro USB线将它与电脑连接。
  • 靠近板子中央的USB口(通常标记为J15USB OTG:这个是设备模式接口。Edison可以通过这个口模拟成U盘,用于刷写系统固件,或者在配置好后通过RNDIS(一种网络设备模拟)功能让电脑通过USB共享网络给它。初期配置也会用到。

重要提示:很多新手失败的第一步就是插错了USB口。请务必记住:初始配置时,两个口都需要连接到电脑上J16用于看日志和输入命令,J15用于传数据和联网。

连接好后,给扩展板供电。有些扩展板有独立的电源接口,但多数情况下,通过J15J16的USB口供电就足够了。此时,Edison板上的电源指示灯应该亮起。

3. Linux环境下的串口驱动与终端配置

Edison通过J16(UART)与电脑通信,在Linux系统下,它会被识别为一个串口设备(如/dev/ttyUSB0)。首先,我们需要确保系统能识别到这个设备。

J16口连接到电脑后,打开终端,输入ls /dev/ttyUSB*命令。如果看到类似/dev/ttyUSB0的设备出现,说明驱动已自动加载(大多数现代Linux内核已包含ftdi_sio等驱动模块)。如果什么都没看到,可以尝试重新插拔USB线,或使用dmesg | tail命令查看内核日志,确认是否有设备接入记录。

接下来,我们需要一个终端程序来与这个串口通信。最常用的是screenminicom。这里我推荐screen,因为它简单直接,无需复杂配置。

  1. 安装screen(如果尚未安装)

    # Ubuntu/Debian sudo apt-get install screen # Fedora sudo dnf install screen
  2. 确定串口设备号:通常就是/dev/ttyUSB0。如果不确定,可以拔掉USB线,执行ls /dev/ttyUSB*,记下结果;再插上,再执行一次,多出来的那个就是。

  3. 使用screen连接串口

    sudo screen /dev/ttyUSB0 115200
    • /dev/ttyUSB0:你的串口设备。
    • 115200:波特率,Edison串口的标准通信速率。

执行命令后,终端可能会清屏并处于“等待”状态。此时,按一下Edison扩展板上的重启按钮(通常标记为SW1RESET),你应该会看到一串启动日志在屏幕上滚动。如果看到类似“Poky (Yocto Project Reference Distro) 1.6.1 edison ttyMFD2”的提示符,恭喜你,已经成功进入了Edison的系统控制台!

实操心得:使用screen时,退出会话的快捷键是Ctrl-A然后按K,再按Y确认。直接关终端窗口可能导致会话残留。如果遇到连接后无响应、乱码等情况,首先检查波特率115200是否正确,其次检查USB线是否完好,最后可以尝试换一个USB端口或重启screen会话。

4. 网络连接配置:Wi-Fi与USB RNDIS双保险

让Edison接入网络是后续安装软件、传输文件的基础。我们配置两种方式:Wi-Fi和USB RNDIS,互为备份。

4.1 配置Wi-Fi连接

在刚才的screen串口终端里,Edison启动完成后,会提示你登录。默认用户名是root没有密码,直接回车即可。

Edison使用connman作为网络连接管理器。配置Wi-Fi的命令如下:

connmanctl # 进入connmanctl交互模式 connmanctl> enable wifi connmanctl> scan wifi connmanctl> services # 此时会列出扫描到的Wi-Fi网络,记住你要连接的网络SSID(例如,MyHomeWiFi) connmanctl> agent on connmanctl> connect wifi_xxxxxxxxxxxx_MyHomeWiFi_managed_psk # 这里需要替换成上一步`services`命令列出的对应你Wi-Fi的那一长串ID # 然后会提示输入密码,输入后回车 connmanctl> quit

配置完成后,使用ifconfig命令查看wlan0接口,应该能看到获取到的IP地址。也可以用ping 8.8.8.8测试外网连通性。

4.2 配置USB RNDIS网络(极其重要)

Wi-Fi可能受环境干扰,而通过J15(USB OTG)口建立的RNDIS网络,则提供了一个稳定、高速的直连通道,在Wi-Fi配置失败或需要稳定传输时非常有用。

  1. 在Edison上操作:在串口终端中,编辑网络配置文件。

    vi /etc/systemd/network/usb0.network

    如果没有这个文件就创建。内容如下:

    [Match] Name=usb0 [Network] Address=192.168.2.15/24 DNS=8.8.8.8

    这里我们给Edison的usb0接口设置了一个静态IP192.168.2.15。保存退出。

  2. 重启网络服务

    systemctl restart systemd-networkd
  3. 在Linux电脑上操作:拔插一下连接J15口的USB线。然后在电脑终端输入ifconfigip a,寻找一个新增的网络接口,通常名为enp0s20f0u1usb0enx开头的名字。为其配置同一网段的IP。

    sudo ip addr add 192.168.2.1/24 dev enp0s20f0u1 sudo ip link set enp0s20f0u1 up

    请将enp0s20f0u1替换为你电脑上实际识别出的接口名。

  4. 测试连通性

    • 在电脑上ping 192.168.2.15
    • 在Edison串口终端里ping 192.168.2.1。 双向都能ping通,说明USB RNDIS网络配置成功。

踩坑记录:这里最大的坑就是电脑端的接口名每次拔插可能会变,以及防火墙可能阻挡ping包。如果ping不通,首先用ip a命令再三确认电脑端的接口名和IP配置是否正确。其次,可以暂时关闭电脑的防火墙测试(sudo ufw disable用于UFW,或相应命令)。配置成功后,建议将电脑端的IP配置写成脚本,方便下次使用。

5. 启用SSH服务并优化访问

一直用screen连着串口操作很不方便。配置好网络后,我们启用SSH,就可以用更友好的方式从电脑终端访问Edison了。

在Edison串口终端中,执行:

systemctl enable sshd systemctl start sshd

检查SSH服务状态:systemctl status sshd,确认状态为active (running)

现在,你可以从Linux电脑上,通过网络连接Edison了:

  • 通过Wi-Fi连接ssh root@[edison_wifi_ip]
  • 通过USB RNDIS连接ssh root@192.168.2.15

首次连接会提示保存主机密钥,输入yes即可。因为默认没有密码,会直接登录。

安全与便利优化

  1. 设置root密码:强烈建议在Edison上使用passwd命令为root账户设置一个强密码。
  2. 配置密钥登录(推荐):在电脑上生成SSH密钥对(ssh-keygen),然后将公钥(~/.ssh/id_rsa.pub)的内容,追加到Edison的/root/.ssh/authorized_keys文件中。这样以后登录无需密码,更安全便捷。
  3. 给Edison设置主机名:编辑/etc/hostname文件,改为你喜欢的名字,如my-edison。同时修改电脑的/etc/hosts文件,添加一行192.168.2.15 my-edison。之后就可以用ssh root@my-edison来连接了。

6. 系统更新与基础软件安装

基础的板级配置完成后,我们为Edison更新软件源并安装一些常用工具,打造一个顺手的开发环境。

Edison默认使用Yocto项目构建的Poky系统,其包管理器是opkg。首先更新软件列表:

opkg update

接下来,安装一些必备或常用的软件包:

  • 文件传输opkg install openssh-sftp-server(如果SFTP未安装)、curlwget
  • 文本编辑opkg install vim(比默认的vi更好用)。
  • 开发调试opkg install gdb strace
  • 进程管理opkg install htop(一个强大的进程查看器)。
  • Python环境:Edison可能预装了Python 2.7,如果需要Python 3,可以尝试opkg install python3,但需注意Yocto仓库的版本。

注意事项:Yocto的软件仓库可能比较旧,某些软件包可能找不到或版本过低。这是嵌入式Linux定制发行版的普遍特点。如果确实需要新版本软件,通常需要自己用Yocto或Buildroot交叉编译,这属于进阶内容。对于入门学习和大多数应用,仓库中的基础版本足够使用。

安装完成后,可以运行htop看看系统资源占用,用vim编辑一个测试文件感受一下。

7. 固件刷写:恢复与升级指南

如果你的Edison系统损坏,或者想升级到某个特定版本的固件,就需要进行刷写。刷写是通过J15(USB OTG)口,将Edison置于设备模式(DFU模式),然后从电脑推送镜像文件完成的。

准备工作

  1. 从Intel官方存档或社区仓库下载所需的固件文件,通常是一个.zip包,解压后包含flashall.sh脚本和一系列.img文件。
  2. 确保J15口连接到电脑,并断开J16口的连接
  3. 在电脑上,进入解压后的固件目录。

进入DFU模式: 这是最关键且容易出错的一步。Edison上没有物理的DFU按钮,需要通过短路两个测试点来触发。

  1. 找到测试点:在Edison模块上(不是扩展板),寻找标记为J2-1J2-2的两个非常小的金属孔。它们通常位于模块边缘。
  2. 短路操作:在Edison通电状态下,用一根细小的镊子或导线,瞬间短接J2-1J2-2这两个测试点(大约1秒)。此时,Edison会重启并进入DFU模式。
  3. 电脑识别:在电脑上执行lsusb命令,如果看到Intel Corp. Edison [DFU device]之类的设备,说明成功进入DFU模式。

执行刷写: 在固件目录下,给刷写脚本执行权限并运行:

chmod +x flashall.sh sudo ./flashall.sh

脚本会自动检测DFU设备,并依次刷写各个分区镜像。整个过程可能需要几分钟,期间切勿断电或断开USB。刷写成功后,Edison会自动重启。

核心技巧与避坑

  1. 短接技巧:短接动作要“快而准”。太慢可能无法触发,太久可能导致异常。可以多尝试几次,同时观察lsusb的输出。
  2. 权限问题:必须使用sudo运行刷写脚本,因为它需要直接访问USB设备。
  3. 脚本失败:如果脚本报错,最常见的原因是DFU设备未正确识别,或下载的固件包不完整。重新进入DFU模式,并验证固件包的完整性(如MD5值)。
  4. 刷写后:刷写完成后,第一次启动时间会较长,因为系统需要初始化。请耐心等待,并通过J16串口观察启动日志。

至此,你的Intel Edison开发板已经在Linux主机环境下完成了从硬件连接到系统配置、网络设置、服务优化到固件恢复的全套板级配置。它现在已经是一块“活”起来的、具备完整网络能力和基础开发环境的嵌入式Linux设备了。你可以通过SSH方便地访问它,开始你的第一个嵌入式程序开发,比如用Python读取传感器数据,或者用C编写一个控制LED的程序。在接下来的系列文章中,我们会深入这些应用开发的具体实践。