Arch:Mono 在 DllImport 期间随机挂起

Arch:Mono 在 DllImport 期间随机挂起

跑步时任何单声道应用程序,应用程序在启动时挂起,然后必须终止。Pinta 给出一个空白窗口,而 Monodevelop 什么也不做。但是,没有打印任何错误消息,这没有什么可说明的。我已经安装了所有依赖项,常规 Gtk+ 应用程序运行良好(firefox、leafpad 等)。

我正在使用 Mono 3.2.3、Arch Linux 和 Openbox

我已经重新安装了 Mono,然后重新安装了 Arch 本身,但没有任何效果。

mono——版本:

Mono JIT compiler version 3.2.3 (tarball Sun Sep 22 20:38:43 UTC 2013)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    LLVM:          supported, not enabled.
    GC:            sgen

MONO_DEBUG_LEVEL=debug pinta(最后 4 行)

Mono: DllImport searching in: 'libcairo.so.2' ('libcairo.so.2').
Mono: Searching for 'cairo_set_source_surface'.
Mono: Probing 'cairo_set_source_surface'.
Mono: Found as 'cairo_set_source_surface'.

MONO_DEBUG_LEVEL=debug monodevelop(最后 4 行)

Mono: DllImport searching in: 'libMonoPosixHelper.so' ('libMonoPosixHelper.so').
Mono: Searching for 'Mono_Posix_Stdlib_stdin'.
Mono: Probing 'Mono_Posix_Stdlib_stdin'.
Mono: Found as 'Mono_Posix

使用 monodevelop 时,它会在打印一行的中间停止。

答案1

故障是由 nvidia 专有驱动程序引起的(如 Debian 错误 #728743 所示)

降级至 325.15 可解决此问题

如何降级

  1. 卸载所有 nvidia 软件包并删除 /etc/X11/xorg.conf
  2. 下载http://us.download.nvidia.com/XFree86/Linux-x86_64/325.15/NVIDIA-Linux-x86_64-325.15.run
  3. 节省此补丁文件作为 nvpatch.patch
  4. 使NVIDIA-Linux-x86_64-325.15.run可执行文件
  5. 运行./NVIDIA-Linux-x86_64-325.15.run --apply-patch nvpatch.patch并在提示时填写文件名。这将创建一个名为的文件NVIDIA-Linux-x86_64-325.15-custom.run,其中包含在 Linux 内核版本 3.11 上编译的驱动程序版本
  6. 确保没有正在运行的 X 服务器实例,否则驱动程序将无法安装
  7. 运行驱动程序安装,如有必要,安装 32 位兼容性
  8. 运行nvidia-xconfig以创建您的 X 配置文件(如果没有它,专有驱动程序就无法加载)。
  9. 运行echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf将 nouveau 驱动程序列入黑名单。如果不列入黑名单,nvidia 驱动程序将无法加载

相关内容