修复Pangu的X11和图形化界面问题

目录

Pangu图形化界面打不开

问题描述

2025-05-09
装卸存储时发现Pangu图形化界面无法启动。一开始怀疑是Docker服务导致的问题,但禁用各种服务后仍未解决;尝试重装gdm3等组件也无效。


1. 问题情况

查看桌面系统启动报错

运行以下命令:

1
systemctl status gdm3

报错信息:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
● gdm.service - GNOME Display Manager
    Loaded: loaded (/lib/systemd/system/gdm.service; static)
    Active: active (running) since Fri 2025-05-09 13:30:26 CST; 38min ago
    Process: 3788 ExecStartPre=/usr/share/gdm/generate-config (code=exited, status=0/SUCCESS)
   Main PID: 3849 (gdm3)
     Tasks: 3 (limit: 629145)
    Memory: 5.7M
       CPU: 609ms
    CGroup: /system.slice/gdm.service
           └─3849 /usr/sbin/gdm3

May 09 14:02:50 pangu gdm3[3849]: Gdm: GdmDisplay: Session never registered, failing
May 09 14:02:50 pangu gdm3[3849]: Gdm: GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors

查看日志

运行以下命令:

1
less /var/log/Xorg.0.log

报错信息:

1
2
3
4
5
6
GdmDisplay: Session never registered, failing
GLib-GObject: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Child process was already dead

[   427.546] (EE) Failed to load module "ast" (module does not exist, 0)
[   427.783] (II) Initializing extension MIT-SCREEN-SAVER

怀疑是显卡驱动问题。运行以下命令查看显卡状态:

1
lspci -v | grep VGA

输出结果:

1
03:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41) (prog-if 00 [VGA controller])

2. 查看情况

检查GDM报错

运行以下命令:

1
journalctl -u gdm -b

ChatGPT总结:

1
2
3
4
# 当前问题总结:
# GDM 启动流程如下:
systemd --> gdm3 --> gdm-launch-environment --> GNOME 会话 (gnome-session)
# 一步一步排查

运行以下命令查看版本:

1
gnome-session --version

报错信息:

1
/usr/libexec/gnome-session-binary: symbol lookup error: /lib/x86_64-linux-gnu/libcairo.so.2: undefined symbol: FT_Get_Var_Design_Coordinates

3. 解决方法

问题分析

FT_Get_Var_Design_Coordinates函数来自libfreetype.so.6,问题出在以下路径:

1
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6

解决步骤

  1. 备份文件:

    1
    2
    
    cp /lib/x86_64-linux-gnu/libcairo.so.2 /lib/x86_64-linux-gnu/libcairo.so.2.bak
    mv /usr/local/lib/libfreetype.so.6 /usr/local/lib/libfreetype.so.6.bak
    
  2. 替换库文件:

    1
    
    cp /lib/x86_64-linux-gnu/libfreetype.so.6 /usr/local/lib/libfreetype.so.6
    
  3. 刷新配置并重启服务:

    1
    2
    
    ldconfig
    systemctl restart gdm3
    
  4. 验证:

    1
    
    gnome-session --version
    

涉及的所有包:

1
gdm3 gnome-shell gnome-session ubuntu-desktop xserver-xorg libfreetype6 libcairo2

Pangu X11 Forwarding启动失败

1. 问题情况

Pangu无法使用X11转发,但Guru正常。以下为问题截图:
Mobaxterm登录截图


2. 查看情况

检查配置

运行以下命令:

1
echo $DISPLAY

Pangu无输出,Guru正常,说明Pangu的X11转发未生效。

运行以下命令检查sshd_config

1
sshd -T | grep x11

输出结果:

1
2
3
x11displayoffset 10
x11forwarding yes
x11uselocalhost yes

查看日志:

1
grep X11 /var/log/auth.log

输出结果:

1
May  9 13:52:54 pangu sshd[249636]: error: Failed to allocate internet-domain X11 display socket.

3. 解决办法

  1. 编辑/etc/ssh/sshd_config

    1
    
    X11UseLocalhost no
    
  2. 保存并重启服务:

    1
    
    systemctl restart sshd
    
  3. 验证:

    1
    
    echo $DISPLAY
    
updatedupdated2025-05-092025-05-09