第1章:开发环境搭建

做嵌入式Linux开发,第一步就是搭环境。这事儿说难不难,说简单吧,我见过不少新手在这上面卡好几天。今天咱们就把虚拟机、Ubuntu系统、网络配置、SSH远程登录这几个环节一次性搞定。

1.1 为什么非得用虚拟机?

你想想看,嵌入式Linux开发通常是在x86的电脑上写代码,然后交叉编译成ARM架构的程序,再烧录到目标板子上跑。直接在Windows上搞?兼容性问题能让你崩溃。双系统?来回切换太麻烦。

虚拟机的好处就是:

  • 不影响宿主机系统,搞坏了直接删掉重来
  • 可以随时拍快照,实验做砸了秒恢复
  • 一套开发环境打包带走,换电脑也能用
我的习惯:每完成一个重要配置就拍一次快照。比如装好系统拍一个,配好网络拍一个,装完开发工具再拍一个。这样万一后面搞崩了,不用从头再来。

1.2 虚拟机选VMware还是VirtualBox?

这两款我都用过很长时间。简单说说区别:

特性 VMware Workstation VirtualBox
性能 稍好,尤其3D加速 够用,轻量级场景不错
稳定性 非常稳定,商业级 偶尔有小毛病
价格 收费(有免费版Player) 完全免费开源
快照功能 支持,功能完善 支持,但略简陋
USB设备透传 稳定可靠 有时需要装扩展包

我个人建议:如果你是学生或者个人学习,用VirtualBox完全够用。如果是公司项目或者需要频繁调试USB设备,VMware更省心。

1.3 安装Ubuntu系统

我推荐用Ubuntu 20.04 LTS或者22.04 LTS。LTS版本有5年支持,省得你过两年又要折腾升级。

安装步骤其实很简单:

  1. 下载Ubuntu ISO镜像(官网或者国内镜像站都行)
  2. 新建虚拟机,选择"稍后安装操作系统"
  3. 分配资源:内存至少4GB,硬盘至少40GB
  4. 加载ISO镜像,启动安装
  5. 一路默认选项,设置用户名密码即可
注意:硬盘大小别选"动态分配"吗?其实可以选。但如果你选"固定大小",性能会好一些。我一般给60GB固定大小,用起来不心疼。

安装完成后,第一件事就是换源。国内用默认源下载软件包慢得你想砸电脑。

# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为清华源(Ubuntu 22.04为例)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# 更新
sudo apt update && sudo apt upgrade -y

1.4 配置网络环境

网络配置是新手最容易踩坑的地方。虚拟机网络模式主要有两种:

桥接模式(Bridged)

说白了,就是虚拟机直接连到你的路由器上,和宿主机平起平坐。虚拟机有自己的IP地址,局域网里其他设备可以直接访问它。

适用场景:你要在开发板上通过网络启动系统(比如TFTP/NFS),或者需要局域网内其他机器连你的虚拟机。

NAT模式

虚拟机通过宿主机上网,宿主机相当于一个路由器。虚拟机可以访问外网,但局域网其他设备访问不了虚拟机。

适用场景:只是自己学习,不需要外部设备连接虚拟机。

我的经验:做嵌入式开发,我强烈建议用桥接模式。因为后面你要用开发板通过网络加载内核和文件系统,NAT模式会多一层转发,麻烦得很。

配置桥接网络时要注意:

  • 确保宿主机网卡支持桥接(有线无线都行)
  • 虚拟机IP要和宿主机在同一网段
  • 如果公司网络有MAC地址绑定,需要找IT申请

1.5 安装SSH服务与远程登录

装好系统后,我习惯立刻开启SSH。为什么?因为后面你大部分时间都是通过SSH连到虚拟机操作的,不用每次都开虚拟机窗口。

# 安装SSH服务
sudo apt install openssh-server -y

# 查看SSH服务状态
sudo systemctl status ssh

# 如果没启动,手动启动
sudo systemctl start ssh

# 设置开机自启
sudo systemctl enable ssh

然后查看虚拟机的IP地址:

ip addr show

找到类似 192.168.1.100 这样的地址,记下来。

在宿主机上用SSH客户端连接:

# Windows用PowerShell或者Putty
ssh 用户名@192.168.1.100

# 第一次连接会提示确认指纹,输入yes即可
避坑指南:我曾经遇到过SSH连不上,排查了半天发现是防火墙没关。Ubuntu默认可能开了ufw防火墙,关掉它:
sudo ufw disable
或者只开放22端口:
sudo ufw allow 22

1.6 本章知识体系

下面这张图帮你理清开发环境搭建的整体脉络:

嵌入式Linux开发环境搭建 宿主机(Windows/Linux) 虚拟机软件(VMware / VirtualBox) 虚拟机系统(Ubuntu 20.04/22.04 LTS) 网络配置(桥接/NAT) SSH服务安装与配置 远程登录(Putty/终端) 图1-1 开发环境搭建整体架构

嗯,到这里开发环境就搭好了。你有了一个可以随时折腾的Ubuntu虚拟机,网络也通了,还能远程登录。后面咱们就可以在这个环境里装各种开发工具、交叉编译链,开始真正的嵌入式Linux开发了。

最后提醒一句:虚拟机装好后,记得先拍个快照。我当年第一次配环境时,装完系统兴奋得直接开始搞开发,结果装软件包时把系统搞挂了,又得重装一遍。拍快照这个习惯,能救你无数次。

可可精品资料库