3、Ubuntu操作系统安装:虚拟机与双系统选择、Ubuntu 20.04 LTS安装步骤、基础配置
好,咱们正式开始搭建环境。这一章聊的是操作系统安装,说白了就是给你的开发机选个「家」。我见过不少新手一上来就纠结:到底用虚拟机还是装双系统?嗯,这个问题其实没有标准答案,但根据我这些年踩过的坑,可以给你一些实在的建议。
3.1 虚拟机 vs 双系统:怎么选?
先说说我的个人习惯。我平时办公用的是一台 Windows 笔记本,但做 Camera HAL 开发时,我几乎都在 Ubuntu 里干活。你想想看,HAL 层要跟内核驱动、硬件抽象层打交道,频繁重启、调试、刷机是家常便饭。这时候如果系统不稳定,那真是欲哭无泪。
虚拟机的优势:
- 隔离性好:虚拟机里的 Ubuntu 崩了,不影响宿主机。我曾在项目里因为一个驱动模块写错了,导致系统直接黑屏。还好是在虚拟机里,拍个快照就恢复了。
- 方便切换:Windows 和 Ubuntu 之间复制粘贴、拖拽文件,非常顺手。调试时经常需要从 Windows 端拿日志、看文档,虚拟机无缝切换。
- 适合入门:如果你只是刚开始学 Camera HAL,或者不确定以后会不会长期用 Linux,虚拟机是最稳妥的选择。
双系统的优势:
- 性能更好:直接跑在硬件上,没有虚拟化层开销。编译 AOSP 或 Camera HAL 源码时,双系统能快 20%-30%。我记得有一次编译整个 Android 系统,虚拟机用了 3 个多小时,双系统只用了 2 小时出头。
- 硬件兼容性:某些 USB 设备、调试工具在虚拟机里可能识别有问题。比如一些老款的 JTAG 调试器,在虚拟机里死活连不上,换双系统就正常了。
- 适合长期开发:如果你确定未来 1-2 年都要做嵌入式或 HAL 开发,双系统是更专业的选择。
我的建议:
- 如果你是初学者,或者电脑配置一般(内存 < 16GB),先用虚拟机。等熟悉了再考虑双系统。
- 如果你已经有一定 Linux 基础,且电脑配置够用(内存 ≥ 16GB,SSD 硬盘),直接上双系统。
- 我个人是「虚拟机 + 双系统」都留着。日常开发用双系统,测试新工具、新环境时用虚拟机快照。
3.2 Ubuntu 20.04 LTS 安装步骤
好,不管你选虚拟机还是双系统,安装步骤大同小异。这里我以 Ubuntu 20.04 LTS 为例,这是目前 Camera HAL 开发最稳定的版本。为什么选 20.04?因为 Android 官方文档、高通平台、MTK 平台都推荐这个版本。我试过 22.04,有些工具链兼容性还有小问题。
3.2.1 准备工作
- 下载镜像:去 Ubuntu 官网下载
ubuntu-20.04.6-desktop-amd64.iso。注意是桌面版,不是服务器版。 - 制作启动盘:用 Rufus(Windows)或 Etcher(跨平台)把镜像写入 U 盘。我曾经用老毛桃做过一次,结果安装时分区表识别错误,折腾了半天。所以还是推荐 Rufus 或 Etcher。
- 备份数据:如果你要装双系统,一定先备份 Windows 里的重要文件。别问我为什么强调这个……
3.2.2 虚拟机安装(以 VMware Workstation 为例)
- 新建虚拟机,选择「典型」配置。
- 选择「稍后安装操作系统」,客户机操作系统选「Linux」,版本选「Ubuntu 64 位」。
- 分配资源:内存至少 8GB,处理器至少 2 核。硬盘建议 80GB 以上(Camera HAL 源码 + AOSP 动辄 100GB+)。
- 启动虚拟机,加载 ISO 镜像,进入安装界面。
- 语言选「中文(简体)」或「English」都行。我个人习惯用英文,因为终端报错信息更准确。
- 安装类型选「清除整个磁盘并安装 Ubuntu」—— 这是虚拟机,不用担心。
- 设置用户名和密码。注意:用户名不要用中文,否则后面编译会报错。
小技巧:安装完成后,记得安装 VMware Tools 或 Open VM Tools。这样能实现自适应窗口、拖拽文件、共享剪贴板。命令如下:
sudo apt update
sudo apt install open-vm-tools open-vm-tools-desktop
3.2.3 双系统安装
- 在 Windows 里,先压缩出一个空闲分区。右键「此电脑」→「管理」→「磁盘管理」,在某个盘上右键「压缩卷」,腾出至少 80GB 空间。
- 重启电脑,进入 BIOS(一般是 F2、F10 或 Del 键),关闭 Secure Boot,启动顺序改为 U 盘优先。
- 从 U 盘启动,进入 Ubuntu 安装界面。
- 安装类型选择「其他选项」,手动分区。我的习惯是:
/boot:1GB,主分区,ext4/:40GB,逻辑分区,ext4/home:剩余空间,逻辑分区,ext4swap:8GB(如果内存 ≥ 16GB,可以不要 swap)
- 引导安装位置选「/dev/sda」(整个硬盘),不要选分区。Ubuntu 会自动添加 GRUB 引导菜单。
注意:双系统安装时,最容易出问题的是引导。我曾经因为 GRUB 装到了错误的分区,导致 Windows 进不去。后来用 EasyBCD 修复才搞定。所以建议:
- 安装前先关闭 Windows 的快速启动。
- 如果安装后只有 Ubuntu 没有 Windows,别慌,用 Boot-Repair 工具修复。
3.3 基础配置
系统装好了,别急着开始写代码。先把基础环境配好,后面能省很多事。
3.3.1 更换软件源
Ubuntu 默认的源在国外,下载速度慢得让人抓狂。我建议换成国内镜像源,比如清华、阿里、中科大。以清华源为例:
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo apt update
3.3.2 安装必备工具
Camera HAL 开发离不开这些工具,我列个清单:
| 工具 | 用途 | 安装命令 |
|---|---|---|
| Git | 版本管理 | sudo apt install git |
| Vim / VS Code | 代码编辑 | sudo apt install vim 或下载 VS Code |
| Build Essential | 编译工具链 | sudo apt install build-essential |
| Python3 + pip | 脚本工具 | sudo apt install python3 python3-pip |
| SSH Server | 远程调试 | sudo apt install openssh-server |
| adb / fastboot | Android 调试 | sudo apt install adb fastboot |
3.3.3 配置 Git 和 SSH
这个步骤很多人会忽略,但实际开发中天天用。配置好 Git 的用户名和邮箱:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
生成 SSH 密钥,方便后面连接 Git 服务器:
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
cat ~/.ssh/id_rsa.pub
把公钥添加到你的 GitLab 或 GitHub 账号里。我在项目中遇到过因为没配 SSH,每次 pull/push 都要输密码,烦得很。
3.3.4 设置环境变量
Camera HAL 开发经常需要设置 ANDROID_BUILD_TOP、PATH 等变量。我习惯在 ~/.bashrc 里加几行:
export ANDROID_BUILD_TOP=~/workspace/aosp
export PATH=$PATH:~/bin
alias croot='cd $ANDROID_BUILD_TOP'
然后 source ~/.bashrc 生效。这样每次打开终端,环境就自动配好了。
避坑指南:我曾经在 ~/.bashrc 里写错了路径,导致终端一打开就报错。后来学乖了,每次修改前先备份:cp ~/.bashrc ~/.bashrc.bak。万一出问题,还能恢复。
3.4 验证安装
最后,简单验证一下环境是否正常。打开终端,输入:
uname -a
gcc --version
git --version
adb version
如果都能正常输出版本信息,恭喜你,开发环境的基础已经打好了。下一章,咱们开始搭建 Camera HAL 的编译环境,那才是真正的重头戏。
嗯,这一章就到这里。记住,操作系统安装是地基,地基不稳,后面全是白搭。花点时间把这一步做好,后面你会感谢自己的。