You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在QEMU(UTM)中部署Arch Linux ARM时SDDM黑屏并提示‘Failed to read display number from pipe’

在QEMU(UTM)中部署Arch Linux ARM时SDDM黑屏并提示‘Failed to read display number from pipe’

看起来你遇到的是SDDM在Arch Linux ARM的QEMU/UTM虚拟机里启动X服务器失败导致的黑屏问题——从你贴的日志来看,X服务器启动后没有返回正确的显示号,这大概率是虚拟机显卡驱动缺失或者X配置异常引发的。下面是几个我实际踩坑后验证有效的解决思路:

  • 先补全虚拟机显卡驱动
    UTM/QEMU默认用的是virtio显卡,Arch Linux ARM默认可能没装对应的X驱动。先安装必需的驱动包:
sudo pacman -S xf86-video-virtio xf86-input-evdev

安装完成后重启虚拟机,再尝试启动SDDM:

systemctl start sddm

这一步是最常见的解决方法,我自己就是这么搞定的。

  • 手动指定X服务器的显示号
    有时候X没法自动协商出显示号,可以直接在SDDM配置里硬指定。编辑SDDM的主配置文件:
sudo nano /etc/sddm.conf

找到[X11]段落,添加或修改以下内容(如果没有这个段落就自己新建):

[X11]
DisplayCommand=/usr/bin/X -nolisten tcp -background none -seat seat0 vt2 -auth /run/sddm/%c -noreset :0

这里用%c作为Xauth路径的占位符(SDDM会自动替换成实际生成的文件),强制指定显示号为:0。保存退出后重启SDDM服务。

  • 生成Xorg的默认配置文件
    如果系统里没有Xorg的配置文件,X启动时可能会找不到显卡设备。手动生成默认配置:
sudo Xorg -configure

把生成的临时配置文件复制到系统目录:

sudo cp xorg.conf.new /etc/X11/xorg.conf

之后再启动SDDM测试。

  • 手动启动X排查具体错误
    你可以切换到SDDM用的虚拟终端(VT2)手动启动X,看具体报错。操作步骤:
    1. Ctrl+Alt+F2切换到VT2,登录你的账户
    2. 执行SDDM日志里的X启动命令(替换成你日志里的实际Xauth路径):
/usr/bin/X -nolisten tcp -background none -seat seat0 vt2 -auth /run/sddm/xauth_pWuPxs -noreset :0

这时候会直接显示X启动的错误信息,比如驱动加载失败、权限不足等,能帮你精准定位问题。

  • 用LightDM交叉验证问题
    如果以上都没效果,可以先装LightDM测试,排除是SDDM自身的适配问题:
sudo pacman -S lightdm lightdm-gtk-greeter

启动LightDM:

systemctl start lightdm

如果LightDM能正常显示登录界面,那问题就出在SDDM的配置上;如果还是黑屏,那就是X服务器或显卡驱动的核心问题,回到第一步重新检查驱动安装。

备注:内容来源于stack exchange,提问作者axolotlKing0722

火山引擎 最新活动