树莓派4B安装Ubuntu Server 20.04 LTS全攻略

树莓派4B安装Ubuntu Server 20.04 LTS全攻略
1. 为什么选择Ubuntu Server 20.04 for Raspberry Pi当我在2020年第一次尝试将Ubuntu Server 20.04刷入树莓派4B时完全没想到这个组合会成为嵌入式开发者的黄金标准。与常见的Raspbian现称Raspberry Pi OS相比Ubuntu Server提供了更完整的Linux生态支持——这意味着你可以直接使用绝大多数为x86架构编写的Debian软件包而不需要到处寻找ARM版本。Ubuntu Server 20.04 LTS特别适合长期运行的树莓派项目原因有三首先它的长期支持周期直到2025年比非LTS版本多3年安全更新其次针对树莓派的优化内核已经解决了早期版本USB启动、WiFi稳定性等问题最重要的是这个版本首次完整支持了树莓派4B的全部4GB内存之前的32位系统只能识别3GB。注意虽然树莓派5已经发布但Ubuntu Server 20.04官方仅支持到树莓派4B。若使用更新型号建议考虑Ubuntu 22.04或更高版本。2. 准备工作硬件与镜像选择2.1 硬件需求清单根据我经手过的三十多台树莓派安装经验以下配置组合最稳定树莓派4B建议4GB/8GB内存版本SanDisk Extreme Pro 32GB microSD卡A2等级写入速度90MB/s以上官方USB-C电源5V/3A或同等品质替代品散热套件金属外壳风扇持续负载时核心温度能降低15℃实测发现使用劣质电源会导致安装过程中随机崩溃而低速存储卡会使首次启动时间延长3-5倍。2.2 镜像下载与验证官方提供两种获取途径Raspberry Pi Imager推荐新手sudo snap install rpi-imager # Ubuntu系统安装命令 rpi-imager # 启动图形化工具在工具中选择Other general-purpose OS → Ubuntu → Ubuntu Server 20.04 LTS手动下载适合批量部署wget https://cdimage.ubuntu.com/releases/20.04/release/ubuntu-20.04.5-preinstalled-server-arm64raspi.img.xz echo a1b2c3d4e5f6... ubuntu-20.04.5-preinstalled-server-arm64raspi.img.xz | sha256sum -c3. 烧录系统到SD卡3.1 使用dd命令的进阶技巧虽然图形化工具有其便利性但老手更爱用dd命令的精准控制xzcat ubuntu-20.04.5-preinstalled-server-arm64raspi.img.xz | \ sudo dd bs4M of/dev/sdX convfsync statusprogress关键参数解析bs4M将块大小设为4MB比默认512B快20倍以上convfsync确保所有数据真正写入物理介质statusprogress显示实时进度需util-linux 2.363.2 首次启动前的必要调整烧录完成后不要急着拔卡执行以下操作能避免80%的常见问题sudo mkdir /mnt/pi sudo mount /dev/sdX2 /mnt/pi # 挂载root分区 # 启用SSH默认禁用 sudo touch /mnt/pi/etc/ssh/sshd_config.d/enable.conf # 配置WiFi有线网络可跳过 cat EOF | sudo tee /mnt/pi/etc/netplan/50-cloud-init.yaml network: version: 2 wifis: wlan0: dhcp4: true access-points: 你的SSID: password: 你的密码 EOF sudo umount /mnt/pi4. 首次启动与基础配置4.1 串口控制台的神奇用途当没有显示器时通过USB-TTL适配器连接GPIO14/15引脚可获取控制台screen /dev/ttyUSB0 115200 # Linux/macOS你会看到类似如下的启动日志[ OK ] Started User Manager for UID 1000 [ OK ] Reached target Multi-User System. Ubuntu 20.04 LTS raspberrypi ttyS0 raspberrypi login: ubuntu Password: ubuntu # 首次登录强制修改4.2 必须执行的五个初始命令登录后立即执行# 1. 修改默认密码 passwd # 2. 扩大根分区默认只使用2GB空间 sudo growpart /dev/mmcblk0 2 sudo resize2fs /dev/mmcblk0p2 # 3. 更换国内源提速10倍以上 sudo sed -i s|ports.ubuntu.com|mirrors.ustc.edu.cn/ubuntu-ports|g /etc/apt/sources.list # 4. 基础工具安装 sudo apt update sudo apt install -y vim git net-tools # 5. 设置时区 sudo timedatectl set-timezone Asia/Shanghai5. 深度调优指南5.1 内存与交换分区优化树莓派4B的8GB版本尤其需要调整# 禁用不必要的服务释放内存 sudo systemctl disable snapd.service plymouth.service # 优化swap配置避免卡死 sudo sed -i /vm.swappiness/d /etc/sysctl.conf echo vm.swappiness10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p # 使用zram替代传统swap sudo apt install -y zram-config sudo systemctl restart zram-config5.2 温度监控与风扇控制创建智能风扇控制脚本cat EOF | sudo tee /usr/local/bin/fanctl #!/bin/bash TEMP_FILE/sys/class/thermal/thermal_zone0/temp GPIO14 # 初始化GPIO echo $GPIO /sys/class/gpio/export echo out /sys/class/gpio/gpio${GPIO}/direction while true; do temp$(cat $TEMP_FILE) if [ $temp -gt 55000 ]; then # 55℃启动风扇 echo 1 /sys/class/gpio/gpio${GPIO}/value elif [ $temp -lt 45000 ]; then # 45℃关闭 echo 0 /sys/class/gpio/gpio${GPIO}/value fi sleep 30 done EOF sudo chmod x /usr/local/bin/fanctl sudo systemctl enable --now fanctl.service6. 常见问题排雷手册6.1 HDMI无信号问题如果连接显示器无输出编辑/boot/firmware/usercfg.txt添加hdmi_force_hotplug1 hdmi_group2 hdmi_mode82 # 1080p 60Hz config_hdmi_boost46.2 蓝牙/WiFi失灵解决方案更新固件通常能解决sudo apt install --reinstall pi-bluetooth firmware-brcm80211 sudo reboot6.3 电源不足的典型症状当出现以下情况时90%是电源问题彩虹色方块图标出现在屏幕角落运行vcgencmd get_throttled返回非零值USB设备随机断开连接建议改用5V/3A以上电源并在/boot/firmware/usercfg.txt中添加max_usb_current1 avoid_warnings27. 进阶应用场景7.1 搭建家庭服务器集群用三台树莓派4B组建微型Kubernetes集群# 所有节点执行 sudo apt install -y docker.io sudo usermod -aG docker $USER # 主节点 sudo kubeadm init --pod-network-cidr10.244.0.0/16 # 工作节点 kubeadm join 主节点IP:6443 --token token --discovery-token-ca-cert-hash hash7.2 物联网边缘计算方案部署TensorFlow Lite实现图像识别import tflite_runtime.interpreter as tflite interpreter tflite.Interpreter( model_pathmobilenet_v2_1.0_224_quant.tflite, experimental_delegates[ tflite.load_delegate(libedgetpu.so.1) # 使用Google Coral加速棒 ])经过两年持续迭代我的树莓派Ubuntu Server已经稳定运行了647天。关键心得是每月执行apt upgrade保持更新使用logrotate管理日志文件重要数据一定要挂载外置SSD——microSD卡在频繁写入场景下平均寿命只有18个月。