こんにちは、NXP チームの皆様、
Soc : iMX8qxpC0mek
Linux OS : yocto [Scarthgap L6.6.5]
i.MX8QXP Yocto Linuxプラットフォーム上で、ディスプレイへの直接フレームバッファ書き込みがサポートされているかどうかを確認したいと思います。
私たちの要件は、Weston/WaylandコンポジターとHMIアプリケーションが初期化される前の初期起動段階で、グラフィックや画像を直接表示することです。
もう少し詳しく教えていただけますか:
i.MX8QXPプラットフォームでの早期表示出力実装の推奨方法を共有してください。
こんにちは、@Ram2さん
お元気でお過ごしのことと思います。
1. /dev/fb0 (fbdev) はサポートされていますか?
いいえ、i.MX 8ではネイティブではありません。NXP i.MX Linux リファレンスマニュアル には、第6.2.2章のフレームバッファが明示されています:
フレームバッファドライバーは i.MX 6と i.MX 7でサポートされていますが、i.MX 8ではサポートされていません
2. ウェストンを使わずに直接DRM/KMSアクセス
はい、これは正しい、そして推奨されるアプローチです。
i.MX 8では、WestonはDRMバックエンドを使用しているため、アプリケーションが直接DRM/KMSにアクセスする際にはWestonが稼働していない必要があります。
UG10163の第7.3.10.7章のcamテストアプリケーションをご覧ください。
3. NXPリファレンスアプリケーション/サンプルコード
SDK_2_9_0_MEK-MIMX8QX\boards\mekmimx8qx\driver_examples\dpu\characterの例を見てみてください。MCUXpresso SDKからダウンロードしてください。
4. カーネル設定、デバイスツリー、ディスプレイドライバ設定
カーネル設定(imx_v8_defconfig内):
CONFIG_DRM=y # DRM framework
CONFIG_DRM_IMX=y # i.MX DPU DRM driver (drivers/gpu/drm/imx)
CONFIG_DRM_IMX_DPU=y # DPU-specific DRM module
CONFIG_DRM_IMX_MIPI_DSI_NORTHWEST=y # MIPI DSI (for OLED panel support)
CONFIG_DRM_IMX_LDB=y # LVDS Display Bridge
表10をご覧ください。RN00210のカーネルおよびデバイスツリー構成(ビデオディスプレイのセクション)。
5. ウェストンとの対立が後から始まる場合
はい、対立は存在します。
早期起動のDRM/KMSアプリケーションとWestonは/dev/dri/card0の独占制御を争うため、早期アプリケーションはWestonが開始する前にDRMマスターをリリースしなければなりません。
U-Bootのロゴで表示を試してみるのもいいですよ。U-BootはDRM/simplefbでレンダリングされたBMP画像をサポートしています。これによりLinux層間の競合を完全に回避し、可能な限り早いスプラッシュ画面を生成します。
よろしくお願いいたします。
サラス。