树莓派4B+ubuntu20.04:不插显示器能不能正常开机?

问题原因

树莓派4B在没有显示器的情况下无法正常启动,主要是因为GPU和显示配置的问题。Ubuntu Server/Desktop 默认需要检测显示设备来完成图形界面的初始化。

  1. GPU驱动初始化:树莓派的GPU需要显示设备来完成初始化

  2. EDID检测失败:没有显示器时,系统无法获取显示器的扩展显示识别数据

  3. 图形服务挂起:图形界面服务等待显示设备就绪

  4. 自动分辨率检测:系统尝试检测最佳显示分辨率

解决方案

步骤一:修改GPU内存分配

编辑 /boot/firmware/config.txt 文件,添加或修改以下配置:

bash 复制代码
# 强制启用GPU,即使没有显示器
gpu_mem=64
disable_overscan=1
hdmi_force_hotplug=1
hdmi_group=1
hdmi_mode=16
hdmi_drive=2

# 强制HDMI热插拔检测
hdmi_force_hotplug=1

# 设置默认分辨率(1024x768)
hdmi_group=2
hdmi_mode=16

# 禁用splash屏幕以避免显示问题
disable_splash=1

步骤二:配置虚拟显示驱动

bash 复制代码
# 安装xserver虚拟显示驱动
sudo apt update
sudo apt install xserver-xorg-video-dummy

# 创建虚拟显示配置
sudo nano /usr/share/X11/xorg.conf.d/xorg.conf

添加如下内容:

bash 复制代码
Section "Device"
    Identifier "DummyDevice"
    Driver "dummy"
    VideoRam 256000
EndSection

Section "Monitor"
    Identifier "DummyMonitor"
    HorizSync 30.0-70.0
    VertRefresh 50.0-75.0
    Modeline "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
EndSection

Section "Screen"
    Identifier "DummyScreen"
    Device "DummyDevice"
    Monitor "DummyMonitor"
    DefaultDepth 24
    SubSection "Display"
        Depth 24
        Modes "1024x768"
    EndSubSection
EndSection

步骤三:设置x11vnc

x11vnc可以共享现有的显示会话,更适合无显示器情况:

bash 复制代码
# 安装x11vnc
sudo apt install x11vnc

# 设置VNC密码
x11vnc -storepasswd

# 创建systemd服务
sudo nano /etc/systemd/system/x11vnc.service

服务文件内容:

bash 复制代码
[Unit]
Description=X11 VNC Remote Desktop Service
After=display-manager.service network.target syslog.target
 
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -rfbauth /home/pi/.vnc/passwd -forever -display :0
User=pi
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target

启用服务:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable x11vnc.service
sudo systemctl start x11vnc.service

重启树莓派即可

分辨率参考表

虚拟桌面的情况下配置:/usr/share/X11/xorg.conf.d/xorg.conf

修改如下参数:hdmi_group、hdmi_mode

如果预设模式不满足需求,可以使用自定义分辨率:

bash 复制代码
# 禁用预设模式,使用自定义
hdmi_group=2
hdmi_mode=87

# 自定义 1600x900 分辨率
hdmi_cvt=1600 900 60 3 0 0 0

# 或者自定义 1920x1080
hdmi_cvt=1920 1080 60 3 0 0 0

CEA 模式 (hdmi_group=1) - 电视标准

模式 分辨率 刷新率 说明
1 640x480 60Hz VGA
4 1280x720 60Hz 720p HD
16 1920x1080 60Hz 1080p Full HD
31 1920x1080 50Hz 1080p PAL
32 1920x1080 24Hz 1080p 电影

DMT 模式 (hdmi_group=2) - 显示器标准

模式 分辨率 刷新率 说明
4 640x480 60Hz VGA
9 800x600 60Hz SVGA
16 1024x768 60Hz XGA
23 1280x768 60Hz WXGA
28 1280x800 60Hz WXGA
35 1280x1024 60Hz SXGA
39 1366x768 60Hz HD
47 1440x900 60Hz WXGA+
58 1680x1050 60Hz WSXGA+
82 1920x1080 60Hz 1080p
相关推荐
木子欢儿1 小时前
Ubuntu 24.04 执行超微服务器 JNLP 程序
linux·运维·服务器·ubuntu
橘子编程13 小时前
JavaScript与TypeScript终极指南
javascript·ubuntu·typescript
12345,catch a tiger15 小时前
虚拟机ubuntu安装Vmware Tools
linux·运维·ubuntu
辰风沐阳15 小时前
OpenClaw 安装教程(Ubuntu 24.04 Desktop)
linux·ubuntu
六点的晨曦18 小时前
VMware安装Ubuntu的记录
linux·ubuntu
问简19 小时前
ubuntu 字体相关问题
运维·服务器·ubuntu
沐雪轻挽萤21 小时前
无人系统:Ubuntu 操作系统全景架构与实战工程指南
linux·运维·ubuntu
corpse20101 天前
VirtualBox 安装ubuntu-25 ,配置SSH工具登录
linux·ubuntu·ssh
YYYing.1 天前
【Linux/C++网络篇(一) 】网络编程入门:一文搞懂 TCP/UDP 编程模型与 Socket 网络编程
linux·网络·c++·tcp/ip·ubuntu·udp
魔都吴所谓1 天前
【Ubuntu】22.04安装 CMake 3.24
linux·运维·ubuntu