树莓派4B无屏实战:Ubuntu20.04 Server转Desktop与VNC远程桌面配置指南
1. 准备工作与环境搭建
树莓派4B作为一款强大的微型计算机,在没有显示器的情况下也能发挥巨大作用。我最近刚完成了一个项目,用树莓派4B搭建了一个无头服务器,然后通过VNC实现了远程桌面访问。整个过程虽然遇到了一些坑,但最终效果非常不错,特别适合嵌入式开发和远程办公场景。
首先需要准备一张至少16GB的microSD卡,建议选择Class 10以上的高速卡,因为系统运行速度很大程度上取决于存储卡性能。我实测过不同速度的存储卡,高速卡的体验明显好很多。另外还需要一个读卡器,树莓派4B本体,电源适配器(建议使用官方5V/3A电源),以及稳定的WiFi环境。
系统镜像选择很重要:树莓派官方并不直接提供Ubuntu 20.04桌面版镜像,所以我们需要先安装Server版本,然后再升级到桌面环境。这样做的好处是系统更加精简,可以根据实际需求定制安装组件。我对比过直接安装桌面版和从Server升级两种方式,后者确实更加灵活。
下载镜像时建议访问Ubuntu官方仓库,找到ubuntu-20.04.5-preinstalled-server-arm64+raspi.img.xz这个文件。下载完成后需要解压缩,得到.img格式的镜像文件。这里有个小技巧:如果下载速度慢,可以尝试更换下载源,国内用户建议使用阿里云或中科大的镜像站。
烧录工具我强烈推荐使用树莓派官方的Raspberry Pi Imager,它不仅支持Windows、macOS和Linux系统,而且提供了高级选项可以预先配置WiFi、SSH和主机名。相比传统的Win32DiskImager,这个工具确实方便很多,特别是对于无屏操作来说。
2. 系统烧录与初始配置
烧录过程其实很简单,但有几个关键步骤需要注意。打开Raspberry Pi Imager后,首先选择设备类型为Raspberry Pi 4,然后选择"使用自定义镜像",找到刚才解压的.img文件。接着选择目标存储设备,就是你的microSD卡。
高级配置是关键:点击设置图标(齿轮图标)进入高级选项。这里建议设置主机名,比如"raspberrypi-ubuntu",这样后面在路由器中更容易识别。一定要启用SSH服务,选择使用密码认证或公钥认证。如果使用密码认证,建议设置一个强密码。
WiFi配置这里有个坑:如果你的WiFi名称没有空格,千万不要加双引号,只有名称包含空格时才需要引号。密码则始终需要引号。缩进必须使用两个空格,不能用Tab键。配置完成后先不要急着烧录,最好检查一下配置文件。
# network-config示例
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"你的WiFi名称":
password: "你的WiFi密码"
烧录完成后,Windows系统可能会提示需要格式化SD卡,千万不要点格式化!这时候需要弹出SD卡再重新插入,你会看到boot分区。在这里创建一个名为ssh的空文件(没有扩展名),这是启用SSH服务的关键。然后编辑network-config文件,确保WiFi配置正确。
我第一次操作时就栽在WiFi配置上,因为缩进错误导致树莓派无法连接网络。后来发现是因为用了Tab而不是空格。所以建议直接用nano或vim编辑,避免Windows记事本自动转换格式。
3. 首次启动与SSH连接
将SD卡插入树莓派,接通电源,红灯常亮表示供电正常,绿灯闪烁说明系统正在读写。等待几分钟让系统完成初始化,这时可以通过路由器管理界面查找树莓派的IP地址。
查找IP地址的几种方法:
- 登录路由器管理后台,通常在"连接设备"或"DHCP客户端列表"中可以看到主机名和IP地址
- 使用Advanced IP Scanner等局域网扫描工具
- 如果知道主机名,可以直接ping主机名.local
我一般使用第二种方法,因为最可靠。Advanced IP Scanner扫描整个网段,很快就能找到树莓派。记住要确保电脑和树莓派在同一个WiFi网络下,而且最好都连接2.4GHz频段,因为树莓派的无线网卡对5GHz支持有时候不太稳定。
找到IP地址后,就可以用SSH连接了。Windows用户可以使用MobaXterm或者PuTTY,Mac和Linux用户直接使用终端就行。我个人更喜欢MobaXterm,因为它集成了SFTP功能,方便文件传输。
ssh ubuntu@192.168.1.100
首次连接会提示保存主机密钥,输入yes继续。然后输入默认用户ubuntu和密码。这里要注意:Ubuntu Server 20.04首次登录会强制要求修改密码。按照提示先输入当前密码ubuntu,然后设置新密码。密码不会显示在屏幕上,这是正常的安全措施。
如果连接失败,可以检查以下几点:树莓派是否正常启动(看指示灯),IP地址是否正确,SSH服务是否启用(ssh文件是否存在),网络是否连通。有时候需要多等一会儿,因为第一次启动系统需要完成一些初始化工作。
4. 系统更新与桌面环境安装
成功登录后第一件事就是更新系统。先运行sudo apt update更新软件列表,然后sudo apt upgrade升级已安装的包。这个过程可能需要一些时间,取决于网络速度。
常见问题处理:如果更新过程中出现锁文件错误,可以这样解决:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a
更新完成后就可以安装桌面环境了。Ubuntu提供了多个桌面环境选项,我推荐使用标准的ubuntu-desktop,因为它最完善,兼容性也最好。
sudo apt install ubuntu-desktop
这个安装过程比较漫长,大约需要30-60分钟,取决于网络速度。安装过程中可能会提示配置显示管理器,选择gdm3即可。安装完成后需要重启系统:
sudo reboot
重启后重新SSH连接,现在系统已经具有图形界面能力了,只是还没有显示设备。这时候可以安装一些常用工具,比如文件管理器、文本编辑器等。我一般还会安装chromium浏览器,这样后面可以通过网页方式管理一些服务。
5. VNC服务器安装与配置
现在我们来安装VNC服务器,实现远程桌面访问。RealVNC是树莓派官方推荐的方案,但需要安装他们的软件包。首先下载安装包:
sudo wget https://downloads.realvnc.com/download/file/vnc.files/VNC-Server-7.14.0-Linux-ARM64.deb
sudo dpkg -i VNC-Server-7.14.0-Linux-ARM64.deb
安装过程中可能会提示缺少依赖,可以用sudo apt -f install自动安装缺失的依赖包。安装完成后需要启用VNC服务:
sudo systemctl enable vncserver-x11-serviced.service
sudo systemctl start vncserver-x11-serviced.service
分辨率配置:为了获得更好的远程桌面体验,我们需要配置虚拟显示分辨率。首先安装虚拟显示驱动:
sudo apt install xserver-xorg-video-dummy
然后创建配置文件:
sudo nano /usr/share/X11/xorg.conf.d/xorg.conf
加入以下内容(支持多种分辨率):
Section "Device"
Identifier "Configured Video Device"
Driver "dummy"
VideoRam 256000
EndSection
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 200.0
Modeline "1920x1080" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +Hsync +Vsync
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080" "1440x900" "1280x800" "1024x768"
EndSubSection
EndSection
保存退出后,还需要通过raspi-config启用VNC功能:
sudo raspi-config
选择Interface Options → VNC → Yes。这样VNC服务就配置完成了。
6. 远程连接与桌面体验
现在可以在电脑上安装VNC Viewer了。RealVNC提供免费版,足够个人使用。下载安装后打开软件,输入树莓派的IP地址,格式为IP:端口号,默认端口是5900,所以直接输入IP地址即可。
首次连接会提示输入用户名和密码,使用ubuntu和你的密码登录。连接成功后就能看到Ubuntu的桌面环境了。默认是GNOME桌面,可能需要稍作适应。
使用体验优化:
- 如果感觉卡顿,可以降低分辨率和色彩深度
- 关闭桌面特效能显著提升响应速度
- 建议使用有线网络连接,稳定性更好
我实测在5GHz WiFi下,1080p分辨率基本流畅,适合大多数开发工作。如果需要进行视频播放或图形密集型工作,建议降低到720p分辨率。
还有一个实用技巧:可以配置VNC服务器开机自启动,并设置固定的分辨率。这样每次连接都能获得一致的体验。如果遇到连接问题,可以检查防火墙设置,确保5900端口是开放的。
7. 常见问题与解决方案
在实际使用过程中,可能会遇到各种问题。我这里总结了一些常见问题和解决方法:
WiFi连接问题:如果树莓派无法连接WiFi,首先检查/etc/netplan/50-cloud-init.yaml配置文件。确保缩进正确,SSID和密码格式正确。可以通过sudo netplan try测试配置,然后sudo netplan apply应用更改。
分辨率异常:如果VNC连接后分辨率不正常,可以修改xorg.conf文件中的Modeline值。也可以安装raspi-config工具来设置分辨率:
sudo apt install whiptail parted lua5.1 alsa-utils psmisc
sudo wget https://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20220907_all.deb
sudo dpkg -i raspi-config_20220907_all.deb
性能优化:如果桌面响应缓慢,可以关闭一些不必要的服务。使用systemctl list-unit-files --type=service查看所有服务,禁用不需要的服务:
sudo systemctl disable bluetooth.service
sudo systemctl disable avahi-daemon.service
中文环境配置:如果需要中文界面,安装中文语言包:
sudo apt install language-pack-zh-hans
然后通过设置→区域和语言管理安装中文支持,设置输入法等。
8. 进阶配置与使用技巧
系统基本配置完成后,还可以进行一些优化和个性化设置。首先是换源,国内用户建议使用阿里云或中科大源,速度会快很多:
sudo nano /etc/apt/sources.list
将默认源注释掉,添加以下内容:
deb https://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ focal-backports main restricted universe multiverse
更新源后别忘了sudo apt update和sudo apt upgrade。
磁盘空间优化:树莓派的存储空间有限,需要定期清理。可以使用sudo apt autoremove删除不需要的包,sudo apt clean清理缓存。还可以使用du -sh /* | sort -hr查找大文件。
远程开发环境:可以安装VS Code Server,通过浏览器进行代码编写。首先安装.NET Core运行时,然后安装VS Code:
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install code
备份策略:定期备份系统很重要,可以使用dd命令制作完整镜像备份:
sudo dd if=/dev/mmcblk0 of=raspberrypi-backup.img bs=4M status=progress
也可以使用rsync进行增量备份,只备份变化的文件。
经过这样一番配置,树莓派4B就变成了一个功能完整的远程开发工作站。我平时主要用它来运行测试环境、编译嵌入式程序,有时候也当作轻量级的服务器使用。性能完全够用,而且功耗很低,24小时开机也不心疼电费。
最重要的是,这套方案完全不需要显示器,真正实现了无头操作。通过VNC可以随时随地访问桌面环境,配合SSH命令行,工作效率很高。如果你也打算用树莓派做开发机,强烈推荐试试这个方案。
更多推荐
所有评论(0)