症状
Linux PCとHDMI接続したディスプレイで、少しの時間操作しないと画面全体にチラつきが高い頻度で発生する。本体ディスプレイはちらつかない。
環境
- Lenovo ThinkPad L390
- Intel Core i5-8265U
- Linux Mint Xfce 22.3
- Xiaomi Mi TV
- HDMI接続
対応
内蔵GPUの省電力制御に起因すると思われる。カーネルパラメータで電力制御の無効化を実施する。
sudo nano /etc/default/grub以下の行を変更する。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_dc=0 pcie_aspm=off intel_idle.max_cstate=1"設定の意味。
i915.enable_dc=0(最重要:ディスプレイの深い省電力状態を無効化)pcie_aspm=off(PCIeのアクティブ状態電源管理を無効化)intel_idle.max_cstate=1(プロセッサのCステートを制限し、電圧降下を防ぐ)
反映して再起動。
sudo update-grub
sudo reboot再起動後、チラつきが発生しないことを確認する。
AIが言うことには
正直AIに言われるままやった(´・ω・`)
AIが言うことには、以下のような問題であった、ということだ。
今回の現象と対策を、要点に絞ってまとめました。
1. 現象の正体:GPUの「サボりすぎ」
操作を止めると、ThinkPad(Intel GPU)が「描画の仕事がない」と判断し、消費電力を極限まで抑える「深い省電力状態(DC5/DC6ステート)」に移行します。
この際、HDMI端子に送られる信号の電圧や同期タイミングが、省電力の影響でわずかに不安定になります。Xiaomi Mi TV側の受信機がこの微弱な変化を「信号の乱れ」として検知してしまうため、画面がちらつきます。
2. 解決策:省電力の強制解除
「操作していない時も、HDMIの信号強度を落とさない」ように設定を書き換えます。
- 設定変更の対象: システムの起動設定(GRUB)
- 追加する命令:
i915.enable_dc=0
- これを追加することで、GPUが深い省電力状態(DCステート)に入るのを禁止し、常に安定した信号を出力させます。
- 反映方法: 設定追記後、
sudo update-grubを実行して再起動。3. なぜ本体は無事で、TVだけなのか
- 本体液晶: eDP (Embedded DisplayPort) という専用規格で繋がっており、省電力による電圧変動に非常に強い設計になっています。
- 外部TV: HDMI 規格で繋がっており、PC側の省電力制御(電圧低下やノイズ)の影響をダイレクトに受けてしまいます。特にテレビはPCモニターよりも信号の厳密な同期を求める傾向があるため、相性として現れやすくなります。
まとめ
この問題は、「LinuxのドライバがTV側の許容範囲を超えて省エネしようとしている」ことが原因です。上記の設定で「サボり」を禁止すれば、操作の有無にかかわらず安定します。
所感
画面のチラつきはけっこう鬱陶しかったので、解決してよかった。
AIのお陰様でなんとかなりました(´・ω・`)
コメント