4. Ubuntu 22.04 LTS 安装与基础配置:系统安装(双系统/虚拟机)、换源(阿里云/清华源)、SSH服务开启、VNC远程桌面配置
好,咱们进入正题。嵌入式平板开发,操作系统是地基。我个人习惯用 Ubuntu 22.04 LTS,稳定、软件源丰富,社区支持也到位。这一章我带你走一遍从安装到基础配置的全流程,包括双系统/虚拟机的选择、换源、SSH 和 VNC 配置。这些都是我实际项目中反复折腾过的,踩过的坑一并告诉你。
4.1 系统安装:双系统还是虚拟机?
先解决第一个问题:装双系统还是用虚拟机?这没有标准答案,得看你的实际场景。
我的建议:
- 虚拟机(推荐新手): 用 VMware 或 VirtualBox,安装简单,不影响宿主机。适合学习、调试、编译小型项目。
- 双系统: 需要直接操作硬件、跑大型编译任务、或者做性能敏感的开发(比如实时系统、GPU 加速)。
我在项目中遇到过一种情况:用虚拟机编译嵌入式 Linux 内核,结果因为磁盘 I/O 瓶颈,一次完整编译要 40 分钟。换成双系统后,直接缩短到 15 分钟。你想想看,如果每天编译十几次,这时间差就大了。
4.1.1 虚拟机安装(以 VMware 为例)
- 下载 Ubuntu 22.04 LTS 镜像(iso 文件),官网或镜像站都行。
- 新建虚拟机,选择「典型」配置,指定 iso 文件路径。
- 分配资源:建议至少 4GB 内存、2 个 CPU 核心、60GB 磁盘空间。
- 启动虚拟机,按提示完成安装。语言选中文,时区选上海。
- 安装完成后,记得安装 VMware Tools(或 open-vm-tools),提升显示和鼠标体验。
小技巧: 虚拟机磁盘格式选 VMDK,方便后续迁移。网络模式选 NAT,宿主机和虚拟机可以互通,又不影响局域网其他设备。
4.1.2 双系统安装(UEFI + GPT)
双系统稍微麻烦点,但性能确实好。我当年第一次装双系统时,把 Windows 引导搞坏了,折腾了一整天。嗯,这里要注意几个关键点:
- 备份数据: 这是铁律。用磁盘工具先压缩出一个空闲分区(至少 80GB)。
- 关闭 Secure Boot: 进 BIOS 关掉,否则 Ubuntu 可能无法启动。
- 启动盘制作: 用 Rufus(Windows)或 dd 命令(Linux)写入 U 盘。
- 分区方案: 建议手动分区——/(根分区)40GB、swap 8GB、/home 剩余空间。
警告: 双系统安装时,引导程序(GRUB)要装到 EFI 分区,不要装到 Windows 的引导分区。我曾经手滑选错,结果两个系统都进不去,最后用 Live CD 修复才救回来。
4.2 换源:阿里云 vs 清华源
系统装好了,第一件事就是换源。默认的 Ubuntu 源在国外,下载速度慢得让人抓狂。换成国内镜像站,速度能快几十倍。
我个人习惯用阿里云源,速度快,更新及时。清华源也不错,但偶尔会有同步延迟。你选哪个都行,操作步骤一样。
4.2.1 换源步骤
- 备份原源文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 编辑源文件:
sudo vim /etc/apt/sources.list - 替换为以下内容(以阿里云源为例):
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
- 更新软件包列表:
sudo apt update - 升级已安装软件:
sudo apt upgrade -y
提示: 如果你用清华源,把上面的 mirrors.aliyun.com 换成 mirrors.tuna.tsinghua.edu.cn 即可。另外,jammy 是 Ubuntu 22.04 的代号,别写错了。
4.3 SSH 服务开启
嵌入式平板开发,很多时候你没法直接接显示器和键盘。SSH 就是你的远程控制台。我每次拿到新板子,第一件事就是开 SSH,然后丢到机柜里,后面全靠命令行操作。
4.3.1 安装与配置
# 安装 OpenSSH 服务端
sudo apt install openssh-server -y
# 查看服务状态
sudo systemctl status ssh
# 如果没启动,手动启动
sudo systemctl start ssh
# 设置开机自启
sudo systemctl enable ssh
安装完成后,用 ip addr 查看本机 IP,然后在另一台电脑上测试连接:
ssh 用户名@IP地址
安全配置建议:
- 修改默认端口(22 改成 2222 或其他),减少被扫描的概率。
- 禁止 root 登录:编辑
/etc/ssh/sshd_config,设置PermitRootLogin no。 - 使用密钥登录,关闭密码登录。
我曾经在项目现场调试,SSH 默认端口被客户内网的安全策略封了。临时改成 443 端口才连上,搞得一身汗。所以,端口号最好提前规划好。
4.4 VNC 远程桌面配置
SSH 能搞定命令行,但有时候你需要图形界面——比如调试 Qt 应用、查看 UI 布局。这时候 VNC 就派上用场了。
4.4.1 安装 VNC 服务端
Ubuntu 22.04 默认用 Wayland,但 VNC 对 X11 支持更好。我建议切换到 Xorg 会话。
# 安装 TightVNC 服务端
sudo apt install tightvncserver -y
# 安装桌面环境(如果没装)
sudo apt install ubuntu-desktop -y
# 启动 VNC 服务(第一次会要求设置密码)
vncserver :1
启动后,VNC 默认监听 5901 端口(:1 对应 5901)。在客户端用 IP:5901 连接即可。
4.4.2 配置 VNC 启动脚本
为了让 VNC 启动时加载正确的桌面环境,需要编辑 ~/.vnc/xstartup 文件:
#!/bin/bash
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:Unity"
export XDG_MENU_PREFIX="gnome-flashback-"
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
然后给脚本加执行权限:chmod +x ~/.vnc/xstartup,重启 VNC 服务:
vncserver -kill :1
vncserver :1
注意: VNC 默认不加密,不要在公网上直接暴露。建议配合 SSH 隧道使用:ssh -L 5901:localhost:5901 用户名@IP,然后在本地连接 localhost:5901。这样数据走 SSH 加密通道,安全多了。
4.5 本章小结
这一章内容不少,但都是实打实的操作。总结一下:
- 系统安装: 虚拟机适合新手和轻量开发,双系统适合性能敏感场景。
- 换源: 阿里云或清华源,二选一,速度提升明显。
- SSH: 远程开发的必备工具,记得做安全加固。
- VNC: 图形界面远程访问,配合 SSH 隧道更安全。
下一章,我们会搭建交叉编译环境,开始真正为嵌入式平板写代码。到时候你会发现,今天这些基础配置,都是后面高效工作的基石。
一句话总结: 环境搭得好,开发没烦恼。别嫌这些步骤琐碎,我见过太多项目因为环境问题浪费大量时间。一步到位,后面就顺了。