世界を動かす技術を、日本語で。

ASUSゲーミングノートパソコンのACPIファームウェアバグ:深層技術調査

概要

  • ASUS ROGシリーズ の一部ゲーミングノートPCで発生する 深刻なパフォーマンス低下問題 の技術的調査
  • 問題の根本は BIOS/ファームウェアのACPI実装バグ であり、OSやドライバの問題ではない
  • ACPI.sys による高DPC/ISRレイテンシが確認され、主に CPU 0 に集中
  • GPU電源制御の誤動作 や周期的なGPEイベントが原因で、音声ノイズや入力遅延、システムクラッシュが発生
  • 詳細な ETWトレース分析 により、問題の再現性と根本原因が特定

ASUS Gaming Laptop ACPI Firmwareバグ 徹底技術調査

  • 対象機種 :ASUS ROGシリーズ(Strix, Scar, Zephyrus等)、RTX 30/40シリーズGPU、IntelハイエンドCPU搭載機
  • 症状 :YouTube視聴時のスタッター、Discord通話中の音声ノイズ、マウスカーソルのフリーズ等、日常操作でのパフォーマンス低下
  • 一般的な対策 :全ドライバ更新、Windowsクリーンインストール、省電力機能の無効化、プロセッサ割り込み設定調整、Reddit等の複雑な手順実施、Linux導入
  • 結論 :上記対策が無効な場合、問題は OS/ドライバではなくBIOS/ファームウェアレベル に存在

初期症状と測定

  • LatencyMon による調査で、 ACPI.sys が最も高いISR/DPCレイテンシを記録
    • 例:最高割り込み遅延 65,816μs、平均 23μs
    • CPU 0 が90秒以上割り込み処理に費やし、他コアはほぼ無関与
  • Scar 15 (2022) でも同様のパターンを確認
  • ACPI.sys はドライバではなく、BIOSから供給される AMLコードのインタープリタ
    • GPE(General Purpose Events)EC(Embedded Controller) からの信号が主なトリガー

詳細な問題捕捉:ETWトレース

  • Event Tracing for Windows (ETW) を利用し、ACPIプロバイダから詳細ログを取得
    • コマンド例: logman start ACPITrace ...
  • Windows Performance Analyzer でトレース解析
    • レイテンシスパイクは 30〜60秒周期 で発生
    • これは タイマー/スケジュールイベント 由来のシステム的問題

イベント詳細と異常動作

  • _GPE._L02 イベントが13.6msもCPUを占有(リアルタイム処理には致命的)
  • dGPUの電源ON/OFF処理 が15〜30秒周期で繰り返される異常
    • MUXスイッチによるUltimate Mode (dGPUのみ有効、iGPU完全無効)でも発生
    • 本来切り替え不可能な構成にもかかわらず、ファームウェアが無意味なパワーサイクルを実行
  • 失敗時の影響
    • レイテンシスパイク、音声ドロップアウト、入力遅延、ゲームのフリーズ、動画再生停止、システムレスポンス低下
    • 稀にdGPU電源OFFが成功すると BSOD(Win32k_power_watchdog_timeout) でシステムクラッシュ

GPE(General Purpose Events)の理解と分析

  • GPEは BIOS→OSへのハードウェアイベント通知手段
  • トレースデータで _GPE._L02 が周期的かつ長時間CPUを占有
  • 毎回同じACPIメソッド(主にバッテリー・ACアダプタ状態確認)が呼び出される

問題の本質

  • BIOS/ファームウェアのACPI実装バグ により、不適切なAMLコードがWindowsに供給
  • ACPI.sys はそのまま解釈・実行するため、OSやドライバの設定変更では根本解決不可
  • MUXスイッチ構成無視・無意味なdGPU制御・周期的なGPE割り込み が主因
  • ユーザー側での根本的な回避策なし、ASUSによる BIOSアップデート 等の対応が唯一の解決策

この問題は ハードウェア設計とファームウェア実装の根本的な不具合 であり、ユーザーが手動で修正できる範囲を超えています。ASUSやマザーボード開発元への フィードバック提出 と、 公式BIOSアップデートの監視 が最も現実的なアクションとなります。

Hackerたちの意見

マックを推す人が多いのも納得だわ。こんなにひどいものが4年間も出荷されてたなんて信じられない。少なくとも、何を買わないかは分かったよ…。

Appleもこういう問題があったよね。例えば、最初は問題を否定してたこれとかね。https://9to5mac.com/2019/10/24/efi-firmware/

MSIのノートパソコンが、ユーザーが rm -rf / を実行したせいで本当に壊れたのを思い出す。UEFIのバグで、変数が削除された後に起動できなくなったんだ。https://github.com/systemd/systemd/issues/2402

彼らにも問題があるよ、私たちのような外部の人間にはね。

仕事で8年間Macを使ってたけど、全体的にはまあまあ動いてた。でも大きな問題が2つあった。a) 一度、充電ができなくなったことがあって…幸い、気づいた時には結構充電があったから、データを予備のマシンに移せたんだ。取り外し可能なストレージがあればすごく便利だったな。b) 1年間、iTunesでストリームを再生し始めると、音楽の代わりに大きな静電気音が出ることがあった。再生を一時停止して再開すれば大体直ったけど。それは特定のOSのバージョンをインストールした時から始まって、次のバージョンをインストールしたら止まった。他のアプリの音には問題なかったけど、もちろんこの件についての情報はどこにもなかった。「Macはただ動く」って言われてるからね。ちょっと小さいけど、Outlookを使ってる時にノートパソコンをスリープにすると、バッテリーを消費して熱を発生させることが多かった。Outlookはひどいけど、企業がExchangeを運用してる時は、他の何かと認証を合わせるよりもOutlookを使う方が楽だから、時々使わざるを得ないんだよね。

マックを推すの? ゲーマーやVRの人たちをマックに推すの?

短く言うと、これが確実に修正されるまでASUSのゲーミングノートは買わない方がいいよ。もし保証があるなら、保証請求を出して、小額訴訟に行く準備をしておいた方がいい。

他のほとんどのノートパソコンには、このバグを引き起こすためにASUSに必要なモードすらないよ。MUX経由でdGPU専用モードにしたことなんてないと思う。無駄に電力を消費するだけで、メリットがほとんどないからね。

ゲーミングノートで4年間もひどいスタッタリングを出荷し続けたのはすごいね。ユーザー心理が気になるところだ。明らかに、返品率がそんなに高くなかったみたいだし。リンク先のredditスレッドからの引用だけど、保証の手続きが彼らの計画の一部なのかも。「あなたが提案したことは全部やったけど、何も変わらなかった。保証で返送したよ。どうなるか気になる。」 「結局どうなったの?返事はあった?」 「彼らは、プラトンは完璧に動作すると主張してる。だから、結局慣れちゃったよ。ずっとBluetoothのイヤフォン使ってるから、問題に気づかない。」

これが、業界が何十年もユーザーに「壊れたコンピュータが普通」って教育してきた結果だよね。他の業界だったら、みんな初日で返品してるよ。35年くらい前、先生が「コンピュータは靴を買うようなもので、結ぶとランダムに爆発する」って言ってたのを思い出す。消費者保護法がやっと進んできたのはありがたいね。

Windowsのノートパソコンユーザーは、ちゃんと動かないのが普通だと思い込んでて、問題に対処するしかないんだよね。

どの証拠を見ても、企業は実際に動く製品を作ることに興味がないみたいだね。

このバグは、ユーザーが明示的にMUXにディスクリートGPUに切り替えるよう指示した時だけ発生する。これは主に外部ディスプレイでゲームをするユーザーだけが気にする追加機能なんだ。ノートパソコンはOptimisモードでも外部ディスプレイでちゃんと動くけど、ちょっとパフォーマンスが落ちて、G-Syncみたいな一部のディスプレイ機能が使えなくなる。だから、ほとんどのユーザーは常にOptimisモードで使ってる可能性が高い。ノートパソコンを普通に使ってるなら、MUX機能があることすら知らないかもしれない。問題は、Asusが適切にQAテストされていない余計な機能をハードウェアに搭載してることだね。どうやら、彼らはゴールデンパスだけを徹底的にテストしたみたい。

自分は人生で2台のゲーミングノートパソコンを持ってたけど、どちらも修正されなかった似たような問題があった。一台は初代Alienware M17で、GTX 270M GPUが2つ(そう、2つ!)と、特定のモデル名は覚えてないけどオンボードのnvidia GPUが搭載されてた。これにはカクつきや音のひび割れがあって、SLIを無効にしてオンボードGPUを切って、特定のモッドドライバーを使うことでなんとか改善された。ドライバーは確かNotebookcheckフォーラムの誰かが作ったものだったと思う。後にBIOSアップデートでSLIを使えるようになったけど、完全には修正されないままEOLを迎えたと思う。もう一台はROG ASUSのノートパソコンでGTX 460m(モデル名は覚えてない)だったけど、OPとほぼ同じ話だね。ただ、ACPIコードに深く入り込む知識はなかった。話の唯一の違いは、latencymonが遅延スパイクを複数のdllに帰属させてたこと。時にはWi-Fiドライバー、他の時にはnvidiaのドライバーだった。完全な修正は覚えてないけど、Wi-Fiカードを交換して、ゲームをしてない時はdGPU(オンボードのやつじゃなくて)を無効にして、動画を見たりしてたら音がひび割れなかった。面白いことに、実際にゲームをプレイしてる時はあまりひび割れなかった(それでもたまに起こったけど)。その後、ゲーミングノートパソコンは買わなくなった。この話を見ると、何も変わってない気がするな。

誰かが気にするかどうかわからないけど、問題はそこなんだ。昔、7000ポンドのDellのワークステーションノートパソコンを持ってたんだけど、i9、3080Ti、128GBのRAMが積まれてて、スペックは最高だった。ゲームをプレイするには全く役に立たなかったけど、30秒ほどでサーマルスロットリングが始まっちゃったんだ。ゲーム開発会社で働いてたから、ゲームがプレイできるのが製品のコア機能だったのに、皮肉だよね。その後、Razer Blade 15を使ってたけど、あれも悪くはなかったけど、結局はサーマルスロットリングが始まった。冷却が不十分だと思う。面白いことに、今はi7と3070Tiを搭載したもっと安いMSIのゲーミングノートパソコンを使ってるけど、全然スロットリングしないんだ。ゲームもスムーズに動くし、冷却システムがかなりオーバービルドされてるのがいいね。

どうやら、ノートパソコンをディスクリートGPUのみのモードに設定した場合にだけこの問題が発生するみたいだけど、ほとんどの人はそんなことしないよね。でも、これがASUSのBIOSの唯一の問題じゃないよ。うちの娘が持ってるやつも、SSDを追加するとランダムにロックアップするんだ。SSDによって早いか遅いかはあるけどね。SSDのファームウェアのせいだと思うかもしれないけど、実際に最もロックアップしたのは、問題なく動いてるデスクトップに入れてるSSDだったりするんだよね。

どうやって彼らの製品、Zephyrus G14を買う羽目になったか教えてあげるよ:当時ASUSはAMDと独占契約を結んでRyzen 4xxxHSラインを出荷してたんだ。最初は問題なかったけど、2年後にはパフォーマンスが悪化してサーマルスロットリングに悩まされるようになった。ペーストの状態が悪かったから再塗布は必要だったけど、部分的にしか効果がなかった。根本的な原因はまだわからないけど、バッテリー性能の低下を調べたら、iGPUが常にフルスロットルで動いてたことがわかった。dGPUを優先デバイスに設定したら、バッテリー寿命が少し改善されたよ。機械的な故障が増えてきたからFW16に乗り換えて、それ以来戻ってない。ゲーム用ノートパソコンのメーカーが何を提供してるか、どれだけ安くても、製品や顧客に対して気を使ってくれないなら、全く興味ないね。

素晴らしい調査だね。システムの不具合を素早くデバッグするためのアイデアがたくさんあって、知らなかったことが多い。全部をAIが書いた要約にまとめるのはちょっと残念だけど、情報を出すための唯一の方法だったなら仕方ないね。

あのスリープ中の割り込みコードを書いた「プログラマー」(この言葉はかなりゆるく使ってるけど)が、実際に自分でテストしたのか、それとも他の責任感の薄い部門の誰かが「自動テストが全部通ったから大丈夫」って思ってたのか、気になるな。こういう時こそ、元々のマイクロソフトの意味での「ドッグフーディング」が役立つはずだよ。自分のマシンでこれを体験してる開発者の中には、絶対に直したくなる人がいるはずだから。

ずっと前に、台北の大手ハードウェアメーカーでファームウェアの契約仕事をしてたことがある。バグを無視することをすぐに学んだよ。報告すると、割り当てられたタスク以外のことをしてるって叱られちゃうからね。さらに悪いことに、ハードウェアチームはファームウェアやドライバー、ソフトウェアの開発者を低い立場の者として見ていて、フィードバックを完全に無視してた。この話には驚かないよ。

これは素晴らしい発見、記事、そして修正提案だね。すごい仕事だし、現代のPCがどう動いてるか、隠されてるものにどれだけ深く掘り下げられるかについても非常に勉強になる。何年も組み込みファームウェアを書いてきた者としては、エンドユーザーがこんなにバグを発見できるなんて夢のようだよ。Asusがすぐにメールを送って、数日間ファームウェアのチームと話すために短期契約の仕事をオファーしてくれる世界に住みたいな。報酬は五桁とかで、更新されたノートパソコンを持って帰るっていうね。もちろん、このバグは4年間も放置されてたから、そんな世界にはいないんだろうけど。それが悲しいよ。 :| 編集: s/fix/fix proposal/。

すみません、どの修正ですか?リンク先のGitHubページは「ここにすべてがあります、ASUS、修正してください」と終わってますよね?

ユーザーでありプログラマーとして、こんなに知識があるのは夢のまた夢だよ。この記事にはたくさんの専門知識が詰まってて、すごいと思う。自分のノートパソコンの機能を逆アセンブルすることには成功したけど、このACPIのことでは壁にぶつかっちゃった。テーブルをダンプしてコードをデコンパイルしたけど、得られたのはスタブコードだけだった。自分のノートパソコンのLinuxドライバーを書きたかったけど、結局できなかった。これができる人には本当に尊敬するよ。

技術的なRCAは面白いけど、ビジネスプロセスのRCAにも興味があるな。これって普遍的で再現可能な感じがする。どうしてこれがテクサポートやRMAのチャネルを通じてフィードバックされなかったんだろう?証拠が少なすぎて相関が取れなかったのか、それともASUSが調べて間違った結論に達したのか、例えば不良シリコンのバッチとか?証拠がたくさんあっても無視したり無能だった可能性もあるよね。使ってると明らかにわかることだし、QAプロセスはどうなってるの?これを見逃すなんてありえないよね。今知ってるなら、どうするつもりなんだろう?個人的には、CEOの計算は明確だと思う。もし高級商品で需要が弾力的なら、問題を修正して認識を改善する(これは別の話)。こういう何年も続く多面的な問題はブランドを台無しにする可能性がある。過去にROGを買ったことがあるけど、もう二度と買いたくないな。追記:考え直すと、ファームウェアのバグ自体がかなり問題だね。他のバグは理解できるけど、ハードウェアの仮定が変わったり、良いコードが再利用されてGPUのマルチプレクサを知らなかったりするのはわかる。でも、割り込みをスリープさせる方法って…ひどいよね?どうやってレビューされたんだろう?そのファームウェアのテストスイートは何なの?

そうだね。ACPIのAMLバイトコードは一種の混合祝福だね。逆アセンブルやエンドユーザーによる分析・バグ修正を可能にするけど、プログラミング環境としてはひどい災害だよ。限られた能力で恐ろしいほど大きなインタープリタがカーネルの最高特権レベルで動かなきゃいけないし。システムインテグレーターがこういうトリックに使うときは、ほぼ期待通りのコード品質で斧のように使われる。変わったノートパソコンのサブシステムのためにLinuxドライバを書く道は、ほぼいつも「ACPIのことは捨てちゃえ」から始まる。

本当に素晴らしい分析だね。ASUSがこんな努力をしてクオリティチェックをしているのはいいけど…あれ?

2015年頃、スイッチャブルグラフィックスのノートパソコンは二度と買わないと自分に誓ったんだ。今のところはうまくいってるけど、プレミアムを謳ってるブランドがファームウェア開発チームに数ペニーしかかけず、派手なマーケティングには何百万も使ってるのを見ると、いつも面白いよね。

おめでとうASUS!マーケティング予算の0.01%で、何百万ものユーザーの体験を改善できたのに、交換するコンピュータの数も減らせたし、ブランドの好感度も上がったのに…これまた、多くの企業が全く管理が行き届いてなくて、マーケティングが良いエンジニアリングよりも効率的だと思ってることを証明してるね。

なんでこんなに明らかな欠陥が、プロ消費者向けで一般的に評価されている製品レビューサイトで全然言及されないのか、いつも不思議に思う。素晴らしいレビューを見て商品を買ったら、問題に直面して解決策を探す。そしたらredditのスレッドでみんなが「そうそう、いつもそうだよ、なんで驚いてるの?」って言ってるのを見つける。ほんと、なんでだろうね?

自分自身にこの質問をしたことはなかったけど、もしそうなったら、まずはそのレビューサイトをスポンサーしている人を探し始めるかな。

これ、2019年のMSIゲーミングノート(GS65 Stealth)でも起こるよ。Latencymonで1分以内に>10msのスタッターが出る。すべてのACPIデバイスを無効にするとスタッターが解消されることがわかった。さらに、すべてのACPIドライバを無効にすると専用GPUも無効になることがわかった。これ、dGPUを搭載した多くのゲーミングノートに影響してるかもしれない。MSIフォーラムでもLatencymonでACPIの問題を発見してるスレッドがあるよ:https://forum-en.msi.com/index.php?threads/constant-micro-st... 「nvidia ゲーミングノート スタッター latencymon acpi」でググってみて。