デスクトップ Ubuntu 20.04 LTS が不安定なのでやったこと

私の環境では 16.04 LTS の頃から不安定だった Ubuntu 開発環境 #5 が 20.04 LTS へのアップグレード以降、コーディング中にフリーズしたり、突然リブートしたり、あげくにはGUIファイルマネージャ(Nautilus)が繰り返しクラッシュするようになりました。

ファイルマネージャを起動して Home からディレクトリを移動しているとクラッシュしてウィンドウが消える。

darktable を開くと警告文が表示される。そして Visual Studio Code でデバッガを動かしていると、何の前触れもなく画面がフリーズして、キーボード入力もマウス入力も受け付けなくなります。

なにが Raising Skinny Elephants だ、一度も役に立ったことねえぞ😒

と言えるぐらい Linux と AMD Ryzen の組み合わせは、わりと頻繁に問題を起こします

CPU

GPU

加えてこのマシンに搭載されている機械学習デバイス、じゃなかったビデオカードの製造元の NVIDIA も Linux をあまり理解していないらしく、存在を忘れた頃にプロプライエタリなドライバの中にエラーの原因を入れてくることがあります

まあ Jetson Nano のおかげで以前よりは大分 Linux に注力するようになった印象ですが。


NVIDIA Jetson Nano 2GB 開発者キット




Motherboard

そして最後にボードです。ここはあまり問題を起こした記憶はありませんが、もしかしたら解決の糸口になるかもしれませんので一応は掲載しておきます。

このスペックでありながら vim の起動でフリーズするので本当に冗談ではないですね。

カーネル更新

そこで、まずカーネルに問題があるのではないかと安易に考えて、更新を行ったものの、あまり意味がなかったので 5.4.0 に戻しました。

これで解決すれば楽だったんですけどね。

KMS

つぎに見に行ったのはカーネルモード設定(Kernel Mode Setting)です。

じつはここは AMD CPU や NVIDIA GPU 搭載マシンに Linux をインストール時に一度は見に行くところです。ここの設定を変更しないと、おそらくインストールしても OS がブートしませんので。

これらは全てブート時におけるカーネルへの指示で quiet はドライバやモジュールのエラーコードなどの出力を排し、 splash はロード画面の表示を排し、nomodeset はシステムが立ち上げ前にビデオドライバを読み込むことを排します。

おそらく Ryzen & GeForce を Linux で動かす時にデフォルトになっているであろう設定です。

ここに新たに nvme_core など疑わしいところを幾つか書き加えたり、消したりしていたら、最終的にここに書いてあった CPU C-states の設定に辿り着きました。

どうも Ryzen CPU は GNU/Linux 系OSの C-statesに対応しているか怪しいらしいです。取り敢えず processor.max_cstate を書き足して C-states の最大数を1に設定しました。

その結果、フリーズの回数は劇的に低下しましたし、なぜかファイルマネージャのクラッシュ回数も 1/3 ぐらいに減少しました。しかし、まだクラッシュするので作業効率が芳しくありません。

Nautilus

そこでクラッシュしたタイミングでログを確認してみます。

すると見事に segfault がでてます。これは困ったねとバージョンを確認してみると、こっちは最初からダメでした。

これはバグレポートにリスト化されているのではないかと考えたところ、どうもありそうな感じです。しかも 2 年も放置されてまだ評価中という点が非常に判断に困ります。

気長に修正されるのを待つか、自分でデバッグするか、あるいは Nautilus を使用するのを辞めるか。

Nemo

良い機会なので私は新しいファイルマネージャを試してみることにしました。Ubuntu 派生の Linux Mint team が作成している Nemo です。個人的に Mint を使用したことがないので評価ができないのですが、むこうのパッケージベースが Ubuntu Focal なので問題ないだろう、と。

Mint は10年ぐらい前に Debian 派生になると言っていた記憶があるのですが、また Ubuntu に戻ってきたんですかね。

インストールして設定を買えた後にログインしなおすか、リブートするとファイルマネージャが Nemo に変更されます。もちろん、消去さえしていなければ Nemo をデフォルトで使用しながら Nautilus も使えます。

完全には解決していないのですが、しばらくはこれで様子を見ようかと。

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us