我最近将我的 Nvidia 驱动程序从 418 升级到了 435(我有一台 RTX 2070)。说来话长,但我遇到了一些驱动程序冲突问题,所以我不得不切换到 nouveau 驱动程序,然后再切换回来。根据 dpkg 的输出,我很确定这已经清除了 418 个驱动程序。
然而,我遇到了一个奇怪的问题:每当我尝试将系统置于待机状态时,系统就会挂起。我会看到一个完全没有响应的空白屏幕,我必须手动重新启动,这很令人沮丧,因为我会丢失所有工作。奇怪的是,这种情况并不是每次待机时都会发生,我不知道为什么。
我曾尝试在启动时将“initcall_debug”添加到 GRUB 命令行,但我不确定这是否适合我的情况。无论如何,以下是没有添加的行的输出returned 0
:
$ dmesg -s 128000 | grep “initcall” | sed “s/\(.*\)after\(.*\)/\2 \1/g” | sort -n | grep ‘returned -’ 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回 -三十八 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 Device 1f07 (rev a1)”,所以看起来我必须再次尝试清除 Nvidia 驱动程序。但是,我不知道这memory memory 124
是什么 - 有人知道吗?
编辑 2:彻底清除并重新安装 Nvidia 驱动程序。同样的问题发生了。但是,我注意到了一件事:只有当我通过 Anaconda 打开 Spyder 并开始使用我的 GPU 训练神经网络模型时,才会发生这种情况。知道为什么吗?
编辑 3:回到 Nvidia 418 驱动程序。出现同样的问题,所以我切换回 435 驱动程序。这是我的输出dpkg -l | grep -i nvidia
:
ii cuda-nsight-计算-10-1 10.1.243-1 amd64 英伟达Nsight 计算 ii cuda-nsight-系统-10-1 10.1.243-1 amd64 英伟达Nsight 系统 ii cuda-nvtx-10-1 10.1.243-1 amd64 英伟达工具扩展 ii lib英伟达-cfg1-435:amd64 435.21-0ubuntu0.18.04.2 amd64 英伟达二进制 OpenGL/GLX 配置库 ii lib英伟达-common-435 435.21-0ubuntu0.18.04.2 所有使用的共享文件英伟达库 ii lib英伟达-计算-435:amd64 435.21-0ubuntu0.18.04.2 amd64 英伟达libcompute 包 ii lib英伟达-计算-435:i386 435.21-0ubuntu0.18.04.2 i386 英伟达libcompute 包 ii lib英伟达-decode-435:amd64 435.21-0ubuntu0.18.04.2 amd64 英伟达视频解码运行库 ii lib英伟达-解码-435:i386 435.21-0ubuntu0.18.04.2 i386 英伟达视频解码运行库 ii lib英伟达-encode-435:amd64 435.21-0ubuntu0.18.04.2 amd64 NVENC 视频编码运行库 ii lib英伟达-encode-435:i386 435.21-0ubuntu0.18.04.2 i386 NVENC 视频编码运行库 ii lib英伟达-fbc1-435:amd64 435.21-0ubuntu0.18.04.2 amd64 英伟达基于 OpenGL 的帧缓冲区捕获运行库 ii lib英伟达-fbc1-435:i386 435.21-0ubuntu0.18.04.2 i386 英伟达基于 OpenGL 的帧缓冲区捕获运行库 ii lib英伟达-gl-435:amd64 435.21-0ubuntu0.18.04.2 amd64 英伟达OpenGL/GLX/EGL/GLES GLVND 库和 Vulkan ICD ii lib英伟达-gl-435:i386 435.21-0ubuntu0.18.04.2 i386 英伟达OpenGL/GLX/EGL/GLES GLVND 库和 Vulkan ICD ii lib英伟达-ifr1-435:amd64 435.21-0ubuntu0.18.04.2 amd64 英伟达基于 OpenGL 的带内帧读回运行库 ii lib英伟达-ifr1-435:i386 435.21-0ubuntu0.18.04.2 i386 英伟达基于 OpenGL 的带内帧读回运行库 ii nsight-计算-2019.4.0 2019.4.0.12-1 amd64 英伟达Nsight 计算 ii nsight-systems-2019.3.7 2019.3.7.5-3837e03 amd64 英伟达Nsight Systems 是一个具有跟踪功能的统计抽样分析器。 二 英伟达-计算-实用程序-435 435.21-0ubuntu0.18.04.2 amd64 英伟达计算实用程序 二 英伟达-dkms-435 435.21-0ubuntu0.18.04.2 amd64 英伟达DKMS 包 二 英伟达-驱动程序-435 435.21-0ubuntu0.18.04.2 amd64 英伟达驱动程序元包 二 英伟达-kernel-common-435 435.21-0ubuntu0.18.04.2 amd64 与内核模块一起使用的共享文件 二 英伟达-内核源-435 435.21-0ubuntu0.18.04.2 amd64 英伟达内核源码包 二 英伟达-prime 0.8.8.2 所有工具启用英伟达的 Prime 二 英伟达-settings 418.87.00-0ubuntu1 amd64 配置工具英伟达图形驱动程序 二 英伟达-utils-435 435.21-0ubuntu0.18.04.2 amd64 英伟达驱动程序支持二进制文件 ii xserver-xorg-video-英伟达-435 435.21-0ubuntu0.18.04.2 amd64 英伟达二进制 Xorg 驱动程序
答案1
找到了一个解决方法 - 我必须将内存增长设置为 TRUE,详情请见https://www.tensorflow.org/guide/gpu#allowing_gpu_memory_growth。我觉得有点烦人,但很有必要。感谢@ubfan1 的帮助!
如果有人知道如何彻底解决这个问题,我将不胜感激。