嵌入式项目常用 Linux 部署与调试全流程


摘要

在嵌入式开发中,系统环境配置往往比代码更费时间。本教程系统整理了从 SSH 远程连接、联网驱动安装,到 Docker 隔离环境与 Conda 虚拟环境的完整 Linux 部署流程。内容覆盖 Ubuntu 18.04 至 24.04 各版本兼容问题、常见命令排查方法及镜像备份技巧。文中所有命令均可直接执行,适用于 Jetson、Raspberry Pi、Orin Nano、LiteOS 等平台。阅读后你将能在任意嵌入式平台上快速构建稳定的开发与调试环境,实现“一键部署”的高效工作流。


一、远程连接设备(SSH / 无界面登录)

1️⃣ 检查是否安装 SSH

which ssh
ps -e | grep sshd

若未安装:

sudo apt update
sudo apt install openssh-client openssh-server

2️⃣ 启动与自启设置

sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh

3️⃣ 登录远程设备

ssh 用户名@IP地址

默认端口为 22,如需更改:

sudo nano /etc/ssh/sshd_config

💡 建议:可在 /etc/hosts 中配置设备别名(如 jetson-nano.local),方便 SSH 免 IP 登录。


二、联网配置( 网卡驱动)

网卡驱动问题

部分 USB 网卡(如腾达 AX300/AX900)需手动安装:

驱动下载:https://www.tenda.com.cn/download
安装示例:

sudo dpkg -i tenda-ax300-linux-driver.deb
sudo modprobe mt7612u

⚠️ 注意:驱动需与当前内核版本匹配,可通过 uname -r 查看。


三、项目下载与版本兼容性

1️⃣ Git 与 LFS 配置

sudo apt install git git-lfs
git lfs install

2️⃣ 常见兼容性问题

问题类型 示例 解决建议
OpenCV 版本差异 Ubuntu 18.04 默认 3.x,22.04 为 4.x 指定编译版本或使用 Docker
GCC 标准冲突 Ubuntu 22.04 默认 C++17 修改 CMakeLists.txt 中标准
PCL / Eigen / Boost 差异 ABI 不兼容 使用 Conda 或 Docker 管理

四、Docker 环境构建(推荐)

Docker 可实现完全隔离的编译与运行环境。以下安装流程为官方推荐的 apt 仓库安装,不是Ubuntu 自带的 apt 包,因为自带的通常版本较低:

安装流程

请添加图片描述

sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo docker run hello-world

免 sudo 运行

sudo usermod -aG docker $USER
newgrp docker

自定义镜像

docker build -t my_embedded_env .
docker run -it --privileged --network host my_embedded_env

💡 建议

  • 使用 --network host 共享主机网络;
  • 若使用 ROS2,可同步 .bashrc 环境变量。

五、Python 环境管理(pip / conda)

1️⃣ pip 常规安装

sudo apt install python3-pip
pip install numpy opencv-python tqdm

2️⃣ Miniconda 安装(推荐)

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
# 创建环境测试
conda create -n embedded python=3.10
conda activate embedded

💡 建议
不同项目(如 RTAB-Map、SLAM、CV 模型)建立独立虚拟环境,避免冲突。


六、硬件与音频设备查看

命令 功能说明
lsusb 查看所有 USB 设备
aplay -l 查看声卡设备
pavucontrol 音频设备图形界面
dmesg grep usb 查看驱动加载情况
sudo lshw -C network 查看网络设备状态

七、系统排查与调试

分类 命令 用途
系统状态 uname -a 查看内核与架构
服务状态 systemctl status 服务名 查看后台服务
资源使用 top / htop 查看CPU与内存
日志排查 dmesg grep -i error 查看系统错误
文件内容 cat 文件 grep keyword 快速定位配置项

⚙️ 常见问题修复

  • Docker 无法启动 → sudo systemctl restart docker
  • SSH 无法连接 → 检查 ufw status
  • 无声 → pulseaudio -k && pulseaudio --start

八、嵌入式调试与镜像备份

1️⃣ 串口调试

sudo apt install minicom
sudo minicom -D /dev/ttyUSB0 -b 115200

2️⃣ 镜像备份与恢复

sudo dd if=/dev/mmcblk0 of=backup.img bs=1M
sudo dd if=backup.img of=/dev/mmcblk0 bs=1M

3️⃣ 权限问题修复

sudo usermod -aG dialout $USER

九、总结:一套可迁移的 Linux 嵌入式工作流

模块 功能 工具推荐
远程连接 设备控制 SSH / NoMachine
网络接入 外网访问 VPN + 驱动
项目管理 源码下载 Git + LFS
环境隔离 系统依赖 Docker
Python依赖 包管理 Miniconda
调试分析 驱动与系统状态 dmesg / systemctl
备份还原 系统迁移 dd / rsync

💬 写在最后

嵌入式 Linux 的难点不在命令多,而在于版本、依赖、权限、驱动的协调。
一旦熟练掌握以上流程,就能在 Jetson、树莓派、Orin Nano、LiteOS 等平台上快速搭建稳定开发环境

📌 关注我,获取更多嵌入式 + SLAM + AI 边缘系统优化实战文章。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐