# Qualcomm Linux 1.4 以降のリリースに移行する

以下の主要な更新や改善点を踏まえ、Qualcomm^®^ Linux^®^ 1.3 リリースから Qualcomm Linux 1.4 以降のリリースへの移行について説明します。

Qualcomm Linux 1.4 以降のリリースでは、Yocto `scarthgap` として知られる Yocto 5.0 の最新の長期サポート（LTS）バージョンが導入されています。ジェネリック・バッファ管理（GBM）メモリ・マネージャーと Weston ドライバーはアップストリームになり、1.3 以前のリリースで使用されていたダウンストリーム・バージョンから置き換わりました。

Qualcomm Linux の使用が初めてで、最新の 1.5 リリースを使用している場合は、ソフトウェアを移行する必要はありません。最新リリースの新機能、機能強化、制限事項のリストについては、[Qualcomm Linux 1.5 Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) を参照してください。

## Yoctoの変更点

1.4 以降のリリースにおける Yocto の変更点は以下のとおりです。

- Yocto リリースが `kirkstone` （v4.0.22）から `scarthgap` （v5.0.6）にアップグレードされました。`scarthgap` の機能と強化点については、[5.0リリースノート（scarthgap）](https://docs.yoctoproject.org/5.0.6/singleindex.html#release-notes-for-5-0-scarthgap) を参照してください。
- GNU Compiler Collection（GCC）コンパイラーが v13.2 にアップグレードされました。互換性上の問題を避けるため、ビルド済みのアプリケーションはすべて最新の Qualcomm Linux リリースで再コンパイルしてください。

## メモリ・マネージャーの変更点

1.4 以降のリリースでは、メモリ管理用のアップストリーム [`libgbm` package](https://git.openembedded.org/openembedded-core/tree/meta/recipes-graphics/mesa?h=scarthgap&amp;id=00a662c5e28235fb64348aab4ce9aeb5e7f95d06) がダウンストリームのバリアントに置き換わりました。この変更は、ディスプレイ、グラフィックス、ビデオ、およびカメラ・モジュール全体のメモリ・フォーマットとGBM機能に影響します。

アップストリームGBMでサポートされているフォーマットのリストについては、 [`mesa` repository](https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/gbm/main/gbm.h) を参照してください。

## ディスプレイの変更点

1.4 以降のリリースでは、QCS6490 および QCS5430 SoC（system-on-chip）プラットフォームのディスプレイ・スタックがアップストリームとなり、独自の Snapdragon^®^ ディスプレイ・マネージャー（SDM）バックエンドが不要になりました。IQ-8275 および IQ-9075 SoC プラットフォームは、すでにアップストリームのディスプレイ・スタックを使用しています。

この移行により、SDMコンポーネントに依存する一部の機能がデフォルトでは使用できなくなります。これらの機能が必要な場合は、ディスプレイ・スタックをダウンストリーム実装に切り替えることができます。

1.4 以降のリリースでこれらの機能を有効にするには、以下の表にある情報を使用してください。

| 機能 | 1.4 以降のリリースで有効にする方法 |
| --- | --- |
| Embedded DisplayPort（eDP）サポート | [Qualcomm Linux Display Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70020-18A/configure.html#enable-display-downstream-drivers) の説明に従い、ダウンストリームパスを有効にします。 |
| Type-C over DisplayPort（DP） | [Qualcomm Linux Display Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70020-18A/configure.html#enable-display-downstream-drivers) の説明に従い、ダウンストリームパスを有効にします。 |
| モードテスト・バイナリのプリビルド | `libdrm_2.4.120.bb` ファイルで `install-test-programs` オプションを有効にします。詳細については、[Qualcomm Linux Display Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-18/samples.html#run-drm-mode-test) を参照してください。 |

## カメラの変更

1.4 以降のリリースでは、バッファ管理ユーティリティはダウンストリーム・コンポーネントではなくアップストリーム GBM コンポーネントを使用します。このため、カメラのバッファ管理を呼び出すQualcomm Intelligent Multimedia（IM）コマンドを変更してください。

生バッファのデフォルト・フォーマットは `memory:GBM` になりました。`gst` コマンドでメモリ・フォーマットを指定しないでください。

**パイプライン例**

- 1.3リリースのパイプラインは次のとおりです。

gst-launch-1.0 qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink fullscreen=true async=true sync=false
        Copy to clipboard
- 1.4 以降のリリースのパイプラインは次のとおりです。

gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_1::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! waylandsink fullscreen=true sync=false
        Copy to clipboard

プラグインの変更点については、[Qualcomm IM SDK の変更点](https://docs.qualcomm.com/doc/80-70020-150J/topic/introduction.html#qim-sdk) を参照してください。

## ビデオの変更

ビデオ・エンコーディングやデコーディングのバッファを管理するために、1.4 以降のリリースではダイレクト・メモリアクセス（DMA）エクスポート・モード（4）、DMA インポート・モード（5）、メモリ・マップ（MMAP）モード（2）がサポートされています。ユース・ケースに応じて、適切なモードを選択してください。

**例**

カメラでエンコードする場合、このアクションによりDMAバッファが生成されます。この場合は次を実行してください。

> 
> 
> - エンコーダ入力をDMAインポート・モード（5）に設定します。このモードにすることで、ビデオドライバ側に新しいバッファを割り当てられたり、コンテンツがコピーされたりすることなく、カメラバッファのファイル・ディスクリプタ（FD）を直接使用することができます。
> - エンコーダ出力をDMAインポート・モード（5）に設定します。このモードにより、ビデオ・ドライバーが出力バッファを確実に割り当てます。

この例のビデオ・パイプラインは以下のとおりです。

gst-launch-1.0 qtiqmmfsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc output-io-mode=5 capture-io-mode=4 ! h264parse ! mp4mux ! filesink location=/opt/cam_enc.mp4
    Copy to clipboard

このパイプラインでは、`output-io-mode` はDMA インポート・モード（5）で、エンコーダーへの入力を示しています。`capture-io-mode` はDMAエクスポート・モード（4）で、エンコーダーへの出力を示しています。

## Qualcomm IM SDK の変更点

Qualcomm IM SDK の 1.4 以降のリリースでは、メモリ・マネージャー・コンポーネントのアップストリームへの移行に伴い、`waylandsink`、`qtiqmmfsrc`、`v4l2h264dec`、`v4l2h264enc` の各プラグインの動作が変更されました。詳細については、[メモリ・マネージャーの変更点](https://docs.qualcomm.com/doc/80-70020-150J/topic/introduction.html#memory-manager) を参照してください。

Qualcomm IM SDK プラグインの変更とアップストリーム GBM アライメントを反映させるため、以下のようにサンプルアプリケーションを更新します。

### waylandsinkプラグイン

Qualcomm IM SDK の以前のバージョンでは、`waylandsink` プラグインのダウンストリームバージョンを使用しており、追加の引数として `x,y,width,height` 座標が含まれていました。それ以降のリリースでは、アップストリーム `waylandsink` プラグインに切り替わったため、この機能は利用できません。代わりに、この機能では `qtivcomposer` プラグインを使用する必要があります。

プラグインの変更点と、それに対応するアクションは以下のとおりです。

| 変更点 | 変更点 | アクション |
| --- | --- | --- |
| 1.3 | 1.4 以降のリリース | アクション |
| `x,y,width,height` 座標あり。 | `qtivcomposer` プラグインを介して機能を提供します。 | 構成する際には、`qtivcomposer` プラグインを使用します。 |
|  |  |  |

**パイプライン例**

- 1.3リリースのパイプラインは次のとおりです。

gst-launch-1.0 -e qtivcomposer name=mixer sink_0::position="<0, 0>" sink_0::dimensions="<1280, 720>" sink_1::position="<590, 310>" sink_1::dimensions="<640, 360>" mixer. ! queue ! waylandsink enable-last-sample=false sync=true fullscreen=true filesrc location=/opt/mux1.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mixer. filesrc location=/opt/mux1.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mixer.
        Copy to clipboard
- 1.4 以降のリリースのパイプラインは次のとおりです。

gst-launch-1.0 -e qtivcomposer name=mixer sink_0::position="<0, 0>" sink_0::dimensions="<1280, 720>" sink_1::position="<590, 310>" sink_1::dimensions="<640, 360>" mixer. ! queue ! waylandsink fullscreen=true filesrc location=/opt/mux1.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mixer. filesrc location=/opt/mux1.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mixer.
        Copy to clipboard

### qtiqmmfsrcプラグイン

1.4 以降のリリースでは、`qtiqmmfsrc` プラグインはユニバーサル帯域幅圧縮（UBWC）NV12 の圧縮フィールドをサポートしません。代わりに、UBWC 圧縮 NV12 イメージ用に特別に設計された、新しいフォーマットを使用します。

プラグインの変更点と、それに対応するアクションは以下のとおりです。

| 変更点 | 変更点 | アクション |
| --- | --- | --- |
| 1.3 | 1.4 以降のリリース | アクション |
| `format=NV12`<br><br><br>`compression=ubwc` | `format=NV12_Q08C` を追加 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">format=NV12</span></code> から <code class="docutils literal notranslate"><span class="pre">format=NV12_Q08C</span></code> へとフォーマットを変更します。</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">compression=ubwc</span></code> パラメーターを削除します。</p></li><br></ul> |
|  |  |  |

**パイプライン例**

- 1.3リリースのパイプラインは次のとおりです。

gst-launch-1.0 qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! v4l2h264enc output-io-mode=5 capture-io-mode=5 ! h264parse ! filesink location=/opt/video.h264
        Copy to clipboard
- 1.4 以降のリリースのパイプラインは次のとおりです。

gst-launch-1.0 -ev qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12_Q08C,width=1920,height=1080,framerate=30/1 ! queue ! v4l2h264enc output-io-mode=5 capture-io-mode=4 ! h264parse ! filesink location=/opt/video.h264
        Copy to clipboard

### v4l2h264encおよびv4l2h264decプラグイン

以前のリリースでは、GSTフレームワークがアプリケーション・バッファを管理していました。1.4 以降のリリースでは、`v4l2` ドライバーが内部的にバッファ管理をサポートします。

この機能拡張をドライバーに追加するには、以下を実行します。

- `v4l2h264enc` プラグインでカメラソースを使用するアプリケーションでは、パイプラインの設定を `output-io-mode=5` / `capture-io-mode=5` から `output-io-mode=5` / `capture-io-mode=4` へと変更してください。
- `v4l2h264dec` プラグインでファイルソースを使用するアプリケーションでは、パイプラインの設定を `output-io-mode=5` / `capture-io-mode=5` から `output-io-mode=4` / `capture-io-mode=4` へと変更してください。

プラグインの変更点と、それに対応するアクションは以下のとおりです。

| ユースケース | 変更点 | 変更点 | アクション |
| --- | --- | --- | --- |
| ユースケース | 1.3 | 1.4 以降のリリース | アクション |
| ビデオのエンコード | `format=NV12`<br><br><br>`compression=ubwc` | `format=NV12_Q08C` を追加 | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">format=NV12</span></code> から <code class="docutils literal notranslate"><span class="pre">format=NV12_Q08C</span></code> へとフォーマットを変更します。</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">compression=ubwc</span></code> パラメーターを削除します。</p></li><br></ul> |
| ビデオのエンコード | `output-io-mode=5` および `capture-io-mode=5` | `output-io-mode=5` と `capture-io-mode=4` に更新します | モードを `output-io-mode=5` および `capture-io-mode=4` に変更します。 |
| ビデオのデコード | `output-io-mode=5` および `capture-io-mode=5` | <ul class="simple"><br><li><p>capsと <code class="docutils literal notranslate"><span class="pre">format=NV12</span></code> を追加</p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">output-io-mode=4</span></code> と <code class="docutils literal notranslate"><span class="pre">capture-io-mode=4</span></code> に更新します</p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">video/x-raw,format=NV12</span></code> を追加します。</p></li><br><li><p>モードを <code class="docutils literal notranslate"><span class="pre">output-io-mode=4</span></code> および <code class="docutils literal notranslate"><span class="pre">capture-io-mode=4</span></code> に変更します。</p></li><br></ul> |
|  |  |  |  |

**パイプライン例**

- 1.3リリースのビデオ・デコーダー・パイプラインは次のとおりです。

gst-launch-1.0 -e filesrc location=/opt/mux1.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 !  waylandsink fullscreen=true
        Copy to clipboard
- 1.4 以降のリリースのビデオ・デコーダー・パイプラインは次のとおりです。

gst-launch-1.0 -e filesrc location=/opt/mux1.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! waylandsink fullscreen=true
        Copy to clipboard
- 1.3リリースのビデオ・エンコーダー・パイプラインは次のとおりです。

gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4"
        Copy to clipboard
- 1.4 以降のリリースのビデオ・エンコーダー・パイプラインは次のとおりです。

gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12_Q08C,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4"
        Copy to clipboard

## 次のステップ

- Qualcomm Linuxのオーバー・ザ・エア（OTA）を更新するには、 [Qualcomm Linux Yocto Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-27/ota_update_for_qualcomm_linux.html#ota-update-for-qualcomm-linux) を参照してください。
- Qualcomm Intelligent Multimedia（IM）SDK 最新リリースの新機能、機能強化、制限事項のリストについては、 [Qualcomm Intelligent Multimedia (IM) SDK Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-52/qim-sdk-release-1-5.html) を参照してください。
- 最新リリースの新機能、機能強化、制限の詳細については、 [Qualcomm Linux 1.5 Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) を参照してください。

Last Published: Dec 23, 2025

[Next Topic
参考資料](https://docs.qualcomm.com/bundle/publicresource/80-70020-150J/topics/references.md)

Source: [https://docs.qualcomm.com/doc/80-70020-150J/topic/introduction.html](https://docs.qualcomm.com/doc/80-70020-150J/topic/introduction.html)