Linux デスクトップKDE+Nvidiaでサスペンド後にChromeとかがおかしくなる問題
症状
今回説明するものは次の2つです。
- サスペンド後にChromeの描画が崩れる問題 ← Chrome再起動で症状は治まる
- サスペンド後にsystemsettings5 の描画が崩れる問題 ← systemsettings5は再起動しても治らない
↑systemsettings5 (崩れている画面のスクショはないですがこんなやつ)
環境 (関係しそうなもののみ)
- OS: Arch Linux (これは恐らく関係なくて、Ubuntuとかでも一緒と思われます)
- GPU: Nvidia RTX GeForce 2070 Mobile
- GPU Driver: 450系
- デスクトップ: KDE Plasma 5.19系
TL;DR
次の2つの方法を両方実行すれば治りました(再発したら記事更新します)。
- systemsettings5: Nvidia Driverを450系から440系にダウングレード
- Chrome: GUIの「設定→詳細設定→ハードウェアアクセラレータを有効化」を無効にする
調査記録
事前の準備と警告
グラフィックドライバの問題が絡むので、調査や自身の環境への適用の際に試行錯誤している中でカーネルパニックを起こしてブートできない場合があります。
作業前にはインストーラとかでchrootできる環境を整えておきましょう
systemsettings5の方
こちらは次のコマンドで起動できるので調査は容易です。
- 正常なときに
systemsettings5 &> logOk
- おかしいときに
systemsettings5 &> logNg
Cyclic dependency detected between "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml" and "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml"
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/SubCategoryPage.qml:141:9: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/SubCategoryPage.qml:131:9: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
file:///usr/lib/qt/qml/org/kde/kirigami.2/private/RefreshableScrollView.qml:143:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
file:///usr/lib/qt/qml/org/kde/kirigami.2/private/RefreshableScrollView.qml:143:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
Cyclic dependency detected between "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml" and "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml"
QQmlEngine::setContextForObject(): Object already has a QQmlContext
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/introPage.qml:109:27: QML IntroIcon (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumHeight"
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/introPage.qml:109:27: QML IntroIcon (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumHeight"
Cyclic dependency detected between "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml" and "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml"
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/SubCategoryPage.qml:141:9: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/SubCategoryPage.qml:131:9: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
file:///usr/lib/qt/qml/org/kde/kirigami.2/private/RefreshableScrollView.qml:143:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
file:///usr/lib/qt/qml/org/kde/kirigami.2/private/RefreshableScrollView.qml:143:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
Cyclic dependency detected between "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml" and "file:///usr/lib/qt/qml/org/kde/kirigami.2/styles/org.kde.desktop.plasma/Units.qml"
QQmlEngine::setContextForObject(): Object already has a QQmlContext
+ QQuickWidget: Failed to make context current
+ QQuickWidget::resizeEvent() no OpenGL context
+ QQuickWidget: Failed to make context current
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/introPage.qml:109:27: QML IntroIcon (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumHeight"
file:///usr/share/kpackage/genericqml/org.kde.systemsettings.sidebar/contents/ui/introPage.qml:109:27: QML IntroIcon (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumHeight"
+ QQuickWidget: Attempted to render scene with no context
+ QQuickWidget::invalidateRenderControl could not make context current
エラーメッセージが特定できればググるだけですね。
https://bbs.archlinux.org/viewtopic.php?id=258149
こういうフォーラムがヒットして「ダウングレードしたら行けたよ!」
とのことです。関連スレッドを見ると、Nvidia450系とKDE Plasma 5.19系の問題のようですね。
ちな、nvidiaのドライバはカーネルに深く関わっているのでnvidia-dkms的な方をインストールする必要がありそうです。
LinuxにおけるダウングレードはそれぞれのOSで作法があると思うので、手元の環境で行った記録を書いておきます archのref。
yay -S nvidia-dkms downgrader # nvidia-dkms と nvidia-utils がインストールされる
yay -R nvidia-dkms
downgrader nvidia-utils # 選択肢でバージョン`440.100-1`を選ぶ
yay -S nvidia-440xx-dkms
sudo reboot
chromeの方
こちらは明確なエラーメッセージを探すことができなかったのでちょっと困りました。
最も確実な解決法は GUIの「設定→詳細設定→ハードウェアアクセラレータを有効化」を無効にすることです。
これを行うとChromeはGPU資源を使わなくなるので問題は解決しますが、描画が遅くなり、CPUリソースをより消費します。
他にも
* chrome://flags
で
* #ignore-gpu-blacklist
または#ignore-gpu-blocklist
を有効化
* #enable-vulkan
を有効化
2020-09-19 追記
Chromeの描画が崩れる問題は別の問題が発生したため解決していません。
enable-vulkan
を有効化すると時折kwinを巻き込んでクラッシュします。
組合せ
systemsettings5 | chrome | |
---|---|---|
nvidia-450 | NG | restartで治る |
nvidia-vulkan-450 | NG | crashが続く |
nvidia-440xx-dkms | OK | restartで治る |
nvidia-vulkan-dkms-450 | NG | crashが続く |
Chomeは以下どちらの場合でも時折kwinを巻き込んでクラッシュします(3回に1度程度ログインセッションも巻き込んでクラッシュ)。
- ドライバにvulkan系のものを使う
- enable-vulkanを有効化する
ログインセッションがクラッシュした場合でも該当のセッション内で起動していたプロセスは生きていました(!)。他のttyからも確認できず、ps
で生存が確認できてかつ正常に動作することが確認できる状態でした。これらを消すのはkill
するしかないのでは。。
# journalctl -b -p3
Sep 19 10:19:52 archlinux systemd-coredump[13418]: Process 12306 (chrome) of user 1000 dumped core.
Stack trace of thread 12306:
#0 0x00007f95b5915c7b n/a (libnvidia-glcore.so.440.100 + 0xee4c7b)
#1 0x00007f95b59184bd n/a (libnvidia-glcore.so.440.100 + 0xee74bd)
#2 0x00007f95b5918bfe n/a (libnvidia-glcore.so.440.100 + 0xee7bfe)
#3 0x00007f95b58b56da n/a (libnvidia-glcore.so.440.100 + 0xe846da)
#4 0x00007f95b586ac9e n/a (libnvidia-glcore.so.440.100 + 0xe39c9e)
#5 0x00007f95b5873fdf n/a (libnvidia-glcore.so.440.100 + 0xe42fdf)
#6 0x00007f95b54d4178 n/a (libnvidia-glcore.so.440.100 + 0xaa3178)
#7 0x00007f95b54d9068 n/a (libnvidia-glcore.so.440.100 + 0xaa8068)
#8 0x00007f95b54db97c n/a (libnvidia-glcore.so.440.100 + 0xaaa97c)
#9 0x00007f95b727cf81 n/a (libGLESv2.so + 0x410f81)
#10 0x00007f95b726f5a9 n/a (libGLESv2.so + 0x4035a9)
#11 0x00007f95b713f682 n/a (libGLESv2.so + 0x2d3682)
#12 0x00007f95b70af266 _ZN2gl22CheckFramebufferStatusEj (libGLESv2.so + 0x243266)
#13 0x00005567c65a8dad n/a (chrome + 0x633bdad)
(以降略)
Author And Source
この問題について(Linux デスクトップKDE+Nvidiaでサスペンド後にChromeとかがおかしくなる問題), 我々は、より多くの情報をここで見つけました https://qiita.com/yuk1_37/items/1c7913bf84ca90461bbb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .