第2章:Linux开发机准备
好,咱们接着聊。上一章我们把联发科SDK的目录结构摸清楚了,这一章来搞定开发机。说白了,你得先有个趁手的工具,才能干活。
我个人习惯用Ubuntu作为宿主系统。为什么?因为联发科的官方工具链,大部分都是在Ubuntu上验证过的。你用其他发行版,也不是不行,但坑会多一些。我建议直接上Ubuntu 20.04或22.04 LTS,这两个版本目前最稳。
2.1 选择Ubuntu版本
你可能要问:20.04和22.04,到底选哪个?
嗯,这里要注意。如果你用的是比较新的联发科芯片,比如天玑系列,我建议用22.04。因为新内核对新硬件的支持更好。但如果你手头是老项目,比如MT7621这种,20.04反而更省心。我在项目中遇到过,用22.04编译老SDK,结果某个依赖库版本不对,折腾了半天。
| Ubuntu版本 | 内核版本 | 适用场景 |
|---|---|---|
| 20.04 LTS | 5.4 | 老芯片、稳定项目 |
| 22.04 LTS | 5.15 | 新芯片、新SDK |
2.2 配置国内apt源
装好系统后,第一件事就是换源。你想想看,从国外服务器下载东西,那速度能急死人。我曾经在客户现场,网络不好,一个包下载了半小时。后来我学乖了,装完系统第一件事就是换源。
这里我推荐用清华源或阿里源。操作很简单:
# 备份原源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑源文件
sudo vim /etc/apt/sources.list
然后把内容替换成下面的(以Ubuntu 22.04为例):
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
换完源后,记得更新:
sudo apt update
sudo apt upgrade -y
2.3 安装基础开发工具
接下来装一些必备工具。这些是嵌入式开发的"吃饭家伙",缺一不可。
我个人习惯先装build-essential,它包含了gcc、g++、make等核心工具。然后装git,用来管理代码。vim嘛,你懂的,终端编辑器,改个配置文件什么的很方便。
sudo apt install -y build-essential git vim
除了这些,我建议再装几个:
- curl:下载文件、测试接口
- wget:跟curl类似,但更擅长下载大文件
- tree:看目录结构,比ls直观多了
- net-tools:ifconfig、netstat这些老命令
- openssh-server:远程登录,开发板调试必备
sudo apt install -y curl wget tree net-tools openssh-server
避坑指南:我曾经在装完系统后,直接开始编译SDK,结果报错说缺少某个库。后来发现是build-essential没装全。所以,别偷懒,先把基础工具装齐了再干活。
2.4 配置Git用户信息
Git装好后,记得配置用户名和邮箱。不然你提交代码时,会看到"unknown"这样的名字,那多尴尬。
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
我个人习惯再加几个别名,用起来顺手:
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.co checkout
这样,以后输入git st就能看状态了,省事。
2.5 验证环境
装完后,验证一下环境是否正常:
gcc --version
git --version
vim --version
如果都能看到版本号,说明环境准备好了。嗯,到这里,你的Linux开发机就基本就绪了。下一章,我们开始配置交叉编译工具链,那才是联发科开发的重头戏。
setup_dev_env.sh,已经用了好几年了。