かすれた*Pluser*の巻物


Display of iMac Doesn't Response EDID

Intel GPU を積んだ Apple の iMac で Linux を起動すると画面表示が壊れてしまいます。 起動時のカーネルパラメータで nomodeset などを渡すと表示の崩壊を回避できますが、GPUアクセラレーションなども同時に無効になってしまうため、根本的な解決策にはなりません。

こうなってしまう原因は iMac のディスプレイが EDID をうまく返さないためのようです。 原因が分かってしまえば対処は簡単で、カーネルに対して適当な EDID を注入することで回避できます。

Linux カーネルにはあらかじめ「標準的な」EDID が添付されているため、それを読み込むように指定すれば基本的にはOKです。 詳しくは KMS-モードの強制とEDID を見てもらえばいいのですが、要するにカーネルパラメータとして drm_kms_helper.edid_firmware=edid/1920x1080.bin などと渡すと組込みの EDID を使ってくれるということです。

これでディスプレイ表示は正常になり、KMSもまともに動作するようになりました。