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=デバッグピンタ(最後の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. 実行して、プロンプトが表示されたらファイル名を入力します。これにより、Linuxカーネルバージョン3.11でコンパイルされるドライバーのバージョンを含むという./NVIDIA-Linux-x86_64-325.15.run --apply-patch nvpatch.patch名前のファイルが作成されます。NVIDIA-Linux-x86_64-325.15-custom.run
  6. Xサーバーインスタンスが実行されていないことを確認してください。そうしないとドライバーがインストールされません。
  7. ドライバーのインストールを実行し、必要に応じて32ビット互換性をインストールします。
  8. 実行しnvidia-xconfigて X 構成ファイルを作成します (このファイルがないと専用ドライバーは読み込まれません)。
  9. nouveau ドライバーをブラックリストに登録しますecho "blacklist nouveau" >> /etc/modprobe.d/blacklist-nouveau.conf。ブラックリストに登録しないと、nvidia ドライバーの読み込みに失敗します。

関連情報