树莓派Pi4安装Ubuntu 22.04 LTS完整指南
1. 树莓派Pi4与Ubuntu 22.04的黄金组合树莓派Pi4作为目前最受欢迎的嵌入式开发板之一其性能已经足够流畅运行完整的桌面操作系统。而Ubuntu 22.04 LTS作为长期支持版本提供了5年的安全更新支持这对需要稳定运行环境的开发者来说至关重要。我最近在Pi4上部署Ubuntu 22.04时发现这个组合特别适合需要图形界面又要求稳定性的场景比如家庭媒体中心、轻量级开发环境或者物联网网关。相比树莓派官方系统Ubuntu 22.04提供了更完善的软件生态和更成熟的开发工具链。你可以直接使用apt安装绝大多数Linux软件而不需要像在Raspberry Pi OS上那样经常需要从源码编译。不过需要注意的是Pi4的ARM架构意味着某些x86平台的软件可能需要寻找替代方案。2. 准备工作与镜像选择2.1 硬件需求清单树莓派Pi4B建议4GB或8GB内存版本至少16GB的microSD卡Class 10以上速度5V/3A的USB-C电源适配器HDMI线缆如需显示输出键盘鼠标首次配置需要有线网络连接或兼容的USB无线网卡实测发现使用A2级别的SD卡可以显著提升系统响应速度特别是频繁读写操作时。闪迪Extreme Pro系列是我个人最推荐的选择。2.2 官方镜像下载Ubuntu为树莓派提供了专门的优化镜像目前22.04 LTS有两个主要版本可供选择Ubuntu Server纯净的服务器版本无图形界面下载地址https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04.3-preinstalled-server-arm64raspi.img.xz文件大小约1.1GBUbuntu Desktop完整的桌面环境下载地址https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04.3-preinstalled-desktop-arm64raspi.img.xz文件大小约2.6GB对于大多数开发者我推荐从Server版本开始需要GUI时再通过sudo apt install ubuntu-desktop安装。这样可以节省系统资源也减少不必要的后台服务。3. 使用Raspberry Pi Imager刷写镜像3.1 安装刷写工具官方推荐的Raspberry Pi Imager是目前最可靠的刷写工具支持Windows/macOS/Linux三大平台# 在Ubuntu/Debian系统上安装 sudo snap install rpi-imager # 或者使用apt安装 sudo apt update sudo apt install rpi-imagerWindows用户可以直接从官网下载安装包https://www.raspberrypi.com/software/3.2 镜像刷写步骤启动Raspberry Pi Imager点击Choose OS → Other general-purpose OS → Ubuntu选择下载好的镜像文件或直接选择在线下载插入SD卡选择对应的存储设备点击Write按钮开始刷写关键技巧刷写前勾选右下角的齿轮图标可以预先配置Wi-Fi、SSH和地区设置。这样首次启动就能直接远程连接不需要接显示器。刷写过程通常需要5-10分钟完成后系统会提示验证写入结果。建议勾选验证选项确保镜像完整写入。4. 首次启动与基本配置4.1 初始登录插入SD卡通电启动后如果是桌面版默认用户名ubuntu默认密码ubuntu首次登录会强制要求修改密码服务器版则直接进入命令行界面同样使用上述凭证登录。4.2 关键系统配置# 更新软件源索引 sudo apt update sudo apt upgrade -y # 安装常用工具包 sudo apt install -y vim git curl wget net-tools # 设置时区亚洲上海 sudo timedatectl set-timezone Asia/Shanghai # 修改主机名 sudo hostnamectl set-hostname my-pi44.3 网络配置有线网络通常会自动连接。配置WiFi可以使用netplansudo vim /etc/netplan/50-cloud-init.yaml添加以下内容替换你的SSID和密码network: version: 2 wifis: wlan0: access-points: 你的WiFi名称: password: 你的WiFi密码 dhcp4: true应用配置sudo netplan apply静态IP配置示例network: version: 2 ethernets: eth0: addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]5. 系统优化与性能调校5.1 交换空间优化树莓派4的内存有限合理配置swap很重要# 查看当前swap free -h # 调整swappiness默认60可能太高 sudo sysctl vm.swappiness10 echo vm.swappiness10 | sudo tee -a /etc/sysctl.conf # 使用zram替代传统swap sudo apt install zram-config sudo systemctl restart zram-config5.2 文件系统优化# 禁用不必要的日志记录 sudo sed -i s/^#Storageauto/Storagepersistent/ /etc/systemd/journald.conf # 限制日志大小 sudo journalctl --vacuum-size50M5.3 温度监控与风扇控制安装温度监控工具sudo apt install -y lm-sensors sudo sensors-detect --auto watch -n 2 sensors手动控制GPIO风扇需要连接GPIO针脚# 安装GPIO工具 sudo apt install -y python3-gpiozero # 创建控制脚本 /usr/local/bin/fan_ctrl.py #!/usr/bin/python3 from gpiozero import OutputDevice from time import sleep fan OutputDevice(17) # 根据实际接线修改GPIO引脚 while True: temp int(open(/sys/class/thermal/thermal_zone0/temp).read()) / 1000 if temp 60: fan.on() elif temp 50: fan.off() sleep(10)设置为开机启动sudo chmod x /usr/local/bin/fan_ctrl.py sudo crontab -e reboot /usr/local/bin/fan_ctrl.py 6. 开发环境配置6.1 Python环境Ubuntu 22.04默认已安装Python 3.10# 安装pip和虚拟环境 sudo apt install -y python3-pip python3-venv # 创建虚拟环境 python3 -m venv ~/venv source ~/venv/bin/activate6.2 Docker安装# 卸载旧版本 sudo apt remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release # 添加Docker官方GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置仓库 echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 添加用户到docker组 sudo usermod -aG docker $USER newgrp docker6.3 ROS2 Humble安装# 设置locale sudo apt update sudo apt install -y locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8 export LANGen_US.UTF-8 # 添加ROS2仓库 sudo apt install -y software-properties-common sudo add-apt-repository universe sudo apt update sudo apt install -y curl sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null # 安装ROS2基础包 sudo apt update sudo apt install -y ros-humble-ros-base # 设置环境变量 source /opt/ros/humble/setup.bash echo source /opt/ros/humble/setup.bash ~/.bashrc7. 常见问题与解决方案7.1 蓝牙无法正常工作Ubuntu 22.04在Pi4上可能存在蓝牙驱动问题解决方法# 安装固件 sudo apt install -y pi-bluetooth sudo systemctl enable bluetooth sudo reboot7.2 音频输出问题如果HDMI或3.5mm接口没有声音# 查看音频设备 aplay -l # 设置默认声卡示例 sudo vim /etc/asound.conf pcm.!default { type hw card 1 } ctl.!default { type hw card 1 }7.3 USB启动配置如果想从USB设备而不是SD卡启动# 查看当前启动模式 vcgencmd bootloader_config # 更新EEPROM sudo rpi-eeprom-update -a sudo reboot然后在BIOS中设置启动顺序需要连接显示器。7.4 图形界面卡顿如果使用桌面版感觉卡顿可以尝试# 禁用不必要的视觉效果 sudo apt install -y gnome-tweaks # 然后在Tweaks工具中关闭动画效果 # 或者安装轻量级桌面 sudo apt install -y lubuntu-desktop8. 进阶应用场景8.1 家庭媒体中心安装Kodi媒体中心sudo apt install -y kodi # 启动后配置媒体库和插件8.2 物联网边缘计算使用Ubuntu Core构建安全IoT设备# 下载Ubuntu Core镜像 # 配置SSH密钥 snap install --edge ubuntu-core8.3 轻量级Web服务器安装NginxPHPMySQLsudo apt install -y nginx php-fpm mysql-server sudo mysql_secure_installation配置Nginx虚拟主机示例server { listen 80; server_name example.com; root /var/www/html; index index.php index.html; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } }8.4 自动化运维监控安装PrometheusGrafana# 创建专用用户 sudo useradd -m -s /bin/false prometheus sudo useradd -m -s /bin/false grafana # 安装Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-arm64.tar.gz tar xvf prometheus-*.tar.gz sudo mv prometheus-2.47.0.linux-arm64 /opt/prometheus # 配置系统服务 sudo vim /etc/systemd/system/prometheus.service [Unit] DescriptionPrometheus Afternetwork.target [Service] Userprometheus ExecStart/opt/prometheus/prometheus --config.file/opt/prometheus/prometheus.yml Restartalways [Install] WantedBymulti-user.target # 启动服务 sudo systemctl daemon-reload sudo systemctl enable --now prometheus