第三章:系统初始化与更新
拿到一块崭新的开发板,就像拆开一台新电脑。你肯定想赶紧点亮屏幕,看看它长什么样。但别急,咱们得先做几件正事。
我个人习惯,拿到板子第一件事不是跑Demo,而是把系统环境收拾利索。这就像装修新房,水电没改好就贴墙纸,后面有你哭的。
3.1 首次启动配置
插上电源,接好串口线,按下电源键。如果一切正常,你会看到终端里滚过一堆启动信息。嗯,这感觉挺爽的。
第一次启动,系统会让你做几个基础设置:
- 语言和时区:选中文,时区设成 Asia/Shanghai。别问我为什么,你想想看,日志时间对不上号多难受。
- 主机名:给它起个名字,比如
my-pad。我习惯用项目代号,方便区分多块板子。 - 用户密码:设一个你能记住的。别用 123456,真的,我在项目里见过有人这么干,后来板子被同事拿去玩,数据全丢了。
小提示: 如果你用的是预装系统,第一次启动可能会自动进入图形界面。我个人建议先切到命令行模式,省资源,后面调试也方便。
3.2 更换国内软件源
默认的软件源在国外,下载速度嘛……你懂的。我曾经在客户现场,等一个 apt update 等了半小时,那叫一个尴尬。
换成国内源,速度能快几十倍。以 Debian/Ubuntu 为例:
# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑源列表
sudo nano /etc/apt/sources.list
把内容替换成阿里云或清华的源。我个人常用阿里云:
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
注意: 不同系统版本对应的源不一样。比如 Ubuntu 20.04 用 focal,22.04 用 jammy。搞错了会报依赖错误。我曾经手滑写错版本号,折腾了一下午才修好。
改完后更新一下:
sudo apt update
sudo apt upgrade -y
看到下载速度飙到几 MB/s,是不是舒服多了?
3.3 更新系统内核和固件
系统刚装好,内核和固件往往不是最新的。为什么要更新?说白了,新版本修复了旧版的 bug,还可能增加新硬件的支持。
更新内核:
sudo apt install linux-image-generic linux-headers-generic
sudo reboot
重启后检查内核版本:
uname -r
固件更新也很重要。特别是 Wi-Fi、蓝牙这些模块,固件不对,设备可能根本认不出来。
# 更新固件包
sudo apt install firmware-linux firmware-linux-nonfree
# 如果是树莓派,用 rpi-eeprom 更新
sudo rpi-eeprom-update -a
核心要点: 内核和固件更新后一定要重启。别问我怎么知道的,有一次我忘了重启,调试了三天网卡,最后发现是固件没生效。
3.4 安装基础开发工具
系统跑起来了,接下来就是装工具。我列一个清单,这些都是嵌入式开发的标配:
| 工具 | 用途 | 安装命令 |
|---|---|---|
| build-essential | 编译 C/C++ 代码 | sudo apt install build-essential |
| git | 版本控制 | sudo apt install git |
| vim / nano | 文本编辑器 | sudo apt install vim |
| curl / wget | 网络下载 | sudo apt install curl wget |
| screen / tmux | 终端复用 | sudo apt install tmux |
| ssh | 远程连接 | sudo apt install openssh-server |
| python3-pip | Python 包管理 | sudo apt install python3-pip |
装完这些,你的开发环境基本就齐活了。我个人还会装一个 htop,方便看系统资源占用。
sudo apt install htop
避坑指南: 我曾经在装 build-essential 时,发现缺少 libc6-dev,导致编译报错。解决办法是先执行
sudo apt update,再安装。顺序别搞反了。
3.5 验证环境
工具装完了,咱们验证一下。写个简单的 C 程序:
#include <stdio.h>
int main() {
printf("Hello, Pad System!\n");
return 0;
}
编译运行:
gcc hello.c -o hello
./hello
看到输出了吗?如果一切正常,恭喜你,系统初始化完成。
嗯,到这里,你的平板系统已经具备了基本的开发能力。下一章,我们会开始搭建图形界面。别走开,精彩才刚刚开始。