3、开发环境概览:Linux主机(Ubuntu)安装与基本配置
好,咱们正式开始搭建环境。这一章我带你搞定 Linux 主机,具体说就是 Ubuntu。为什么选它?说白了,机顶盒的交叉编译、驱动开发、系统移植,几乎全在 Linux 下搞。Windows ?不是不行,但你会遇到一堆莫名其妙的坑。我个人习惯,直接上 Ubuntu LTS 版本,稳。
3.1 为什么是 Ubuntu ?
你可能想问:CentOS 不行吗?Debian 不行吗?嗯,都可以。但我建议你选 Ubuntu,原因有三:
- 社区活跃:你遇到问题,一搜就有答案。我在项目中遇到过好几次冷门驱动问题,全靠社区帖子救场。
- 软件包新:机顶盒的交叉编译工具链、库文件,Ubuntu 的 apt 源里基本都有。省去手动编译的麻烦。
- LTS 稳定:长期支持版,不会突然来个 breaking change。我见过有人用滚动发行版,结果某次更新后编译链炸了,折腾两天。
3.2 安装 Ubuntu —— 两种主流方式
安装方式取决于你的宿主机是什么。我分两种情况讲:
3.2.1 物理机安装(推荐)
如果你有一台闲置的 PC 或笔记本,直接装 Ubuntu 作为主力开发机。这是最纯粹的方式,性能最好。
- 下载镜像:去 Ubuntu 官网下载 ISO 文件。记得选「Desktop」版本,别下成 Server 版。
- 制作启动盘:用 Rufus(Windows)或 dd 命令(Linux/Mac)把 ISO 写入 U 盘。
- 安装过程:启动时按 F2/F12 进 BIOS,选 U 盘启动。分区时我建议:
/boot分 1GB,/分 50GB 以上,/home分剩余空间。交换分区看内存大小,8GB 内存以下分 4GB,以上可以不分。 - 设置用户名密码:别用太复杂的,开发机而已。我一般用
developer作为用户名。
3.2.2 虚拟机安装(适合尝鲜)
如果你只是先体验一下,或者电脑配置不够,用虚拟机也行。我用的是 VirtualBox,免费且够用。
# 虚拟机配置建议
CPU: 2 核以上
内存: 4GB 以上
硬盘: 40GB 以上(动态分配)
网络: 桥接模式(方便后续 SSH 连接)
安装步骤和物理机一样,只是多了个虚拟机软件。嗯,这里要注意:虚拟机里跑 Ubuntu,性能会打折扣,编译大型项目时会明显慢。所以如果你打算长期搞机顶盒开发,还是物理机靠谱。
3.3 基本配置 —— 装完系统后第一件事
系统装好了,别急着高兴。有几个配置必须做,不然后面寸步难行。
3.3.1 更新软件源
Ubuntu 默认的源在国外,下载速度感人。我建议换成国内镜像源,比如阿里云、清华、中科大。
# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑源文件
sudo vim /etc/apt/sources.list
# 把内容替换为阿里云源(以 Ubuntu 20.04 为例)
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
# 更新
sudo apt update
sudo apt upgrade -y
lsb_release -a 查看。版本代号对应关系:20.04 = focal,22.04 = jammy,24.04 = noble。
3.3.2 安装必备工具
机顶盒开发需要一堆基础工具。我列个清单,你直接复制粘贴跑一遍:
sudo apt install -y \
build-essential \
git \
vim \
curl \
wget \
net-tools \
openssh-server \
tree \
htop \
cmake \
python3 \
python3-pip \
gcc-arm-linux-gnueabihf \
g++-arm-linux-gnueabihf
这里面 gcc-arm-linux-gnueabihf 是交叉编译工具链,专门用来编译机顶盒 ARM 架构的程序。没有它,你写的代码在 Ubuntu 上跑得欢,但机顶盒上跑不了。
3.3.3 配置 SSH 服务
开发机顶盒时,你大概率不会直接坐在 Ubuntu 主机前操作。而是用另一台电脑 SSH 连过来。所以 SSH 必须配好。
# 检查 SSH 服务状态
sudo systemctl status ssh
# 如果没启动,启动它
sudo systemctl enable ssh
sudo systemctl start ssh
# 查看 IP 地址
ip addr show
然后你就可以在 Windows/Mac 上用终端连过来了:ssh developer@你的IP。我个人习惯用 MobaXterm 或 Windows Terminal,界面清爽。
3.3.4 配置 Git 和 Vim
这两个是开发必备。Git 用来管理代码版本,Vim 用来快速编辑文件。
# Git 配置
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git config --global core.editor vim
# Vim 配置(简单版)
echo "set number" >> ~/.vimrc
echo "syntax on" >> ~/.vimrc
echo "set tabstop=4" >> ~/.vimrc
echo "set shiftwidth=4" >> ~/.vimrc
3.4 验证环境是否就绪
配置完了,咱们验证一下。打开终端,依次执行以下命令:
# 检查 Ubuntu 版本
lsb_release -a
# 检查交叉编译工具链
arm-linux-gnueabihf-gcc --version
# 检查 Git
git --version
# 检查 SSH
ssh localhost
如果都能正常输出,恭喜你,环境搭好了。如果某个命令报错,别慌,多半是没安装或者路径没配好。用 which 命令名 看看它在不在。
3.5 避坑指南
最后,分享几个我踩过的坑:
- 磁盘空间不够:编译机顶盒的 U-Boot、Linux 内核时,动辄需要几十 GB 空间。我建议至少留 80GB 给 Ubuntu。我曾经因为空间不足,编译到一半报错,气得想砸电脑。
- 权限问题:别用 root 用户日常操作。用普通用户,需要时加
sudo。我见过有人全程 root,结果不小心删了系统文件,重装。 - 网络不稳定:下载源码包时经常断。建议用
wget -c断点续传,或者用git clone --depth=1只拉最新版本,减少下载量。 - 中文乱码:终端里显示中文文件名乱码?装个
fonts-wqy-zenhei字体包就好。
好了,这一章就到这里。Ubuntu 装好、配好,咱们的机顶盒开发之旅就正式开始了。下一章,我会带你搭建交叉编译环境,那是整个移植工作的核心。到时候见。