スキップしてメイン コンテンツに移動

Thinkpad x13 gen3 amd を Linux で使っているとフリーズする

2022年からずっとArch Linux で使用してきたが、この4月ぐらいから急にフリーズするようになった。

ウェブブラウザを使っているときにフリーズしたり、ターミナル呼び出してしばらくしてからフリーズしたりと、全く原因がつかめん。

フリーズするとキーボードの入力を受け付けず、capslock が切り替えられない時点でお察しだが、tty も切り替えられず、REISUB も効かない。電源ボタン長押ししかない。ここまで深刻なら、カーネルが原因だと思い、カーネルをダウングレードしても、LTS にしても、効果がない。う〜ん……わかんねぇ。

ええ機会やし、環境ファイルがなにか悪いことをしていることにし、デュアルブートしている Windows もそろそろ入れ替えるか。Arch で Xfce という異端児?だったが、ついでにWaylandにしてしまおう。

心機一転、Windows11 25H2 から全部入れ直してみたが、意味がなかった。やはり特定できないタイミングでフリーズしてしまう。なんでや。そんなところの再現性は求めてないんや。でもそうだよな。Linux は残酷なまでに正直なんだ……環境ファイルもテキストベースで書いたとおりにしか動かないんだ……。

ディストリビューション変えてみるか……?試しに CachyOS は……あかん。そりゃそうだよな、一緒やもん。

う〜ん……ど定番すぎる Ubuntsu は避けて、MX Linux の LXQt で入れてみる……あかん、フリーズする。これが再現性のある方法でフリーズするならまだ緒もつかめる気がするのだけれど、しばらく端末から手を話したときに発動したり、ブラウザでページスクロール中に発動したりと、トリガーが全くわからん……なんだろう。

もしかしなくてもハードウェアがぶっ壊れたか?メモリとか終わった?今の時期、パソコンなんて買えないよ。でも、Windows は何も問題ないんだよなぁ……memtest もパスして、BIOSからのテストもパスする。腑に落ちん。

MX Linux で Xfce で入れてみよう……あれ?フリーズしない?わけがわからないよ。なんで?全ては己のトラブルシュート能力がゴミの可能性が。無能と言われているみたいで、これはきっつい。

MX Linux で様子を見ていると、気のせいかもしれんが、特に処理を走らせた覚えがないのに、なんか排熱が熱くないか?MX Linux にある Hardinfo2 を見てみると、何も作業をしていないのに、CPU 温度が 78℃ 超えてる。んん?おかしくない?グリスアップ時期にしても早くねぇ?

Windows11 に戻って、HWinfo で確認すると、45℃くらいまで下がっていった。良かった良かった……じゃねーよ、そうはならんやろ。

これで確定してしまった。ハードウェアがぶっ壊れているのではない。原因は Linux 側……さぁ地獄の始まりだ。Linux を使いたければ、原因を特定しなければならない。

とは言っても、カーネルドライバで確定なんだよなぁ……初めての遭遇だよ。

MX Linux 側に戻り、ターミナルを立ち上げて htop をみてみると、CPU 3 の占拠率のみが50%-80%の間を行き来している。起動したばかりで、ブラウザしか起動していないのに、やっぱり変だ。

プロセスで CPU 占拠を特定する。

$ ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head

    PID    PPID CMD                         %CPU

    767       2 [irq/91-nxp-nci_i2c]        30.7

   4136    4135 /app/lib/floorp/floorp --na 12.4

   4467    4240 /app/lib/floorp/floorp -con  4.1

   2897    2747 /usr/lib/xorg/Xorg -dpi $DP  3.9

   4001    3406 hardinfo2                    3.2

   4114    4108 htop                         2.4

   4311    4240 /app/lib/floorp/floorp -con  1.6

……なんか変なやつが居る。

Google 先生に聞いてみると

https://bbs.archlinux.org/viewtopic.php?id=312733

これ当たりじゃね?ハードウェアも同一臭いぞ? dmesg みてみると、

 $ sudo dmesg | grep -i nxp-nci

[    4.820828] nxp-nci_i2c i2c-NXP1001:00: NFC: Read failed with error -121

[  289.509086] nxp-nci_i2c i2c-NXP1001:00: NFC: Read failed with error -121

あー……嫌な匂いがプンプンするぜ。

とりあえず、その場で外してみてCPU占拠率に影響があるかどうか見てみる。

$ sudo modprobe -r nxp-nci_i2c nxp-nci

$ ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head

    PID    PPID CMD                         %CPU

   4136    4135 /app/lib/floorp/floorp --na 24.1

   4638    4240 /app/lib/floorp/floorp -con  5.0

   2897    2747 /usr/lib/xorg/Xorg -dpi $DP  3.9

   4001    3406 hardinfo2                    2.8

   4114    4108 htop                         2.5

   4467    4240 /app/lib/floorp/floorp -con  2.4

   3369    3117 xfwm4                        1.3

下がった。マジか。

ハードウェアを正常に読み込めないと、こんなこと起こるのか。Linux 側で使わないからと、放置してたんだが……駄目なんかい。

再起動のたびにコマンドを入れられないので、ブラックリストに追加しよう。

sudo vi /etc/modprobe.d/blacklist-nfc.conf

追記する内容は、

blacklist nxp-nci_i2c
blacklist nxp-nci

初期RAMディスクを更新して

sudo update-initramfs -u

再起動後、

sudo dmesg | grep -i nxp-nci 

でロードされていないことを確認、CPU占拠率も確認。

Windows よりカウンタが減った。やっと以前の快適環境が戻ってきた、か?原因が特定できたのは曲がりなりにもトラブルシュートの間に動いてくれていた MX Linuxのおかげだ。Arch は tty に切り替えることもできなかったから突破口すら開けなかった。あーよかった。最悪、WSL まで覚悟していたところだった。

せっかくだし、このまま MX Linux を使うことに……したいが、pacman に慣れてしまうと、あれがない、これがないになってしまう。

それと。
言ってはならんことだが、最初の段階でプロセス確認してりゃなぁ……。視野狭窄って怖いね。

コメント

人気の投稿

ドコモマーケットからdメニューへ

何処に何があるのかさっぱりで、ユーザから好評だったドコモマーケットがdメニューへリニューアルされました。 自分が見つけることが出来なかったのかもしれませんが、 お客様サポートからspモード決済や月額課金状況のページへ辿ることが出来なくなってませんか? どうしてこういう事をするのかなぁ? spモード決済の履歴をたどるメニューは、マイメニューから入っていくようになっています。 dメニュートップページ 「マイメニュー」を選択すると このページへ飛んで、継続課金一覧や履歴を確認できるリンクがでる マイメニューに、何が表示されるのか知らされていないのに、こんな項目を置かれても。役割や名称を見ても、普通はお客様サポートへアクセスするでしょうに。 ……ただ理解できないのが、継続課金一覧等からログインして表示されるページから、用意されている「戻る」をタップすると、お客様サポートのページに戻るんですよね。なぜこのページをお客様サポートから確認できるページにしなかったのだろう?コンテンツ作るのに、失敗してるのかしらん? わかりやすくしたつもりなのかもしれません。 ただ、エンドユーザが迷うようなサポートページを提供してどうする。 身も蓋もないことですが、そもそもspモードで接続している場合はマイメニューこそトップページにすべきでしょう。dメニューはマイメニューから見たい人だけ行けばいい。

Edge 入れたくないでござる

PowerShell によるアンインストールも塞がれ、遂に消す方法がなくなってしまった。勝手に入るし。だから要らんのだ。 Windows10 22H2 に、Edge を入れたくないでござる、絶対に Edge を入れたくないでござる! なので。昔ながらの古典的な方法で、二度と勝手に入らないようにした。 まず削除だが、C:\Program Files (x86)\Microsoft にある、Edge、EdgeCore、EdgeWebView の3つのフォルダを削除。 アンインストーラが機能しないんだから、フォルダごとバッサリやってもいいよね? Microsoft365Apps で使う? いらねーよあんなゴミ。 他にインストールしてあるブラウザ上で開けばいい。PWA として動かすにしても、勝手にインストールしやがる EdgeWebView 上で動かす必要はない。 Windows10 22h2 なら、EdgeWebView を消しても、Microsoft Store は動く。Windows 11 は知らん。いつになったら安定するんだ、Windows11 は。23/11 現在、まだ使いもんにならん。 Win+x キーを押して、WindowsPowerShell(管理者)を開き、次の3行を入力。 echo "" >"C:\Program Files (x86)\Microsoft\Edge" echo "" >"C:\Program Files (x86)\Microsoft\EdgeCore" echo "" >"C:\Program Files (x86)\Microsoft\EdgeWebView" ファイル置いとけば中身入れらんないから、インストールもされまい理論。 タスクスケジューラには何もなかったが、サービスに、 MicrosoftEdgeElevationService っていうクソがいたので無効に。しつけーわ、ほんと。 追記: 11 でも一応可能。MicrosoftStore も問題はないが、EdgeWebView を内蔵せずに利用するアプリは動作しなくなる(Microsoft PC Manager とか。PDF24 はE...