2. 开发环境搭建:安装Ubuntu虚拟机、配置SSH服务、安装必要的开发工具

好,咱们正式开始动手了。这一章,我带你把开发环境搭起来。说白了,就是给你的Windows或Mac电脑里塞一个“Linux工作间”。我做了这么多年嵌入式,可以负责任地告诉你——环境搭得顺不顺,直接决定你后面几天的心情。

2.1 为什么非得用虚拟机?

你可能会问:“我直接装双系统不行吗?” 行,但我个人不建议。双系统切换起来太麻烦,而且万一搞崩了引导,你连电脑都进不去。虚拟机的好处是——随时可以快照、回滚、删除重来。我在项目里经常要测试不同内核版本,虚拟机一克隆就搞定,省心得很。

我的习惯: 每完成一个关键步骤,比如装好系统、配好SSH,都拍一张快照。万一后面搞坏了,5秒钟就能回到正常状态。

2.2 安装Ubuntu虚拟机

我推荐用 VMware Workstation 或者 VirtualBox。前者性能好一点,后者完全免费。这里我用VirtualBox举例,因为大家都能免费拿到。

2.2.1 下载Ubuntu镜像

去官网下载 Ubuntu 22.04 LTS 的ISO文件。为什么选22.04?因为它是长期支持版,稳定,而且软件源丰富。我之前用过18.04,后来发现有些新工具要自己编译,麻烦。22.04就省心多了。

2.2.2 创建虚拟机

  1. 打开VirtualBox,点击“新建”
  2. 名称填“Intel-Embedded-Linux”,类型选Linux,版本选Ubuntu (64-bit)
  3. 内存分配:至少4GB,我建议8GB。你想想看,后面编译内核的时候,内存小了直接卡死
  4. 硬盘:创建虚拟硬盘,大小给 50GB 以上。别抠门,后面装工具链、下载源码,空间很快就吃掉了
注意: 硬盘类型选 VDI,动态分配。这样一开始只占你电脑一点点空间,用多少涨多少。

2.2.3 安装系统

启动虚拟机,选择你下载的ISO文件。跟着安装向导走就行。这里我提醒几点:

  • 语言选 English。虽然咱们是中文用户,但终端里很多报错信息是英文的,用中文环境反而看不懂
  • 分区选“Erase disk and install Ubuntu”——别怕,它只擦虚拟硬盘
  • 用户名和密码记好了,后面SSH登录要用

安装完成后,重启。嗯,到这里你的Ubuntu虚拟机就跑起来了。

2.3 配置SSH服务

为什么要配SSH?因为后面我们要用终端远程连进来操作。我个人习惯是:虚拟机开在那里,用SSH客户端连进去,复制粘贴命令方便,而且可以多开几个终端窗口。

2.3.1 安装OpenSSH Server

打开终端,执行:

sudo apt update
sudo apt install openssh-server -y

装完之后,检查一下服务状态:

sudo systemctl status ssh

如果看到 active (running),就说明成功了。

2.3.2 配置网络

虚拟机默认用的是NAT模式,这样虚拟机可以上网,但宿主机连不上它。我们需要改成 桥接模式

  1. 在VirtualBox里,选中你的虚拟机,点击“设置”
  2. 进入“网络”选项卡,连接方式改成“桥接网卡”
  3. 界面名称选你电脑正在用的网卡(比如Wi-Fi或以太网)

重启虚拟机后,用 ip addr 查看IP地址。记下来,后面要用。

避坑指南: 我曾经在公司里配SSH,怎么都连不上,折腾了半天。后来发现是公司网络有防火墙,把22端口封了。如果你也遇到类似情况,可以试试把SSH端口改成2222:sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config,然后重启SSH服务。

2.3.3 从宿主机连接

在Windows上,我推荐用 MobaXterm 或者 Windows Terminal。Mac和Linux直接用自带终端就行。

ssh 你的用户名@虚拟机的IP地址

输入密码,你就连上了。以后操作都在这个终端里进行,方便又高效。

2.4 安装必要的开发工具

好了,环境通了,接下来装工具。这些是嵌入式开发的“吃饭家伙”,一个都不能少。

2.4.1 Git

Git用来管理代码版本。我见过太多人不用版本控制,改完代码就后悔。嗯,别做那种人。

sudo apt install git -y

装完后配置一下你的身份:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

2.4.2 Vim

Vim是终端里的编辑器,轻量、高效。虽然现在有VS Code,但在服务器上改配置文件,Vim还是最靠谱的。

sudo apt install vim -y

我个人习惯装一个插件管理器,方便扩展功能。不过初学者先别急,把基本操作练熟再说。

2.4.3 GCC 和构建工具

GCC是C语言的编译器。嵌入式Linux的很多代码都是用C写的,所以这个必须装。

sudo apt install build-essential -y

这个包会帮你装好GCC、G++、make等一堆工具。装完后验证一下:

gcc --version
make --version

2.4.4 其他常用工具

工具 用途 安装命令
curl 网络请求、下载文件 sudo apt install curl -y
wget 下载文件(比curl简单) sudo apt install wget -y
tree 以树形结构显示目录 sudo apt install tree -y
htop 系统资源监控 sudo apt install htop -y
net-tools 网络诊断(ifconfig等) sudo apt install net-tools -y

这些工具看着不起眼,但调试的时候能救命。我记得有一次排查网络问题,全靠 curlping 一步步定位到是DNS配置错了。

2.5 验证环境

最后,咱们写个简单的C程序,验证一下整个工具链是否正常:

#include <stdio.h>

int main() {
    printf("Hello, Intel Embedded Linux!\n");
    return 0;
}

保存为 hello.c,然后编译运行:

gcc hello.c -o hello
./hello

如果看到 Hello, Intel Embedded Linux! 打印出来,恭喜你——开发环境搭建成功!

总结一下: 这一章我们做了三件事——装了Ubuntu虚拟机、配了SSH远程连接、装了Git/Vim/GCC等开发工具。这些是后面所有章节的基础。别嫌麻烦,把每一步都走扎实了,后面才能跑得快。

下一章,咱们开始接触真正的嵌入式Linux内核。准备好了吗?