第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
我的建议:如果你拿不准,就装22.04。毕竟新版本支持周期更长,能用到2027年。

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
注意:如果你用的是Ubuntu 20.04,把上面的"jammy"换成"focal"就行。别搞混了,否则会报错。

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,已经用了好几年了。