这是我的显卡:
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
Subsystem: XFX Pine Group Inc. Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
Kernel driver in use: radeon
在没有插入 Vga 的情况下启动后,我热插拔 Vga 监视器。但是屏幕仍然是黑色的,并且 lightdm/xdm 没有出现。我注意到了
VGA
状态是connected
,- 但是
enabled
是disabled
:
root@lccy7:~# cat /sys/class/drm/card0-VGA-1/status
connected
root@lccy7:~# cat /sys/class/drm/card0-VGA-1/enabled
disabled
xdm
在后台愉快地运行:
root@lccy7:~# systemctl status xdm
* xdm.service - X-Window Display Manager
Loaded: loaded (/lib/systemd/system/xdm.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-12 14:37:03 CST; 1h 3min ago
Main PID: 2589 (xdm)
Tasks: 4 (limit: 4915)
CGroup: /system.slice/xdm.service
|-2589 /usr/bin/xdm -nodaemon
`-2604 /usr/lib/xorg/Xorg :0 -auth /var/lib/xdm/authdir/authfiles/A:0-InChxF
May 12 14:37:01 lccy7 systemd[1]: Starting X-Window Display Manager...
May 12 14:37:03 lccy7 systemd[1]: Started X-Window Display Manager.
May 12 14:37:04 lccy7 xdm[2635]: pam_unix(greeter:session): session opened for user root by (uid=0)
一旦我切换到其他 tty(例如Ctrl Alt F1,它是connected
和enabled
:
root@lccy7:~# cat /sys/class/drm/card0-VGA-1/status
connected
root@lccy7:~# cat /sys/class/drm/card0-VGA-1/enabled
enabled
我用 将drm 转为详细模式drm.debug=0x1e log_buf_len=4M
,这里是内核日志(journalctl -b 0 -k | grep -E "enabled|\bconnected|hotplug" | grep -v i2c
):
# before plugging in Vga:
root@lccy7:~# journalctl -b 0 -k | grep -E "enabled|\bconnected|hotplug" | grep -v i2c
May 12 16:34:31 lccy7 kernel: console [tty0] enabled
May 12 16:34:31 lccy7 kernel: raid6: .... xor() 1078 MB/s, rmw enabled
May 12 16:34:31 lccy7 kernel: [drm] radeon kernel modesetting enabled.
May 12 16:34:31 lccy7 kernel: [drm] PCIE GART of 1024M enabled (table at 0x0000000000274000).
May 12 16:34:31 lccy7 kernel: radeon 0000:03:00.0: WB enabled
May 12 16:34:31 lccy7 kernel: [drm:drm_sysfs_hotplug_event] generating hotplug event
May 12 16:34:31 lccy7 kernel: [drm:drm_sysfs_hotplug_event] generating hotplug event
May 12 16:34:31 lccy7 kernel: [drm:drm_sysfs_hotplug_event] generating hotplug event
May 12 16:34:31 lccy7 kernel: radeon 0000:03:00.0: No connectors reported connected with modes
May 12 16:34:31 lccy7 kernel: [drm:drm_enable_connectors] connector 37 enabled? no
May 12 16:34:31 lccy7 kernel: [drm:drm_enable_connectors] connector 39 enabled? no
May 12 16:34:31 lccy7 kernel: [drm:drm_enable_connectors] connector 41 enabled? no
May 12 16:34:31 lccy7 kernel: [drm] amdgpu kernel modesetting enabled.
May 12 16:34:31 lccy7 kernel: sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
May 12 16:34:31 lccy7 kernel: sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
May 12 16:34:36 lccy7 kernel: [drm:drm_sysfs_hotplug_event] generating hotplug event
May 12 16:34:36 lccy7 kernel: [drm:drm_fb_helper_hotplug_event]
May 12 16:34:36 lccy7 kernel: [drm:drm_enable_connectors] connector 37 enabled? no
May 12 16:34:36 lccy7 kernel: [drm:drm_enable_connectors] connector 39 enabled? no
May 12 16:34:36 lccy7 kernel: [drm:drm_enable_connectors] connector 41 enabled? no
# After plugging to Vga:
May 12 16:41:35 lccy7 kernel: [drm:radeon_atombios_connected_scratch_regs] CRT1 connected
May 12 16:41:35 lccy7 kernel: [drm:output_poll_execute] [CONNECTOR:41:VGA-1] status updated from disconnected to connected
May 12 16:41:35 lccy7 kernel: [drm:drm_sysfs_hotplug_event] generating hotplug event
May 12 16:41:35 lccy7 kernel: [drm:radeon_atombios_connected_scratch_regs] CRT1 connected
# After switching to tty1:
May 12 16:45:39 lccy7 kernel: [drm:drm_fb_helper_hotplug_event]
May 12 16:45:39 lccy7 kernel: [drm:radeon_atombios_connected_scratch_regs] CRT1 connected
May 12 16:45:39 lccy7 kernel: [drm:drm_enable_connectors] connector 37 enabled? no
May 12 16:45:39 lccy7 kernel: [drm:drm_enable_connectors] connector 39 enabled? no
May 12 16:45:39 lccy7 kernel: [drm:drm_enable_connectors] connector 41 enabled? yes
这是完整的drm|radeon
日志(有许多 ioctl 日志):https ://paste.ubuntu.com/p/rWDZ7GCdN6/
从完整的日志中,我发现切换到 tty 后的第一个 ioctl 是:
May 12 16:44:41 lccy7 kernel: [drm:drm_ioctl] pid=4206, dev=0xe200, auth=1, DRM_IOCTL_MODE_SETCRTC
我已经确定如果我使用插入的 Vga 启动,lightdm/xdm 可以毫无问题地显示。