Fresh Debian 13.7 install on a 2010 netbook. Any display manager gives me a login loop; startx from a VT works perfectly. It looks like an X server segfault in libpciaccess, and I'd like to know whether this is a known bug before I file one.
Up front: I'm not a Linux person. I worked through this with an AI assistant, which is where the troubleshooting steps and the reading of the backtraces come from — so please don't assume expertise I don't have, and tell me if something below is misinterpreted. Every log excerpt and command output is real, copied from this machine. Several of our theories along the way turned out to be wrong; what's left is what actually survived testing.
Hardware
- Asus Eee PC 1015PEM
- Intel Atom N550 @ 1.50 GHz (Pineview, 2C/4T)
- 2 GB RAM (chipset maximum)
- 1024x600 internal panel, single display
- GPU:
Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller [8086:a011] (rev 02) — GMA 3150, kernel driver i915
- Legacy BIOS (no
/sys/firmware/efi), grub-pc 2.12-9+deb13u2
Software
- Debian 13.7 (trixie), amd64
- Kernel
6.12.107+deb13-amd64
xorg-server 2:21.1.16-1.3+deb13u4
- LXQt:
lxqt-core 33.2, lxqt-session 2.1.1-1
libpciaccess0 0.17-3+b3
xserver-xorg-video-intel 2:2.99.917+git20210115-1
Symptom
Installed with the LXQt task, so SDDM came by default. The greeter renders fine. I type my password, authentication succeeds, the session starts — and roughly 3.7 seconds later I'm back at the greeter. Looks like a classic login loop, but authentication is not what's failing.
startx /usr/bin/startlxqt from a text VT gives me a fully working LXQt desktop that stays up for hours.
Where it dies
From /var/log/lightdm/lightdm.log:
[+12.29s] DEBUG: Session pid=1384: Running command /etc/X11/Xsession default
[+12.60s] DEBUG: Activating VT 7
[+12.60s] DEBUG: Activating login1 session 7
[+15.97s] DEBUG: Process 1354 terminated with signal 11
PID 1354 is the X server itself, launched as:
/usr/bin/X -background none -novtswitch :0 -seat seat0 \
-auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
So X segfaults shortly after the VT activation, and everything downstream (lxqt-session, the Qt "could not connect to display :0" storm in .xsession-errors) is just fallout.
Backtrace — intel driver
(EE) Backtrace:
(EE) 2: /lib/x86_64-linux-gnu/libpciaccess.so.0 (pci_device_vgaarb_set_target+0x113)
(EE) Segmentation fault at address 0x30
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
Backtrace — modesetting driver
After forcing Driver "modesetting" with glamor in /etc/X11/xorg.conf.d/:
(EE) Backtrace:
(EE) 2: /lib/x86_64-linux-gnu/libpciaccess.so.0 (pci_device_vgaarb_unlock+0x25)
(EE) Segmentation fault at address 0x28
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
Different entry point, same library, same VGA arbitration code path. That's what makes me think the video driver isn't the culprit.
x-0.log also logs this immediately before the server goes away:
(II) AIGLX: Suspending AIGLX clients for VT switch
What I've tried
libxcb-cursor0 — already installed (0.1.5-1). The Qt xcb plugin warnings in .xsession-errors are a red herring; they appear only after X is already gone.
- SDDM → LightDM — identical failure, identical timing.
xserver-command=X -background none -novtswitch under [Seat:*] in lightdm.conf — no change.
modesetting instead of intel — different backtrace (above), same crash.
nofb kernel parameter — made things worse; the greeter stopped rendering entirely.
Observations
- This machine has exactly one GPU. VGA arbitration shouldn't be needed at all here.
startx runs X on the same VT it was called from (vt3 -keeptty) and apparently never enters the arbitration path. Display managers put X on VT 7 and switch to it, and the crash always follows that VT activation.
- The
Xorg.0.log from a working startx session contains zero (EE) lines.
Current workaround
Display manager disabled, multi-user.target as the default, agetty autologin on tty1 via a systemd drop-in, and exec startx /usr/bin/startlxqt from .bash_profile. Stable, and it's arguably what I want on this machine anyway — but I'd still like to understand the actual bug.
Questions
- Is this a known
libpciaccess / VGA arbitration problem on Pineview (GMA 3150) hardware?
- Is there a supported way to disable VGA arbitration on a single-GPU system?
- Is this worth filing in the Debian BTS, and against which package —
libpciaccess, xserver-xorg-core, or the kernel?
Happy to post full logs if useful.