# デバッグ

ここでは、Yoctoベースのワークスペースをカスタマイズし、一般的な問題や課題を解決する方法を説明します。

## QDLとModemManagerを確認する

`Systemd` が利用可能なLinuxディストリビューションを使用している場合は、`systemctl` コマンドを使用して `ModemManager` を停止できます。以下はUbuntu 22.04の例です。

1. `ModemManager` ステータスを確認するには、以下のコマンドを実行します。

systemctl status ModemManager
        Copy to clipboard

ModemManager.service - Modem Manager
        Loaded: loaded (/lib/systemd/system/ModemManager.service; enabled; vendor preset: enabled)
        Active: active (running) since Tue 2023-11-28 16:28:15 IST; 3 months 4 days ago
        Main PID: 1338 (ModemManager)
        Tasks: 3 (limit: 4915)
        CGroup: /system.slice/ModemManager.service
                └─1338 /usr/sbin/ModemManager --filter-policy=strict
        Copy to clipboard

ps aux | grep -i modemmanager
        Copy to clipboard

root      1338  0.0  0.0 434332  9544 ?        Ssl   2023  10:39 /usr/sbin/ModemManager --filter-policy=strict
        Copy to clipboard
2. `ModemManager` を停止するには、以下のコマンドを実行します。

systemctl stop ModemManager
        systemctl status ModemManager
        Copy to clipboard

ModemManager.service - Modem Manager
        Loaded: loaded (/lib/systemd/system/ModemManager.service; enabled; vendor preset: enabled)
        Active: inactive (dead) since Sun 2024-03-03 20:08:32 IST; 4s ago
        Process: 1338 ExecStart=/usr/sbin/ModemManager --filter-policy=strict (code=exited, status=0/SUCCESS)
        Main PID: 1338 (code=exited, status=0/SUCCESS)
        Copy to clipboard
3. `ps aux` コマンドは、`/usr/sbin/ModemManager` のエントリーを表示しません。`ModemManager` が必要な場合は、フラッシュが完了した後に再起動し、起動したことを確認する必要があります。

systemctl start ModemManager
        systemctl status ModemManager
        Copy to clipboard

ModemManager.service - Modem Manager
        Loaded: loaded (/lib/systemd/system/ModemManager.service; enabled; vendor preset: enabled)
        Active: active (running) since Sun 2024-03-03 20:11:46 IST; 43s ago
        Main PID: 14785 (ModemManager)
        Tasks: 3 (limit: 4915)
        CGroup: /system.slice/ModemManager.service
                └─14785 /usr/sbin/ModemManager --filter-policy=strict
        Copy to clipboard

ps aux | grep -i modemmanager
        Copy to clipboard

root     14785  4.6  0.0 434332  9160 ?        Ssl  20:11   0:00 /usr/sbin/ModemManager --filter-policy=strict
        Copy to clipboard

## 新しく追加されたレイヤーがビルドから除外されているか確認する

新しく追加されたレイヤーのレシピがイメージに含まれていない場合、BitBakeがそのレイヤーを解析していない可能性があります。以下のコマンドを実行し、出力にレイヤーが表示されているかを確認します。

bitbake -e | grep ^BBLAYERS=
    Copy to clipboard

レイヤーが見つからない場合は、`conf/bblayers.conf` ファイルの内容を確認し、このファイルにレイヤーが含まれていることを確認します。

# These layers hold recipe metadata not found in OE-core, but lack any machine or distro content
    BASELAYERS ?= " \
      ${WORKSPACE}/layers/meta-openembedded/meta-oe \
      ${WORKSPACE}/layers/meta-openembedded/meta-filesystems \
      ${WORKSPACE}/layers/meta-openembedded/meta-networking \
      ${WORKSPACE}/layers/meta-openembedded/meta-perl \
      ${WORKSPACE}/layers/meta-openembedded/meta-python \
      ${WORKSPACE}/layers/meta-openembedded/meta-gnome \
      ${WORKSPACE}/layers/poky/meta \
      ${WORKSPACE}/layers/poky/meta-poky \
      ${WORKSPACE}/layers/meta-security \
      ${WORKSPACE}/layers/meta-selinux \
      ${WORKSPACE}/layers/meta-virtualization \
    "
    
    # These layers hold machine specific content, aka Board Support Packages
    BSPLAYERS ?= " \
      ${WORKSPACE}/layers/meta-qcom-hwe \
      ${WORKSPACE}/layers/meta-qcom \
    "
    
    # Add your overlay location to EXTRALAYERS
    # Make sure to have a conf/layers.conf in there
    EXTRALAYERS ?= "${WORKSPACE}/layers/meta-qcom-extras"
    
    BBLAYERS = " \
      ${WORKSPACE}/layers/meta-qcom-distro \
      ${EXTRALAYERS} \
      ${BASELAYERS} \
      ${BSPLAYERS} \
    "
    Copy to clipboard

## QA問題を確認する：バージョンの後退

同じワークスペースを `base` ビルドと `custom` ビルドに使用すると、以下のようなシグネチャが表示される場合があります。

ERROR: <package>-<version> do_packagedata_setscene: QA Issue: Package
    version for package wpa-supplicant-src went backwards which would break
    package feeds (from 0:2.10.qcom-r0 to 0:2.10-r0) [version-going-backwards]
    Copy to clipboard

例：

ERROR: wpa-supplicant-2.10-r0 do_packagedata_setscene: QA Issue: Package
    version for package wpa-supplicant-src went backwards which would break
    package feeds (from 0:2.10.qcom-r0 to 0:2.10-r0) [version-going-backwards]
    Copy to clipboard

この品質保証（QA）の問題は `meta-qcom-hwe` レイヤーにあるレシピの `custom` バリアントによって発生します。例えば、`wpa_supplicant` レシピのバージョンが `2.10.qcom` と設定されているとします。バージョンに含まれる `.qcom` は、`poky/meta/recipes-connectivity` のレシピと比較して、レシピが異なるソース・ツリーをビルドすることを示しています。

`custom` バリアントをビルドした後に `base` バリアントをビルドすると、BitBakeビルドシステムは、バージョンが `wpa-supplicant_2.10` から `wpa-supplicant-2.10.qcom` に後退していることを検出します。BitBakeは、このままパッケージフィードの作成に使用すると、この後退によって問題が発生する可能性があることを警告しています。

このQAの問題を回避したり、パッケージフィードを問題なくセットアップしたりするには、以下のいずれかを実行します。

- `base` と `custom` のビルドバリアント用に異なるワークスペースを作成します。
- 同じワークスペースに、以下のように別々のビルドディレクトリを作成します。

    | ビルドバリアント用 | ビルドディレクトリを作成するコマンド | 作成されたビルドディレクトリ |
    | --- | --- | --- |
    | `base` | MACHINE=qcs9100-ride-sx DISTRO=qcom-wayland QCOM_SELECTED_BSP=base \<br>        source setup-environment build-qcom-wayland-base<br>        Copy to clipboard | `/<workspace>/Qualcomm_Linux/build-qcom-wayland-base/` |
    | `custom` | MACHINE=qcs9100-ride-sx DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom \<br>        source setup-environment build-qcom-wayland-custom<br>        Copy to clipboard | `/<workspace>/Qualcomm_Linux/build-qcom-wayland-custom/` |

Last Published: Sep 17, 2025

[Previous Topic
ユーザーによるカスタマイズ](https://docs.qualcomm.com/bundle/publicresource/80-70018-27JA/topics/user_customizations.md) [Next Topic
参考資料](https://docs.qualcomm.com/bundle/publicresource/80-70018-27JA/topics/references.md)