我使用英特尔-AMD 混合显卡和 ubuntu 23.10 构建了一台新台式机,但似乎无法激活我的 AMD 卡。卡上的 HDMI 没有输出。它是一个可识别的 PCI 设备,“使用独立显卡启动”选项可用但没有效果。
任何建议或想法都会有所帮助!如果您需要更多信息,请询问。谢谢。
系统信息
主板:GIGABYTE B660M DS3H AX DDR4
GPU:Radeon RX 6650 XT (MSI)
lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
DeviceName: Onboard - Video
Subsystem: Gigabyte Technology Co., Ltd Alder Lake-S GT1 [UHD Graphics 730]
Kernel driver in use: i915
--
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6650 XT / 6700S / 6800S] (rev c1)
Subsystem: Micro-Star International Co., Ltd. [MSI] Navi 23 [Radeon RX 6650 XT]
Kernel driver in use: amdgpu
Kernel modules: amdgpu
我尝试过的方法
驱动因素
当我通过“使用独立显卡启动”打开终端时,我可以看到DRI_PRIME=pci-0000_03_00_0
。我甚至尝试过export DRI_PRIME=1
,无论哪种情况,glxinfo | grep Device
都会输出
Device: Mesa Intel(R) UHD Graphics 730 (ADL-S GT1) (0x4692)
vblank_mode=0 glxgears
并且glmark2
无论有没有该选项,其性能表现都相同。
VGA 转换器
我尝试过了启用 vga_switcheroo。CONFIG_VGA_SWITCHEROO=y
出现在/etc/boot/config-*
,所以我/etc/default/grub
用更新GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.modeset=1"
并重新启动了。--vgaswitcheroo
没有出现在/sys/kernel/debug/
,所以我认为我的机器没有“硬件多路复用器”......这是什么意思,是个问题吗?
日志
journalctl --dmesg --boot 0 --no-hostname --no-pager --grep "amdgpu"
kernel: [drm] amdgpu kernel modesetting enabled.
kernel: amdgpu: CRAT table disabled by module option
kernel: amdgpu: Virtual CRAT table created for CPU
kernel: amdgpu: Topology: Add CPU node
kernel: amdgpu 0000:03:00.0: enabling device (0006 -> 0007)
kernel: amdgpu 0000:03:00.0: amdgpu: Fetched VBIOS from VFCT
kernel: amdgpu: ATOM BIOS: 113-V502MECH-1OC
kernel: amdgpu 0000:03:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
kernel: amdgpu 0000:03:00.0: amdgpu: VRAM: 8176M 0x0000008000000000 - 0x00000081FEFFFFFF (8176M used)
kernel: amdgpu 0000:03:00.0: amdgpu: GART: 512M 0x0000000000000000 - 0x000000001FFFFFFF
kernel: amdgpu 0000:03:00.0: amdgpu: AGP: 267894784M 0x0000008400000000 - 0x0000FFFFFFFFFFFF
kernel: [drm] amdgpu: 8176M of VRAM memory ready
kernel: [drm] amdgpu: 7879M of GTT memory ready.
kernel: amdgpu 0000:03:00.0: amdgpu: STB initialized to 2048 entries
kernel: amdgpu 0000:03:00.0: amdgpu: Will use PSP to load VCN firmware
kernel: amdgpu 0000:03:00.0: amdgpu: RAS: optional ras ta ucode is not available
kernel: amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
kernel: amdgpu 0000:03:00.0: amdgpu: smu driver if version = 0x0000000f, smu fw if version = 0x00000013, smu fw program = 0, version = 0x003b2b00 (59.43.0)
kernel: amdgpu 0000:03:00.0: amdgpu: SMU driver if version not matched
kernel: amdgpu 0000:03:00.0: amdgpu: use vbios provided pptable
kernel: amdgpu 0000:03:00.0: amdgpu: SMU is initialized successfully!
kernel: snd_hda_intel 0000:03:00.1: bound 0000:03:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
kernel: amdgpu: HMM registered 8176MB device memory
kernel: kfd kfd: amdgpu: Allocated 3969056 bytes on gart
kernel: kfd kfd: amdgpu: Total number of KFD nodes to be created: 1
kernel: amdgpu: Virtual CRAT table created for GPU
kernel: amdgpu: Topology: Add dGPU node [0x73ef:0x1002]
kernel: kfd kfd: amdgpu: added device 1002:73ef
kernel: amdgpu 0000:03:00.0: amdgpu: SE 2, SH per SE 2, CU per SH 8, active_cu_number 32
kernel: amdgpu 0000:03:00.0: amdgpu: ring gfx_0.0.0 uses VM inv eng 0 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.0 uses VM inv eng 1 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.0 uses VM inv eng 4 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.0 uses VM inv eng 5 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.0 uses VM inv eng 6 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.0.1 uses VM inv eng 7 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.1.1 uses VM inv eng 8 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.2.1 uses VM inv eng 9 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring comp_1.3.1 uses VM inv eng 10 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring kiq_0.2.1.0 uses VM inv eng 11 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma0 uses VM inv eng 12 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring sdma1 uses VM inv eng 13 on hub 0
kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_dec_0 uses VM inv eng 0 on hub 8
kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_enc_0.0 uses VM inv eng 1 on hub 8
kernel: amdgpu 0000:03:00.0: amdgpu: ring vcn_enc_0.1 uses VM inv eng 4 on hub 8
kernel: amdgpu 0000:03:00.0: amdgpu: ring jpeg_dec uses VM inv eng 5 on hub 8
kernel: amdgpu 0000:03:00.0: amdgpu: Using BACO for runtime pm
kernel: [drm] Initialized amdgpu 3.54.0 20150101 for 0000:03:00.0 on minor 1
kernel: amdgpu 0000:03:00.0: [drm] Cannot find any crtc or sizes
kernel: amdgpu 0000:03:00.0: not ready 1023ms after resume; waiting
...
kernel: amdgpu 0000:03:00.0: not ready 65535ms after resume; giving up
kernel: amdgpu 0000:03:00.0: Unable to change power state from D3cold to D0, device inaccessible
kernel: [drm:gmc_v10_0_flush_vm_hub.constprop.0 [amdgpu]] *ERROR* Timeout waiting for VM flush hub: 0!
kernel: [drm:gmc_v10_0_flush_vm_hub.constprop.0 [amdgpu]] *ERROR* Timeout waiting for sem acquire in VM flush!
kernel: [drm:gmc_v10_0_flush_vm_hub.constprop.0 [amdgpu]] *ERROR* Timeout waiting for VM flush hub: 8!
kernel: [drm:gmc_v10_0_flush_vm_hub.constprop.0 [amdgpu]] *ERROR* Timeout waiting for sem acquire in VM flush!
kernel: [drm:gmc_v10_0_flush_vm_hub.constprop.0 [amdgpu]] *ERROR* Timeout waiting for VM flush hub: 8!
kernel: [drm:gmc_v10_0_flush_vm_hub.constprop.0 [amdgpu]] *ERROR* Timeout waiting for VM flush hub: 0!
kernel: amdgpu 0000:03:00.0: amdgpu: RAS: optional ras ta ucode is not available
kernel: WARNING: CPU: 0 PID: 835 at drivers/gpu/drm/amd/amdgpu/amdgpu_object.c:436 amdgpu_bo_free_kernel+0x122/0x150 [amdgpu]
kernel: mt76_connac_lib kvm_intel mt76 snd_hda_core nls_iso8859_1 amdgpu snd_hwdep i915 kvm irqbypass snd_pcm mac80211 crct10dif_pclmul amdxcp polyval_clmulni iommu_v2 polyval_generic snd_seq_midi btusb ghash_clmulni_intel snd_seq_midi_event gpu_sched aesni_intel snd_rawmidi btrtl drm_suballoc_helper cmdlinepart drm_buddy drm_ttm_helper btbcm ttm btintel crypto_simd spi_nor btmtk pmt_telemetry snd_seq drm_display_helper cryptd ee1004 mei_pxp mei_hdcp mtd pmt_class cfg80211 cec rapl snd_seq_device bluetooth snd_timer rc_core i2c_i801 intel_cstate gigabyte_wmi wmi_bmof snd libarc4 drm_kms_helper ecdh_generic i2c_smbus spi_intel_pci soundcore mei_me ecc spi_intel intel_lpss_pci i2c_algo_bit mei intel_lpss idma64 joydev intel_vsec input_leds intel_hid sparse_keymap acpi_tad acpi_pad mac_hid msr parport_pc ppdev lp drm parport efi_pstore dmi_sysfs ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid hid crc32_pclmul r8169 ahci xhci_pci realtek libahci xhci_pci_renesas video wmi
kernel: RIP: 0010:amdgpu_bo_free_kernel+0x122/0x150 [amdgpu]
kernel: ? amdgpu_bo_free_kernel+0x122/0x150 [amdgpu]
kernel: ? amdgpu_bo_free_kernel+0x122/0x150 [amdgpu]
kernel: psp_rap_initialize+0x198/0x210 [amdgpu]
kernel: psp_resume+0x182/0x290 [amdgpu]
kernel: amdgpu_device_fw_loading+0xf8/0x2e0 [amdgpu]
kernel: amdgpu_device_resume+0xda/0x360 [amdgpu]
kernel: amdgpu_pmops_runtime_resume+0x84/0x100 [amdgpu]
kernel: amdgpu_drm_ioctl+0x38/0x90 [amdgpu]
kernel: amdgpu 0000:03:00.0: amdgpu: RAP TA initialize fail (0) status -1.
kernel: amdgpu 0000:03:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
kernel: amdgpu 0000:03:00.0: amdgpu: SMU is resuming...
kernel: amdgpu 0000:03:00.0: amdgpu: smu driver if version = 0x0000000f, smu fw if version = 0x00000013, smu fw program = 0, version = 0x003b2b00 (59.43.0)
kernel: amdgpu 0000:03:00.0: amdgpu: SMU driver if version not matched
kernel: amdgpu 0000:03:00.0: amdgpu: dpm has been disabled
kernel: amdgpu 0000:03:00.0: amdgpu: SMU is resumed successfully!
kernel: WARNING: CPU: 0 PID: 835 at drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hubbub.c:566 hubbub2_get_dchub_ref_freq+0xbb/0xe0 [amdgpu]
kernel: mt76_connac_lib kvm_intel mt76 snd_hda_core nls_iso8859_1 amdgpu snd_hwdep i915 kvm irqbypass snd_pcm mac80211 crct10dif_pclmul amdxcp polyval_clmulni iommu_v2 polyval_generic snd_seq_midi btusb ghash_clmulni_intel snd_seq_midi_event gpu_sched aesni_intel snd_rawmidi btrtl drm_suballoc_helper cmdlinepart drm_buddy drm_ttm_helper btbcm ttm btintel crypto_simd spi_nor btmtk pmt_telemetry snd_seq drm_display_helper cryptd ee1004 mei_pxp mei_hdcp mtd pmt_class cfg80211 cec rapl snd_seq_device bluetooth snd_timer rc_core i2c_i801 intel_cstate gigabyte_wmi wmi_bmof snd libarc4 drm_kms_helper ecdh_generic i2c_smbus spi_intel_pci soundcore mei_me ecc spi_intel intel_lpss_pci i2c_algo_bit mei intel_lpss idma64 joydev intel_vsec input_leds intel_hid sparse_keymap acpi_tad acpi_pad mac_hid msr parport_pc ppdev lp drm parport efi_pstore dmi_sysfs ip_tables x_tables autofs4 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid hid crc32_pclmul r8169 ahci xhci_pci realtek libahci xhci_pci_renesas video wmi
kernel: RIP: 0010:hubbub2_get_dchub_ref_freq+0xbb/0xe0 [amdgpu]
kernel: ? hubbub2_get_dchub_ref_freq+0xbb/0xe0 [amdgpu]
kernel: ? hubbub2_get_dchub_ref_freq+0xbb/0xe0 [amdgpu]
kernel: dcn30_init_hw+0x1d5/0x830 [amdgpu]
kernel: dc_set_power_state+0x10c/0x170 [amdgpu]
kernel: dm_resume+0xf0/0x6a0 [amdgpu]
kernel: amdgpu_device_ip_resume_phase2+0xd0/0x210 [amdgpu]
kernel: amdgpu_device_resume+0xe9/0x360 [amdgpu]
kernel: amdgpu_pmops_runtime_resume+0x84/0x100 [amdgpu]
kernel: amdgpu_drm_ioctl+0x38/0x90 [amdgpu]
kernel: amdgpu 0000:03:00.0: amdgpu: rlc autoload: gc ucode autoload timeout
kernel: [drm:amdgpu_device_ip_resume_phase2 [amdgpu]] *ERROR* resume of IP block <gfx_v10_0> failed -110
kernel: amdgpu 0000:03:00.0: amdgpu: amdgpu_device_ip_resume failed (-110).
...
我明白了Unable to change power state from D3cold to D0, device inaccessible
——也许这就是确凿的证据?
更新
我发现如果我连接了显示器,该卡确实可以工作启动时。如果 iGPU 上没有插入任何东西,并且不要让计算机长时间处于静止状态,它就可以正常工作。如果显示器超时并锁定,事情往往会出错。如果我将 iGPU 连接到显示器并将其放置足够长的时间,我仍然会看到相同的问题,包括Unable to change power state
。