Ubuntu 16.04をSuspendから起動すると、すべてのウィンドウ、コンテキストメニューなどに次のグラフィカルな不具合が表示されます。
これは現在、独自のドライバーを実行している次のNVIDIAカードに影響を与えることが知られています。
- NVIDIA GeForce 610M、ドライバーバージョン375.39、340.102
- NVIDIA GT 630M、ドライバーバージョン375.39
- NVIDIA GTX 650、ドライバーバージョン375.39
- NVIDIA GT 740M、ドライバーバージョン378.13
- NVIDIA GTX 745、不明なドライバーバージョン
- NVIDIA GTX 850M、ドライバーバージョン375.39、378.13
- NVIDIA GT 940M、ドライバーバージョン375.39
- NVIDIA GTX 950M、不明なドライバーバージョン
- NVIDIA GTX 960M、ドライバーバージョン378.13
- NVIDIA GTX 970、ドライバーバージョン375.39
- NVIDIA GTX 970M、ドライバーバージョン375.39
- NVIDIA GTX 980 TI、不明なドライバーバージョン
- NVIDIA GTX 1060、ドライバーバージョン375.26、375.39、378.09
- NVIDIA GTX 1070、ドライバーバージョン378.09
上記のリストは、AU、 this thread、および this threadに関する他のユーザーからのレポートに基づいています。
NB:これは決して排他的なリストではありません。ほぼすべてのNvidiaカードに影響します。
さらに、この問題は、ソフトウェアの更新と最新のNVIDIAドライバーのインストールのみが変更されたクリーンインストールでも再現されています。
何が起こっており、どのように解決できますか?
Nvidiaはこの問題を再現できましたが、 また、次のドライバーリリースに含まれる修正プログラムに取り組んでいます。 (修正は現在リリースされています。以下のセクションを参照してください)。
詳細については、 Nvidia開発者フォーラムのこのスレッド を参照してください。このバグは Launchpadで報告 でもありました。
@ Stefan に感謝します この情報を明らかにする !
修正は、ベータドライバ381.09から提供されています changelog :
このドライバーは現在、どのリポジトリにもありません
上記の変更が行われるまで、新しいドライバーを手動でインストールする必要がありますUpdate:381.09ドライバーは現在、非公式リポジトリにあります。パッチを適用したドライバーは、非公式のPPAからインストールするか、手動でインストールできます。
Nvidiaは、2017年4月5日にリリースドライバーの更新をプッシュしました。これには、特に探しているバグ修正が含まれています。更新されたリリースドライバーにはバージョン375.66
が付与されています
この375.66
は公式リポジトリにあるため、パッチを適用したドライバーのロードは非常に簡単です。
現在、バグのある375.39
バージョンを使用している場合、必要なのは単純です:
Sudo apt-get update
Sudo apt-get upgrade
レガシードライバを使用している場合は、次を実行する必要があります。
Sudo apt-get update
その後、追加ドライバーで新しいドライバーバージョンに切り替えます。
現在手動でインストールしたドライバーを使用している場合は、ドライバーをアンインストールしてから再起動し、上記の手順を実行する必要があります。
再起動後、Nvidiaドライバーが375.66
に更新されたことがわかります。
グラフィックカードが古く、ドライバのv340でサポートされている場合、非公式のPPAから新しいバージョンをインストールする必要はありません。 ただし、GTX 9シリーズや10シリーズなどの新しいカードをお持ちの場合は、新しいドライバーが必要です。
便宜上、ドライバーのバージョン340でサポートされているカードの完全なリストは次のとおりです。
GeForce 800M Series (Notebooks):
GeForce GTX 880M, GeForce GTX 870M, GeForce GTX 860M, GeForce GTX 850M, GeForce 845M, GeForce 840M, GeForce 830M, GeForce 825M, GeForce 820M, GeForce 810M
GeForce 700 Series:
GeForce GTX TITAN Z, GeForce GTX TITAN Black, GeForce GTX TITAN, GeForce GTX 780 Ti, GeForce GTX 780, GeForce GTX 770, GeForce GTX 760, GeForce GTX 760 Ti (OEM), GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 745, GeForce GT 740, GeForce GT 730, GeForce GT 720, GeForce GT 710, GeForce GT 705
GeForce 700M Series (Notebooks):
GeForce GTX 780M, GeForce GTX 770M, GeForce GTX 765M, GeForce GTX 760M, GeForce GT 755M, GeForce GT 750M, GeForce GT 745M, GeForce GT 740M, GeForce GT 735M, GeForce GT 730M, GeForce GT 720M, GeForce GT 710M, GeForce 720M, GeForce 710M, GeForce 705M
GeForce 600 Series:
GeForce GTX 690, GeForce GTX 680, GeForce GTX 670, GeForce GTX 660 Ti, GeForce GTX 660, GeForce GTX 650 Ti BOOST, GeForce GTX 650 Ti, GeForce GTX 650, GeForce GTX 645, GeForce GT 645, GeForce GT 640, GeForce GT 635, GeForce GT 630, GeForce GT 620, GeForce GT 610, GeForce 605
GeForce 600M Series (Notebooks):
GeForce GTX 680MX, GeForce GTX 680M, GeForce GTX 675MX, GeForce GTX 675M, GeForce GTX 670MX, GeForce GTX 670M, GeForce GTX 660M, GeForce GT 650M, GeForce GT 645M, GeForce GT 640M, GeForce GT 640M LE, GeForce GT 635M, GeForce GT 630M, GeForce GT 625M, GeForce GT 620M, GeForce 610M
GeForce 500 Series:
GeForce GTX 590, GeForce GTX 580, GeForce GTX 570, GeForce GTX 560 Ti, GeForce GTX 560 SE, GeForce GTX 560, GeForce GTX 555, GeForce GTX 550 Ti, GeForce GT 545, GeForce GT 530, GeForce GT 520, GeForce 510
GeForce 500M Series (Notebooks):
GeForce GTX 580M, GeForce GTX 570M, GeForce GTX 560M, GeForce GT 555M, GeForce GT 550M, GeForce GT 540M, GeForce GT 525M, GeForce GT 520M, GeForce GT 520MX
GeForce 400 Series:
GeForce GTX 480, GeForce GTX 470, GeForce GTX 465, GeForce GTX 460 SE v2, GeForce GTX 460 SE, GeForce GTX 460, GeForce GTS 450, GeForce GT 440, GeForce GT 430, GeForce GT 420, GeForce 405
GeForce 400M Series (Notebooks):
GeForce GTX 485M, GeForce GTX 480M, GeForce GTX 470M, GeForce GTX 460M, GeForce GT 445M, GeForce GT 435M, GeForce GT 425M, GeForce GT 420M, GeForce GT 415M, GeForce 410M, GeForce 405M
GeForce 300 Series:
GeForce GT 340, GeForce GT 330, GeForce GT 320, GeForce 315, GeForce 310
GeForce 300M Series (Notebooks):
GeForce GTS 360M, GeForce GTS 350M, GeForce GT 335M, GeForce GT 330M, GeForce GT 325M, GeForce GT 320M, GeForce 320M, GeForce 315M, GeForce 310M, GeForce 305M
GeForce 200 Series:
GeForce GTX 295, GeForce GTX 285, GeForce GTX 280, GeForce GTX 275, GeForce GTX 260, GeForce GTS 250, GeForce GTS 240, GeForce GT 230, GeForce GT 240, GeForce GT 220, GeForce G210, GeForce 210, GeForce 205
GeForce 200M Series (Notebooks):
GeForce GTX 285M, GeForce GTX 280M, GeForce GTX 260M, GeForce GTS 260M, GeForce GTS 250M, GeForce GT 240M, GeForce GT 230M, GeForce GT 220M, GeForce G210M, GeForce G205M
GeForce 100 Series:
GeForce GT 140, GeForce GT 130, GeForce GT 120, GeForce G100
GeForce 100M Series (Notebooks):
GeForce GTS 160M, GeForce GTS 150M, GeForce GT 130M, GeForce GT 120M, GeForce G 110M, GeForce G 105M, GeForce G 103M, GeForce G 102M
GeForce 9 Series:
GeForce 9800 GX2, GeForce 9800 GTX/GTX+, GeForce 9800 GT, GeForce 9600 GT, GeForce 9600 GSO, GeForce 9600 GSO 512, GeForce 9600 GS, GeForce 9500 GT, GeForce 9500 GS, GeForce 9400 GT, GeForce 9400, GeForce 9300 GS, GeForce 9300 GE, GeForce 9300 SE, GeForce 9300, GeForce 9200, GeForce 9100
GeForce 9M Series (Notebooks):
GeForce 9800M GTX, GeForce 9800M GTS, GeForce 9800M GT, GeForce 9800M GS, GeForce 9700M GTS, GeForce 9700M GT, GeForce 9650M GT, GeForce 9650M GS, GeForce 9600M GT, GeForce 9600M GS, GeForce 9500M GS, GeForce 9500M G, GeForce 9400M G, GeForce 9400M, GeForce 9300M GS, GeForce 9300M G, GeForce 9200M GS, GeForce 9100M G
GeForce 8 Series:
GeForce 8800 Ultra, GeForce 8800 GTX, GeForce 8800 GTS 512, GeForce 8800 GTS, GeForce 8800 GT, GeForce 8800 GS, GeForce 8600 GTS, GeForce 8600 GT, GeForce 8600 GS, GeForce 8500 GT, GeForce 8400 GS, GeForce 8400 SE, GeForce 8400, GeForce 8300 GS, GeForce 8300, GeForce 8200, GeForce 8100 /nForce 720a
GeForce 8M Series (Notebooks):
GeForce 8800M GTX, GeForce 8800M GTS, GeForce 8700M GT, GeForce 8600M GT, GeForce 8600M GS, GeForce 8400M GT, GeForce 8400M GS, GeForce 8400M G, GeForce 8200M G, GeForce 8200M
Quadro Series:
Quadro K6000, Quadro K5200, Quadro K5000, Quadro K4000, Quadro K4200, Quadro K2200, Quadro K2000, Quadro K2000D, Quadro K620, Quadro K600, Quadro K420, Quadro 6000, Quadro 5000, Quadro 4000, Quadro 2000, Quadro 2000D, Quadro 600, Quadro 410, Quadro 400
Quadro Series (Notebooks):
Quadro K5100M, Quadro K5000M, Quadro K4100M, Quadro K4000M, Quadro K3100M, Quadro K2100M, Quadro K3000M, Quadro K2000M, Quadro K1100M, Quadro K1000M, Quadro K610M, Quadro K510M, Quadro K500M, Quadro 5010M, Quadro 5000M, Quadro 4000M, Quadro 3000M, Quadro 2000M, Quadro 1000M
Quadro FX Series:
Quadro CX, Quadro FX 370, Quadro FX 370 Low Profile, Quadro FX 380, Quadro FX 380 Low Profile, Quadro FX 570, Quadro FX 580, Quadro FX 1700, Quadro FX 1800, Quadro FX 3700, Quadro FX 3800, Quadro FX 4600, Quadro FX 4700 X2, Quadro FX 4800, Quadro FX 5600, Quadro FX 5800
Quadro FX Series (Notebooks):
Quadro FX 3800M, Quadro FX 3700M, Quadro FX 3600M, Quadro FX 2800M, Quadro FX 2700M, Quadro FX 1800M, Quadro FX 1700M, Quadro FX 1600M, Quadro FX 880M, Quadro FX 770M, Quadro FX 570M, Quadro FX 380M, Quadro FX 370M, Quadro FX 360M
Quadro NVS Series:
Quadro NVS 290, Quadro NVS 295, NVS 510, NVS 315, NVS 310, NVS 300, Quadro NVS 420, Quadro NVS 450
Quadro NVS Series (Notebooks):
NVS 5400M, NVS 5200M, NVS 5100M, NVS 4200M, NVS 3100M, NVS 2100M, Quadro NVS 320M, Quadro NVS 160M, Quadro NVS 150M, Quadro NVS 140M, Quadro NVS 135M, Quadro NVS 130M
Quadro Plex Series:
Quadro Plex Model II, Quadro Plex D Series, Quadro Plex Model IV, Quadro Plex 7000
Quadro Sync Series:
Quadro Sync, Quadro G-Sync II
Quadro SDI:
Quadro SDI
GRID Series:
GRID K2, GRID K520
NVS Series:
Quadro NVS 290, Quadro NVS 295, NVS 510, NVS 315, NVS 310, NVS 300, Quadro NVS 420, Quadro NVS 450
NVS Series (Notebooks):
NVS 5400M, NVS 5200M, NVS 5100M, NVS 4200M, NVS 3100M, NVS 2100M, Quadro NVS 320M, Quadro NVS 160M, Quadro NVS 150M, Quadro NVS 140M, Quadro NVS 135M, Quadro NVS 130M
ION (Desktops):
ION
ION (Notebooks):
ION
ION LE (Desktops):
ION LE
ION LE (Notebooks):
ION LE
そのため、GPUが340でサポートされている場合、追加ドライバーでバージョン340に切り替えることができます。 (バージョン340にはこのバグはありません。)
ドライバのバージョンを切り替えた後、必ず再起動してください。
で端末を起動する CTRL+ALT+T
次のコマンドを実行します。
Sudo -i
add-apt-repository ppa:graphics-drivers/ppa
apt-get update
apt-get install nvidia-381
コンピューターを再起動すれば、うまくいくはずです!コンピューターの再起動後、Nvidia X Serverの設定を開きます。運が良ければ、新しいドライバーバージョンが表示されます。
*.run
ファイルからNvidiaドライバーをインストールすることは、一般的にはあまり良い考えではありません。それは物事を壊す傾向があります。したがって、上記のようにPPAからインストールすることをお勧めします。それでも、冒険をしていて手動でインストールしたい場合、これがUbuntu 16.04とGTX650でうまくいったプロセスです。
パッチを適用したドライバーをインストールする前に、現在の専用ドライバーをアンインストールし、Nouveauドライバーに切り替える必要があります。
切り替え後に必ず再起動してください。現在の専有ドライバーのアンインストールに失敗すると、新しいドライバーは古いドライバーと競合し、問題が発生します!
パッチを適用したドライバーファイルをNvidiaからダウンロードします。 直接リンクです
ファイルをダウンロードフォルダーに保存します
GUIセッションからログアウトします(続行する前にログイン画面で終了する必要があります)
tty1
を起動します CTRL+ALT+F1
通常の資格情報でログインします
次のコマンドを実行します。
Sudo service lightdm stop
cd Downloads
chmod +x NVIDIA-Linux-x86_64-381.09.run
Sudo ./NVIDIA-Linux-x86_64-381.09.run
ライセンス契約に同意します。
ディストリビューションが提供するプレインストーラースクリプトが失敗したと文句を言います。とにかく続けます:
選択する Yes カーネルモジュールをdkmsに登録するかどうかを尋ねられたら:
選択する Yes 32ビット互換性ライブラリをインストールするかどうか尋ねられたら:
カーネルモジュールのビルドにはしばらく時間がかかるため、しばらくお待ちください!
選択する Yes nvidia-xconfig
を実行するかどうか尋ねられたら:
選択する Ok インストーラーを終了する
もうすぐ!次のコマンドを実行してください:
rm ~/.Xauthority
rm ~/.config/dconf/unity
Sudo shutdown -r now
コンピューターの再起動後、Nvidia X Serverの設定を開きます。運が良ければ、新しいドライバーバージョンが表示されます。
NB:これは、Nvidiaがパッチを適用したドライバーをリリースするまでの一時的な回避策でした。下にスクロールして、実際の修正を含む他の回答を見つけます。-Android Dev
GPUを使用して同じ問題があります:Ubuntu 16.04.2 LTSでnvidia 375.39ドライバーを搭載したNvidia GTX 970
Nvidiaドライバーの最近のアップグレード以来、これを観察しています。したがって、これはドライバーのバグだと思われます。
答えを見つけました nvidiaボード上 。これは、ドライバーの確認済みのバグであり、nvidiaはすでにそれに取り組んでいるようです。それまでの間、compizを再起動できます
compiz --replace
アーティファクトを取り除くために。
バグはUbuntuバグ追跡システムにあります 再開後にcompizを自動的に再起動する回避策スクリプトを含みます。
Nvidiaはnvidia-375
ドライバーをバージョン375.66に更新しました- 現在サポートされているすべてのリリースの標準Ubuntuリポジトリから利用可能 。
つまり、これからは、通常のシステム更新をいつものように行うことを除いて、特別なアクションをとる必要はないはずです。必要ない場合は、graphics-drivers
PPAのドライバーパッケージは必要ありません。
このバグに関する16.04のメインリポジトリからのパッケージの変更ログの抜粋を次に示します。
$ apt changelog nvidia-375=375.66-0ubuntu0.16.04.1
[...]
- Fixed a regression that caused corruption in certain
applications, such as window border shadows in Unity, after
resuming from suspend.
[...]
Nvidiaはついにこの問題を修正し、新しいバージョンのドライバーをリリースしました:nvidia-381
この回答で説明されているソリューションも更新されており、バグの前に最新バージョンにダウングレードするのではなく、この修正バージョンにアップグレードすることを提案しています。ただし、手順は同じですが、パッケージ名を変更するだけです。
Ubuntu用の独自のNvidiaグラフィックドライバーパッケージの一部(つまりnvidia-375
およびnvidia-378
)はバグが多く、質問のスクリーンショットに表示されるウィンドウの境界線の周りに白いアーティファクトを生成します。これは、サスペンドして再開するたびに再現可能に発生します。
数日前まで、Xenialのリポジトリ内のnvidia-367
パッケージは正常かつ確実に機能していましたが、今ではそれらを更新し、代わりにバグのあるnvidia-375
バージョンを自動的にインストールする移行パッケージに変換しました。
問題を引き起こしているNvidiaグラフィックカードを実際に使用していることを確認してください。偶然に同様の動作をする別のブランドのものではありません。 Nvidia以外のグラフィックカードにNvidiaドライバーをインストールしても効果はありません。
これを確認するには、次のコマンドの出力を確認します。
lspci -k | grep -iEA3 '3d|vga'
今の私の解決策は、nvidia-375
またはnvidia-378
からnvidia-370
にダウングレードすることです。
Nvidiaは、このバグを修正した新しいアップグレードされたドライバーバージョンnvidia-381
をリリースしたため、ダウングレードする代わりにインストールすることができます。
このパッケージは標準リポジトリからは入手できませんが、PPAから簡単に入手して、以下のコマンドを実行することで現在のドライバーを置き換えることができます。
Sudo add-apt-repository ppa:graphics-drivers/ppa
Sudo apt update
Sudo apt purge nvidia*
Sudo apt install nvidia-370
Sudo apt install nvidia-381
その手順を完了したら、コンピューターを再起動して、まだ問題があるかどうかをテストします。私にとっては、彼らはいなくなりました。幸運を。
この問題は375および378ドライバーに存在します...
Compizプロセスを強制終了するだけで境界の問題が解決することを考えると、システムが起動するたびにUbuntu 16.04システムで動作するソリューションをテストしました。
ディレクトリ/lib/systemd/system-sleep
にfixbadborders
というスクリプトを作成しました。次のものが含まれていました。
#!/bin/sh
## This file (or a link to it) must be in the folder /lib/systemd/system-sleep/
## Purpose: Kill compiz after system wakes up from sleep.
## This will fix bad window borders caused by Nvidia driver 375.39.
kill $(ps -C compiz -o pid=)
スクリプトに次の実行許可を与えました。
Sudo chmod +x fixbadborders
このスクリプトを削除するには:
Sudo rm /lib/systemd/system-sleep/fixbadborders
NVIDIAは、この回帰を修正した更新されたドライバーバージョンをリリースしました。 381.09を過ぎたドライバーは、NVIDIAが再び混乱するまで、この問題は発生しなくなります。
ドライバーがメインリポジトリに到達するまで、非公式のNVIDIAドライバーPPAからダウンロードできます。これにより、インストーラー(広く悪い考えと見なされている)またはNouveauをいじる必要がなくなります。同様に、NVIDIAインストーラーがドライバーを残す危険なハーフ構成の代わりに、apt
を介してドライバーのインストール/アンインストールを許可します。さらに、これにより、ログインループまたはエラーが発生しますnot変なシステムがない限り。インストールするには、次を実行します。
Sudo add-apt-repository ppa:graphics-drivers/ppa
Sudo apt update
Sudo apt install nvidia-381
古いドライバーは自動的にアンインストールされ、新しいドライバーがロードされます。コンピューターを再起動して(NVIDIAドライバーをカーネルに焼き付ける必要があるため)、すべてが正常に機能するはずです。以下のコマンドを実行して、ドライバーが正しくインストールされたことを確認できます。
nvidia-settings --version
この投稿に記載されているパッチは必ず元に戻してくださいbefore最新のドライバーに更新します。たとえば、以下に説明するようにパッチを適用したバージョンのUnityをインストールした場合、このコマンドを実行して通常のバージョンに戻します。
Sudo ppa-purge ppa:kaihengfeng/lp1292830
ppa-purge
をインストールする必要があることに注意してください。
Sudo apt install ppa-purge
更新がオプションではない場合(カード、会社のポリシーなどが古すぎる):
Kai-Heng Feng Launchpadは、Unityのバージョンを自分のPPAにアップロードするのに十分なほど親切です( ppa:kaihengfeng/lp1292830
)。この問題を解決するには、次のコマンドを実行してPPAを追加します。
Sudo add-apt-repository ppa:kaihengfeng/lp1292830
Sudo apt update
Sudo apt full-upgrade
完了したら、システムを再起動するか、ログアウトしてから再度ログインしてX11を再起動します。
または、次のいずれかを実行することもできます。
この問題は、通常のリポジトリにあるNvidia 375.66ドライバーでも修正されており、通常のアップデートでインストールする必要があります。
Victor Aによって提案されたソリューション は問題なく動作します。ただし、/lib/systemd/system-sleep/
に配置されたスクリプトは、コンピューターがスリープ状態になったときと起動したときに実行されることに注意してください。後者だけが必要な場合、提案されたスクリプトを使用すると、スリープ状態に入るプロセスが不必要に遅くなります。以下をお勧めします:
#!/bin/sh
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
case "$1" in
post) kill $(ps -C compiz -o pid=) ;;
esac
fi
ただし、警告。このスクリプト(およびVictor Aによって提案されたスクリプト)は、ウェイクアップ時にパスワードプロンプト画面を無効にし、セキュリティリスクを構成します。
これは完全な解決策ではありませんが、compiz --replace
を使用するか、compizを再起動してワークスペースを台無しにするよりも良い場合があります。
サスペンドから再開するとき、これを行います:
これにより、GPUで破損したテクスチャのように見えるものがリロードされます。再開時にテーマテクスチャを自動的にリロードする方法がある場合、それは永続的な解決策かもしれません。
この問題を解決する別の方法があります。 (多数のプロセスを実行している場合はお勧めしません。)
コンピューターを起動した後、Xorgを強制終了します。
XorgのPIDを見つけるには:
top
Xorgのpidを見つけたら、Ctrl + Cを押して「トップ」プロセスを停止します。
ルートに移動し、次の方法でプロセスを強制終了します。
Sudo su
kill [pid]
その後、アカウントにログインします。
警告:これにより、すべてのアプリケーションが閉じられます。 Firefoxはこれについて問題を起こしません。すべてのタブを復元するだけですが、他のアプリを保証することはできませんので、このプロセスを行う前にそれらを保存してください。
ドライバーを最新のバグ修正に変更しようとしましたが、テンソルフローでディープラーニングを実行する能力を台無しにしていたため、元のバグのあるソフトウェアに戻りました。
これは、Ubuntuがスリープ状態から復帰するたびに発生します。ターミナルを開くだけです CTRL+ALT+T そしてタイプ
killall compiz
ディスプレイがリセットされ、グリッチがなくなります。数秒しかかかりません。 ~/.bashrc
のようなalias kc='killall compiz'
のようにエイリアスすることもできるので、コマンドを実行するときにkc
と入力するだけで済みます。