我尝试过重新编译linux内核,修改和不修改,但总是显示错误。使用 LightDM:systemd 加载模块无法找到 nvidia-nvsm 使用 SDDM:无法从管道读取数字
我对linux不太了解,所以我只是按照这里的教程进行操作: https://wiki.archlinux.org/title/Kernel/Traditional_compilation
对于 Arch 的安装,我只使用了 archinstall,我尝试了 Budgie (LightDM) 和 KDE Plasma (SDDM)。我尝试过使用 nvidia-dkms 而不是 nvidia,但仍然没有成功。如果我可以提供任何日志,请告诉我。
我正在使用 Arch 5.19-rc6 和 nvidia-dkms。 (每个自编译内核的错误都是相同的)
lsmod | grep nvidia 输出:
nvidia_modeset 1425408 19 nvidia_drm
nvidia_uvm 2740224 0
nvidia 45367296 1139 nvidia_uvm,nvidia_modeset
这是启动日志:https://pastebin.com/ecQGxW8x 当运行journalctl时: -p 3 -xb 这些是我得到的错误:
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.SADX], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.SADS], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.RDLY], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14._DSM], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.BTRT], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14._PRR], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.BRDY], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.BRDS], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.ECKY], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.ECKV], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.GPCX], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.GPC], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.BTLY], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.HS14.BTLC], AE_ALREADY_EXISTS (20220331/dswload2-326)
Jul 12 13:19:54 jenusis kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20220331/psobject-220)
Jul 12 13:19:54 jenusis systemd-modules-load[441]: Failed to find module 'nvidia-uvm'
Jul 12 13:19:59 jenusis sddm[553]: Failed to read display number from pipe
Jul 12 13:20:01 jenusis kernel: Bluetooth: hci0: Malformed MSFT vendor event: 0x02
Jul 12 13:20:01 jenusis sddm[553]: Failed to read display number from pipe
Jul 12 13:20:04 jenusis sddm[553]: Failed to read display number from pipe
Jul 12 13:20:04 jenusis sddm[553]: Could not start Display server on vt 1
据我所知,第一个错误并不重要。它只是关于:systemd-modules-load[441]:无法找到模块“nvidia-uvm”
当我运行 modinfo nvidia-uvm 时,我收到的消息是:
modinfo nvidia-uvm
filename: /lib/modules/5.18.10-arch1-1/updates/dkms/nvidia-uvm.ko.zst
supported: external
license: Dual MIT/GPL
srcversion: 3170E1233D7C787ABE15CDF
depends: nvidia
retpoline: Y
name: nvidia_uvm
vermagic: 5.18.10-arch1-1 SMP preempt mod_unload
parm: uvm_ats_mode:Set to 0 to disable ATS (Address Translation Services). Any other value is ignored. Has no effect unless the platform supports ATS. (int)
parm: uvm_perf_prefetch_enable:uint
parm: uvm_perf_prefetch_threshold:uint
parm: uvm_perf_prefetch_min_faults:uint
parm: uvm_perf_thrashing_enable:uint
parm: uvm_perf_thrashing_threshold:uint
parm: uvm_perf_thrashing_pin_threshold:uint
parm: uvm_perf_thrashing_lapse_usec:uint
parm: uvm_perf_thrashing_nap:uint
parm: uvm_perf_thrashing_epoch:uint
parm: uvm_perf_thrashing_pin:uint
parm: uvm_perf_thrashing_max_resets:uint
parm: uvm_perf_map_remote_on_native_atomics_fault:uint
parm: uvm_disable_hmm:Force-disable HMM functionality in the UVM driver. Default: false (i.e, HMM is potentially enabled). Ignored if HMM is not supported in the driver, or if ATS settings conflict with HMM. (bool)
parm: uvm_perf_migrate_cpu_preunmap_enable:int
parm: uvm_perf_migrate_cpu_preunmap_block_order:uint
parm: uvm_global_oversubscription:Enable (1) or disable (0) global oversubscription support. (int)
parm: uvm_perf_pma_batch_nonpinned_order:uint
parm: uvm_cpu_chunk_allocation_sizes:OR'ed value of all CPU chunk allocation sizes. (uint)
parm: uvm_leak_checker:Enable uvm memory leak checking. 0 = disabled, 1 = count total bytes allocated and freed, 2 = per-allocation origin tracking. (int)
parm: uvm_force_prefetch_fault_support:uint
parm: uvm_debug_enable_push_desc:Enable push description tracking (uint)
parm: uvm_debug_enable_push_acquire_info:Enable push acquire information tracking (uint)
parm: uvm_page_table_location:Set the location for UVM-allocated page tables. Choices are: vid, sys. (charp)
parm: uvm_perf_access_counter_mimc_migration_enable:Whether MIMC access counters will trigger migrations.Valid values: <= -1 (default policy), 0 (off), >= 1 (on) (int)
parm: uvm_perf_access_counter_momc_migration_enable:Whether MOMC access counters will trigger migrations.Valid values: <= -1 (default policy), 0 (off), >= 1 (on) (int)
parm: uvm_perf_access_counter_batch_count:uint
parm: uvm_perf_access_counter_granularity:Size of the physical memory region tracked by each counter. Valid values asof Volta: 64k, 2m, 16m, 16g (charp)
parm: uvm_perf_access_counter_threshold:Number of remote accesses on a region required to trigger a notification.Valid values: [1, 65535] (uint)
parm: uvm_perf_reenable_prefetch_faults_lapse_msec:uint
parm: uvm_perf_fault_batch_count:uint
parm: uvm_perf_fault_replay_policy:uint
parm: uvm_perf_fault_replay_update_put_ratio:uint
parm: uvm_perf_fault_max_batches_per_service:uint
parm: uvm_perf_fault_max_throttle_per_service:uint
parm: uvm_perf_fault_coalesce:uint
parm: uvm_fault_force_sysmem:Force (1) using sysmem storage for pages that faulted. Default: 0. (int)
parm: uvm_perf_map_remote_on_eviction:int
parm: uvm_exp_gpu_cache_peermem:Force caching for mappings to peer memory. This is an experimental parameter that may cause correctness issues if used. (uint)
parm: uvm_exp_gpu_cache_sysmem:Force caching for mappings to system memory. This is an experimental parameter that may cause correctness issues if used. (uint)
parm: uvm_channel_num_gpfifo_entries:uint
parm: uvm_channel_gpfifo_loc:charp
parm: uvm_channel_gpput_loc:charp
parm: uvm_channel_pushbuffer_loc:charp
parm: uvm_enable_va_space_mm:Set to 0 to disable UVM from using mmu_notifiers to create an association between a UVM VA space and a process. This will also disable pageable memory access via either ATS or HMM. (int)
parm: uvm_enable_debug_procfs:Enable debug procfs entries in /proc/driver/nvidia-uvm (int)
parm: uvm_peer_copy:Choose the addressing mode for peer copying, options: phys [default] or virt. Valid for Ampere+ GPUs. (charp)
parm: uvm_debug_prints:Enable uvm debug prints. (int)
parm: uvm_enable_builtin_tests:Enable the UVM built-in tests. (This is a security risk) (int)
它说它位于 module 文件夹中,但在 5.18.10-arch1-1 文件夹中,我很确定我必须以某种方式使 nvidia-uvm 与新内核一起找到,但我只是不知道如何。
答案1
修复方法是卸载 nvidia-dkms,并在内核安装到系统中后安装它。