第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年支持,省得你过两年又要折腾升级。
安装步骤其实很简单:
- 下载Ubuntu ISO镜像(官网或者国内镜像站都行)
- 新建虚拟机,选择"稍后安装操作系统"
- 分配资源:内存至少4GB,硬盘至少40GB
- 加载ISO镜像,启动安装
- 一路默认选项,设置用户名密码即可
安装完成后,第一件事就是换源。国内用默认源下载软件包慢得你想砸电脑。
# 备份原源
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即可
sudo ufw disable
或者只开放22端口:
sudo ufw allow 22
1.6 本章知识体系
下面这张图帮你理清开发环境搭建的整体脉络:
嗯,到这里开发环境就搭好了。你有了一个可以随时折腾的Ubuntu虚拟机,网络也通了,还能远程登录。后面咱们就可以在这个环境里装各种开发工具、交叉编译链,开始真正的嵌入式Linux开发了。
最后提醒一句:虚拟机装好后,记得先拍个快照。我当年第一次配环境时,装完系统兴奋得直接开始搞开发,结果装软件包时把系统搞挂了,又得重装一遍。拍快照这个习惯,能救你无数次。