我最近将我的 Nvidia 驱动程序从 418 升级到了 435(我有一个 RTX 2070)。长话短说,但我在驱动程序冲突方面遇到了一些问题,所以我不得不切换到 nouveau 驱动程序并再次返回。我很确定这已经根据 dpkg 输出清除了 418 个驱动程序。
但是,我遇到了一个奇怪的问题:每隔一段时间,当我尝试将其置于待机状态时,我的系统就会挂起。我得到一个完全没有响应的空白屏幕,我必须手动重新启动,这令人沮丧,因为我失去了所有的工作。奇怪的是,并非每次待机都会发生这种情况,我不知道为什么。
我尝试在启动时将“initcall_debug”添加到 GRUB 命令行,但我不确定它是否与我的情况有关。无论如何,这是没有的行的输出returned 0
:
$ dmesg -s 128000 | grep "初始化调用" | sed "s/\(.*\)after\(.*\)/\2 \1/g" | 排序-n | grep '返回-' 0 使用 [0.176011] initcall xen_pvh_gnttab_setup+0x0/0x3a返回 - 19 0 使用 [0.176400] initcall __gnttab_init+0x0/0x40返回 - 19 0 使用 [0.176444] initcall bts_init+0x0/0xc2返回 - 19 0 使用 [0.176444] initcall numachip_timer_init+0x0/0x5a返回 - 19 0 使用 [0.176444] initcall pt_init+0x0/0x352返回 - 19 0 使用 [0.176444] initcall setup_vcpu_hotplug_event+0x0/0x31返回 - 19 0 使用 [0.176444] initcall xenbus_init+0x0/0x2d1返回 - 19 0 使用 [0.176444] initcall xen_pcpu_init+0x0/0xc5返回 - 19 0 使用 [0.276002] initcall balloon_init+0x0/0x1ba返回 - 19 0 使用 [0.276002] initcall xen_acpi_pad_init+0x0/0x52返回 - 19 0 使用 [0.276002] initcall xen_setup_shutdown_event+0x0/0x40返回 - 19 0 使用 [0.277672] initcall save_microcode_in_initrd+0x0/0xa0返回 - 22 0 使用 [0.808110] initcall calgary_fixup_tce_spaces+0x0/0x106返回 - 19 0 使用 [0.808911] initcall amd_iommu_pc_init+0x0/0x22a返回 - 19 0 使用 [0.808916] initcall intel_uncore_init+0x0/0x24d返回 - 19 0 使用 [0.810834] initcall efivarfs_init+0x0/0x39返回 - 19 0 使用 [0.839467] initcall intel_idle_init+0x0/0x5e2返回 - 19 0 使用 [0.841296] initcall bgrt_init+0x0/0xba返回 - 19 0 使用 [0.841303] initcall ghes_init+0x0/0x142返回 - 19 0 使用 [0.841336] initcall xenbus_probe_initcall+0x0/0x53返回 - 19 0 使用 [0.841338] initcall xenbus_init+0x0/0x3b返回 - 19 0 使用 [0.841340] initcall xenbus_backend_init+0x0/0x4d返回 - 19 0 使用 [0.841341] initcall hypervisor_subsys_init+0x0/0x2a返回 - 19 0 使用 [0.841342] initcall hyper_sysfs_init+0x0/0x191返回 - 19 0 使用 [0.841349] initcall xen_late_init_mcelog+0x0/0x66返回 - 19 0 使用 [0.841351] initcall xen_acpi_processor_init+0x0/0x1d9返回 - 19 0 使用 [0.841381] initcall xen_hvc_init+0x0/0x24b返回 - 19 0 使用 [0.865921] initcall xlblk_init+0x0/0xf0返回 - 19 0 使用 [0.866405] initcall netif_init+0x0/0x77返回 - 19 0 使用 [1.187288] initcall intel_pstate_init+0x0/0xb3返回 - 19 0 使用 [1.191312] initcall efivars_sysfs_init+0x0/0x210返回 - 19 0 使用 [1.191314] initcall esrt_sysfs_init+0x0/0x2d9返回 - 38 0 使用 [1.191522] initcall pmc_core_probe+0x0/0x242返回 - 19 0 使用 [1.317488] initcall boot_wait_for_devices+0x0/0x2e返回 - 19 0 使用 [1.330870] initcall powernowk8_init+0x0/0x1e0返回 - 19 0 使用 [1.330873] initcall centrino_init+0x0/0x30返回 - 19 0 使用 [1.336981] initcall efi_shutdown_init+0x0/0x44返回 - 19 0 使用 [1.336983] initcall itmt_legacy_init+0x0/0x5b返回 - 19 0 使用 [1.336989] initcall software_resume+0x0/0x2a0返回 - 2 4 使用 [1.191529] initcall pmc_atom_init+0x0/0x2b2返回 - 19 7 使用 [0.865931] initcall htcpld_core_init+0x0/0x32返回 - 19 10 使用 [9.639314] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 10 使用 [9.947048] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 12 使用 [8.432809] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 12 使用 [9.328536] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 13 使用 [7.579790] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 15 使用 [7.760494] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 15 使用 [8.032654] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 16 使用 [9.200728] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 17 使用 [7.652451] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 17 使用 [9.421129] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 18 使用 [7.932705] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 20 使用 [8.932645] initcall amd64_edac_init+0x0/0x1000 [amd64_edac_mod]返回 - 19 22 使用 [0.863365] initcall agp_amd64_mod_init+0x0/0x26返回 - 19 57 使用 [2.464629] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 57 使用 [2.568959] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 57 使用 [2.656072] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 57 使用 [2.920610] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 58 使用 [2.376457] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 58 使用 [2.420686] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 58 使用 [2.850913] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 65 使用 [2.728445] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 65 使用 [2.800692] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 66 使用 [2.116499] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 66 使用 [2.316528] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 66 使用 [2.496452] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 66 使用 [2.768653] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 72 使用 [2.888681] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 76 使用 [2.220657] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 78 使用 [2.612693] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 80 微秒 [2.688437] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 89 使用 [9.421155] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 91 使用 [2.276836] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 95 使用 [2.072491] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 97 使用 [1.955728] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 104 使用 [2.176572] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 108 使用 [10.176986] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 109 使用 [10.080899] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 109 使用 [10.216712] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 109 使用 [10.313008] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 109 使用 [10.373069] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 115 使用 [10.042520] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 120 使用 [10.261266] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 124 使用 [7.652694] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 129 使用 [7.760871] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 138 使用 [8.433073] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 138 使用 [9.201083] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 141 使用 [7.403532] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 147 使用 [7.561564] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 152 使用 [7.933158] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 155 使用 [7.489113] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 158 使用 [10.124370] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 165 使用 [8.032815] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 167 使用 [8.932793] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 179 使用 [9.946483] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 183 使用 [9.639479] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 249 使用 [9.329127] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 270 使用 [1.851350] initcall fjes_init_module+0x0/0xd0 [fjes]返回 - 19 3545 使用 [1.161088] initcall i8042_init+0x0/0x474返回 - 19 5940 使用 [1.336958] initcall edd_init+0x0/0x2d8返回 - 19
有人有更好的方法来调试待机问题吗?
附加问题:我有点犹豫是否再次完全清除 Nvidia 驱动程序,因为我有一个我不想弄乱的工作 Tensorflow 配置。清除是否意味着我必须重新安装 CUDA 驱动程序?如果是这样,这可以独立于 Tensorflow 所需的其他包来完成吗?
非常感谢!
编辑:我尝试进入待机状态sudo sh -c "sync && echo 1 > /sys/power/pm_trace && pm-suspend"
,之后使用并检查 dmesg 输出。我发现以下输出:
[ 1.320847] Magic number: 0:236:250
[ 1.323713] hash matches /build/linux-UDHJtG/linux-4.15.0/drivers/base/power/main.c:1559
[ 1.326768] pci 0000:0a:00.0: hash matches
[ 1.329815] memory memory124: hash matches
检查后lspci
我发现 0000:0a:00.0 是“VGA 兼容控制器:NVIDIA Corporation 设备 1f07 (rev a1)”,所以看起来我必须再次尝试清除 Nvidia 驱动程序。但是,我不知道是什么memory memory 124
——有人知道吗?
编辑 2:完全清除并重新安装 Nvidia 驱动程序。同样的问题正在发生。但是,我注意到了一些事情:只有当我通过 Anaconda 打开 Spyder 并开始使用我的 GPU 训练神经网络模型时才会发生这种情况。任何想法为什么?
编辑 3:回到 Nvidia 418 驱动程序。出现同样的问题,所以我切换回 435 驱动程序。这是我的输出dpkg -l | grep -i nvidia
:
ii cuda-nsight-compute-10-1 10.1.243-1 amd64 NVIDIA Nsight Compute ii cuda-nsight-systems-10-1 10.1.243-1 amd64 NVIDIA Nsight 系统 ii cuda-nvtx-10-1 10.1.243-1 amd64 NVIDIA工具扩展 ii lib nvidia -cfg1-435:amd64 435.21-0ubuntu0.18.04.2 amd64 NVIDIA二进制 OpenGL/GLX 配置库 ii lib nvidia -common-435 435.21-0ubuntu0.18.04.2 NVIDIA库使用的所有共享文件 ii lib nvidia -compute-435:amd64 435.21-0ubuntu0.18.04.2 amd64 NVIDIA libcompute 包 ii lib nvidia -compute-435:i386 435.21-0ubuntu0.18.04.2 i386 NVIDIA libcompute 包 ii lib nvidia -decode-435:amd64 435.21-0ubuntu0.18.04.2 amd64 NVIDIA视频解码运行时库 ii lib nvidia -decode-435:i386 435.21-0ubuntu0.18.04.2 i386 NVIDIA视频解码运行时库 ii lib nvidia -encode-435:amd64 435.21-0ubuntu0.18.04.2 amd64 NVENC 视频编码运行时库 ii lib nvidia -encode-435:i386 435.21-0ubuntu0.18.04.2 i386 NVENC 视频编码运行时库 ii lib nvidia -fbc1-435:amd64 435.21-0ubuntu0.18.04.2 amd64 基于NVIDIA OpenGL 的 Framebuffer Capture 运行时库 ii lib nvidia -fbc1-435:i386 435.21-0ubuntu0.18.04.2 i386 基于NVIDIA OpenGL 的 Framebuffer Capture 运行时库 ii lib nvidia -gl-435:amd64 435.21-0ubuntu0.18.04.2 amd64 NVIDIA OpenGL/GLX/EGL/GLES GLVND 库和 Vulkan ICD ii lib nvidia -gl-435:i386 435.21-0ubuntu0.18.04.2 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND 库和 Vulkan ICD ii lib nvidia -ifr1-435:amd64 435.21-0ubuntu0.18.04.2 amd64 基于NVIDIA OpenGL 的 Inband Frame Readback 运行时库 ii lib nvidia -ifr1-435:i386 435.21-0ubuntu0.18.04.2 i386 基于NVIDIA OpenGL 的 Inband Frame Readback 运行时库 ii nsight-compute-2019.4.0 2019.4.0.12-1 amd64 NVIDIA Nsight Compute ii nsight-systems-2019.3.7 2019.3.7.5-3837e03 amd64 NVIDIA Nsight Systems 是具有跟踪功能的统计采样分析器。 ii nvidia -compute-utils-435 435.21-0ubuntu0.18.04.2 amd64 NVIDIA计算实用程序 ii nvidia -dkms-435 435.21-0ubuntu0.18.04.2 amd64 NVIDIA DKMS 包 ii nvidia -driver-435 435.21-0ubuntu0.18.04.2 amd64 NVIDIA驱动元包 ii nvidia -kernel-common-435 435.21-0ubuntu0.18.04.2 amd64 与内核模块一起使用的共享文件 ii nvidia -kernel-source-435 435.21-0ubuntu0.18.04.2 amd64 NVIDIA内核源码包 ii nvidia -prime 0.8.8.2 all 启用NVIDIA Prime 的工具 ii nvidia -settings 418.87.00-0ubuntu1 amd64 配置NVIDIA显卡驱动的工具 ii nvidia -utils-435 435.21-0ubuntu0.18.04.2 amd64 NVIDIA驱动支持二进制文件 ii xserver-xorg-video- nvidia -435 435.21-0ubuntu0.18.04.2 amd64 NVIDIA二进制 Xorg 驱动程序