# 故障排除

## Docker

- **docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Docker 后台程序是否正在运行？**

    运行以下命令启动 Docker：

sudo systemctl start docker
        Copy to clipboard
- **Error response from daemon: Get “https://registry-1.docker.io/v2/”: http: server gave HTTP response to HTTPS client**

    添加内部 Docker registry 镜像（Qualcomm 网络的内部设置）
）。

Note

不要在 JSON 配置文件中包含 # 注释。使用制表符而不是空格和其他不可见的空格字符可能会破坏 JSON 配置文件的功能，还可能导致 `docker.service` 无法启动。

sudo vim /etc/docker/daemon.json
        # 在 /etc/docker/daemon.json 中添加类似如下内容的条目：
        {
           "registry-mirrors": ["https://docker-registry.qualcomm.com"]
        }
        Copy to clipboard

Note

或者，您可以在 [``](https://docs.qualcomm.com/doc/80-70015-254Y/topic/troubleshoot_sync_build_and_flash.html#id2)/etc/docker/daemon.json``中添加以下条目：

`"registry-mirrors": ["https://ccr.ccs.tencentyun.com"]`

    重启 Docker 服务，获取新设置。

sudo systemctl restart docker
        Copy to clipboard
- **Failed to download from https://download.docker.com**

Note

如果无法从 [https://download.docker.com](https://download.docker.com) 访问或下载，请执行以下命令安装 docker：

sudo apt update
        sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
        curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add –
        sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
        Copy to clipboard
- **Docker failure due to Virtualization not enabled**

    可以通过从 BIOS 启用虚拟化来解决此错误。
按照系统提供程序的特定说明启用
虚拟化。例如，以下步骤可以启用
系统提供程序提供的虚拟化：

    1. 当系统启动时，进入 BIOS。显示 **BIOS**
window。
    2. 切换到 **Advanced** 选项卡。
    3. 在 **CPU Configuration** 部分中，设置 **虚拟化启用技术**。
    4. 保存并退出。
    5. 重新启动系统。
- **Permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock**

    当 `qsc-cli` 在计算机上已经安装并且用户不是 Docker 组的一部分，会看到此提示：

sudo usermod -aG docker $USER
        newgrp docker
        Copy to clipboard

    若要确认你是 Docker 组的一部分，请运行以下
命令：

sudo grep /etc/group -e "docker"
        # 此命令显示属于 Docker 组的用户列表；必须包含您的用户 ID
        Copy to clipboard

    注销并重新登录以使访问生效。

# 你可以执行以下命令，检查你是否属于 Docker 组
        id -a
        # 此命令返回一个输出字符串，其中应包含 'docker'
        Copy to clipboard

## 同步

- **repo init or sync failure with except ManifestInvalidRevisionError, e:**

    安装 Repo 软件包后，如果出现以下情况，则可能会遇到此问题：

    - 如果您在 `/etc/gitconfig` 或
`~/.gitconfig` 到内部镜像重定向。
    - 如果内部镜像在镜像时具有分支的前缀。
例如，如果 `/etc/gitconfig` 重定向和内部
镜像有一个来自上游 git 的稳定分支，镜像为
`aosp/stable`，则在执行``repo init``时出现以下错误
:

[url "ssh://<internal mirror>:<port>/tools/repo"]
          insteadOf = https://android.googlesource.com/tools/repo
          insteadOf = https://gerrit.googlesource.com/git-repo
        Copy to clipboard

File "/local/mnt/workspace/<userid>/test_repo/.repo/repo/main.py", line 126
            except ManifestInvalidRevisionError, e:
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        SyntaxError：必须用括号括起多个异常类型
        Copy to clipboard

    解决此错误的步骤如下：

# 删除较旧的 .repo 文件夹。这将位于您之前运行"repo init"命令的目录中
        rm -rf .repo
        
        # 导出并运行 repo 命令以修复 repo 问题。REPO_REV 必须指向镜像
        # 从 https://gerrit.googlesource.com/git-repo 的上游 'stable' 分支创建分支
        export REPO_REV='aosp/stable'
        Copy to clipboard
- **Install repo “Server certificate verification failed”**

    如果您看到证书错误，例如“服务器证书”
验证失败。CAfile：无 CRL 文件：无’，将 git 配置为
使用 git 配置禁用 SSL 证书验证。讨论
与您的 IT 管理部门联系，以获得进一步的指导。您可以使用任一
禁用 SSL 的以下命令：

export GIT_SSL_NO_VERIFY=1
        git config --global http.sslverify false
        Copy to clipboard

    如果您所在的地区阻止了对 [``](https://docs.qualcomm.com/doc/80-70015-254Y/topic/troubleshoot_sync_build_and_flash.html#id5)android.googlesource``的访问，请尝试
以下配置从 CodeLinaro 镜像中获取 Repo：

git config --global url.https://git.codelinaro.org/clo/la/tools/repo.insteadOf https://android.googlesource.com/tools/repo
        Copy to clipboard
- **error.GitError: git config (‘–replace-all’, ‘color.ui’, ‘auto’): error: could not write config file /home/$USER/.gitconfig: Device or resource busy**

    当您的 gitconfig 未设置 UI 颜色配置时，会发生此错误
。默认情况下，此配置在 Git 1.8.4 和
更高版本。运行以下命令以启用彩色显示
在您的帐户中：

git config --global color.ui auto
        Copy to clipboard
- **[Error]: Failed preparing build for compilation. Error: Error setting docker credentials. Error: “Error saving credentials: error closing temp file: close /usr2/&lt;userid&gt;/.docker/config.json3322274803: disk quota exceededn**

    QSC CLI 在 home 目录中只使用几千字节 (kB)。清除从您的主目录中获取几 MB。
- **[Error]: The “path” argument must be of type string. Received undefined**

    **错误摘录**

qsc-cli download --workspace-path '/local/mnt/workspace/<userid>/K2L/QSC_CLI_BUILD/build' --product 'QCM6490.LE.1.0' --release 'r00270.1' --distribution 'Qualcomm_Linux.SPF.1.0|TEST|DEVICE|PUBLIC'
        [Info]: Starting qsc-cli version 0.0.0.7
        (node:2924765) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
        (Use `qsc-cli --trace-warnings ...` to show where the warning was created)
        [Info]: Checking if Workspace already exists
        [Info]: Saved updated Workspace info
        [Info]: Workspace Setup Completed
        [Error]: The "path" argument must be of type string. Received undefined
        Copy to clipboard

    **解决方案**

    如果 QSC CLI 与 Qlauncher 不兼容，则可能会发生此错误。
Qlauncher 将被弃用并替换为新的
QSC 的应用程序。如果你的工作区中有 Qlauncher，你
可以运行以下命令：

# 在 Qlauncher UI 中找到您的工作空间
        # 如果要保留使用 Qlauncher 创建的旧工作区，请备份以下元数据文件。
        # 这些仅适用于 Qlauncher 应用程序。您可以稍后再次重新安装该应用程序以进行访问。如果你不
        # 需要工作区，您可以使用以下命令删除此文件：
        mv /var/lib/qcom/data/qualcomm_launcher/workspaces2.json /var/lib/qcom/data/qualcomm_launcher/workspaces2.json.bak
        # 使用以下命令卸载 Qlauncher：
        qpm-cli --uninstall qualcomm_launcher
        Copy to clipboard
- **docker: Error response from daemon: error while creating mount source path ‘/usr2/&lt;userid&gt;/.netrc’: mkdir /usr2/&lt;userid&gt;/.netrc: permission denied**

    **错误摘录**

Updating files: 100% (64/64), done.
        2024-02-29T07:58:00: Sync Command Completed
        2024-02-29T07:58:01: Finished setup.
        [Info]: Setting Docker Credential
        2024-02-29T07:58:03: Authorization successful
        2024-02-29T07:58:03: Sync Command Starting
        2024-02-29T07:58:03: Running Sync Command for SyncOpenSourceCode - DownloadOpenSource
        docker：Error response from daemon: error while creating mount source path '/usr2/ramevelp/.netrc': mkdir /usr2/ramevelp/.netrc: permission denied.
        2024-02-29T07:58:04: Sync Command Failed
        [Error]: Failed SP Download with error: 2024-02-29T07:58:04: Sp Download failed.ExitCode: 126 Signal: 0  with errorcode 4
        [Error]: 2024-02-29T07:58:04: Sp Download failed.ExitCode: 126 Signal: 0
        Copy to clipboard

    **解决方案**

    这可能是由于 IT 设置 home 目录的方式所致。
与您的 IT 管理员合作，对您的主目录进行任何进一步的更改
。
- **fatal: couldn’t find remote ref refs/heads/qcom-linuxSTXkirkstone**

    如果在从 PDF 复制命令时看到任何垃圾字符，
删除垃圾字符或用适当的符号替换垃圾字符，以及
重新运行该命令。或者，您可以在 HTML 模式下打开指南
并使用 copy 命令选项。

    **示例**

# Replace the following command
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linuxSTXkirkstone -m qcom-6.6.38-QLI.1.2-Ver.1.1.xml
        # with
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m qcom-6.6.38-QLI.1.2-Ver.1.1.xml
        Copy to clipboard
- **pull access denied for 032693710300.dkr.ecr.us-west-2.amazonaws.com/stormchaser/ql-tool**

    运行 `qsc-cli` download 命令时可能会发生此错误。

    **错误摘录**
Unable to find image ‘032693710300.dkr.ecr.us-west-2.amazonaws.com/stormchaser/ql-tool:20.04.20231220102843864.9’ locally
docker：Error response from daemon: pull access denied for 032693710300.dkr.ecr.us-west-2.amazonaws.com/stormchaser/ql-tool, repository does not exist or may require ‘docker login’: denied: 您的授权令牌已过期。重新进行身份验证，然后重试。

    **解决方案**

rm -rf ~/.docker/config.json
        Copy to clipboard

    重新运行 `qsc-cli` 命令。

## 编译

- **ERROR: linux-kernel-qcom-6.6-r0 do\_menuconfig: No valid terminal found, unable to open devshell**

    运行 `bitbake linux-kernel-qcom -c menuconfig` 命令时触发错误。

    **错误摘录**

ERROR: linux-kernel-qcom-6.6-r0 do_menuconfig：No valid terminal found, unable to open devshell.
        Tried the following commands:
                tmux split-window -c "{cwd}" "do_terminal"
                tmux new-window -c "{cwd}" -n "linux-kernel-qcom Configuration" "do_terminal"
                xfce4-terminal -T "linux-kernel-qcom Configuration" -e "do_terminal"
                terminology -T="linux-kernel-qcom Configuration" -e do_terminal
        Copy to clipboard

    **解决方案**

sudo apt install screen
        sudo apt install tmux
        Copy to clipboard
- **NOTE: No reply from server in 30s**

    如果在重新运行
`qsc-cli compile` 或 `bitbake` 命令时看到这个错误，您可以尝试从你部分编译的工作区删除
`bitbake.lock`、 `bitbake.sock`、和 `hashserve.lock`
，然后重试编译。例如，如果您
正在编译 `qsc-cli`，然后这些文件位于
`<absoute_workspace_path>/DEV/LE.QCLINUX.1.0.r1/build-qcom-wayland`.

- **do\_fetch: BitBake Fetcher Error: FetchError(‘Unable to fetch URL from any source’)**

    这是间歇性的获取失败。检查是否有
网络/主机问题，否则可能是服务器正在创建
这个问题。您可以增加 `postBuffer` 和
`maxRequestBuffer` 文件中 `.gitconfig` 的设置，如果
获取 Git 存储库时发生错误。如果您正在使用
`qsc-cli`，那么这些配置已经由
`qsc-cli` 工具处理：

git config --global http.postBuffer 1048576000
        git config --global http.maxRequestBuffer 1048576000
        Copy to clipboard

    如果这些配置不起作用，您可以重试编译以获取
第一次克服这些间歇性错误。

    一些大型 git 项目可能会显示此错误。对于此类项目，一个
可行的选择是手动克隆，如下所示：

cd <workspace_path>/downloads/git2/
        git clone --bare --mirror https://<url>/<project-name>.git <workspace_path>/downloads/git2/<local-name>.git
        touch <workspace_path>/downloads/git2/<local-name>.git.done
        Copy to clipboard

    例如，当 `do_fetch` 失败
`qualcomm_linux-spf-1-0-le-qclinux-1-0-r1_api-linux_history_prebuilts.git`,
运行以下命令：

git clone --bare --mirror https://qpm-git.qualcomm.com/home2/git/revision-history/qualcomm_linux-spf-1-0-le-qclinux-1-0-r1_api-linux_history_prebuilts.git <workspace_path>/downloads/git2/qpm-git.qualcomm.com.home2.git.revision-history.qualcomm_linux-spf-1-0-le-qclinux-1-0-r1_api-linux_history_prebuilts.git
        touch <workspace_path>/downloads/git2/qpm-git.qualcomm.com.home2.git.revision-history.qualcomm_linux-spf-1-0-le-qclinux-1-0-r1_api-linux_history_prebuilts.git.done
        Copy to clipboard

    创建 `.done` 文件后，继续执行
`bitbake <image recipe>` 命令。完成初始构建后，
建议设置自己的 [下载目录](https://docs.yoctoproject.org/4.0.16/singleindex.html#term-DL_DIR)。
- **make[4]: /bin/sh: Argument list too long**

    当工作区的路径长度超过 90 个字符时，就会发生这种情况。
减少工作区路径长度以避免此失败。
- **kernel-source/arch/arm64/boot/dts/qcom/qcm6490-idp.dts:8:10: fatal error: dt-bindings/iio/qcom,spmi-adc7-pmk8350.h: No such file or directory**

    有问题 `qcom,spmi-adc7-pmk8350.h` 的文件是
内核源码
`<kernel-src>/include/dt-bindings/iio/qcom,spmi-adc7-pmk8350.h`。

    检查此文件的工作区，并确保环境是
正确初始化以选取此文件。在编译 dtbs 时，
内核构建系统运行 GCC 预处理器来替换
根据其定义的 DTS 文件中的 macros。The mentioned path is one such place
where several `includes` reside.

    检查你是否在git 中把 `core.symlinks` 设置为 `false`
配置。如果是，需将其设置为 true：

git config --global core.symlinks true
        Copy to clipboard
- **qpm-git.qualcomm.com.home2.git.revision-history.qualcomm\_linux-spf-1-0-le-qclinux-1-0-r1\_api-linux\_history\_prebuilts.git –progress failed with exit code 128, no output**

    128 是一个屏蔽错误，此错误需要进一步分类，因为它可能是您端的网络问题或访问 Qualcomm 或 upstream 镜像的真正问题
。作为此错误的变通方案，
请参阅 [BitBake Fetcher 错误](https://docs.qualcomm.com/doc/80-70015-254Y/topic/troubleshoot_sync_build_and_flash.html#do-fetch-error-1)。您可以进一步对其进行分类
按照后续说明在提取期间 dump 详细日志。

    默认情况下，Yocto git 获取未启用详细日志。到
为所有 Git 项目启用相同的功能，编辑 `local.conf` 文件和
将 `BB_GIT_VERBOSE_FETCH` 值更改为 **1**.详细日志记录
还为每个配方启用。例如，要启用 verbose
在诊断配方中记录和调试 `do_fetch()` 故障，执行
以下步骤：

    1. 编辑 `layers/meta-qcom-hwe/recipes-bsp/diag/daig_15.0.bb` 和
添加此行 `BB_GIT_VERBOSE_FETCH = "1"`。
    2. 使用以下方法清理以前下载的项目
`bitbake -fc cleanall diag`。
    3. 使用 `bitbake -fc fetch diag` 再次获取源码。
    4. 获取日志，并在诊断配方的工作目录下提供详细日志

        `build-qcom-wayland/tmp-glibc/work/qcm6490-qcom-linux/diag/15.0-r0/temp`。
    5. 通过此路径与 Qualcomm 支持团队共享 `log.do_fetch`。

Note

为所有配方启用 git 详细日志可以显著增加构建时间。建议仅根据需要在所需配方中启用它。
- **Failed SP Download with error: &lt;&gt; Sp Download failed.ExitCode: 128 Signal: 0 with errorcode 4**

    **错误摘录**

警告：重定向到 https://git-na-ssl.chipcode.qti.qualcomm.com/57f0ec058e47f7a82b2de7b95111c74a/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem.git/
        remote: Counting objects: 129803, done.
        remote: Compressing objects: 100% (114948/114948), done.
        fatal: write error: No space left on device5 GiB | 1.63 MiB/s
        fatal: fetch-pack: invalid index-pack output
        2024-03-02T14:32:18: Sync Command Failed
        [Error]: Failed SP Download with error: 2024-03-02T14:32:18: Sp Download failed.ExitCode: 128 Signal: 0 with errorcode 4
        [Error]: 2024-03-02T14:32:18: Sp Download failed.ExitCode: 128 Signal: 0
        Copy to clipboard

    **解决方案**

    错误日志指示设备上没有空间 **“致命：写入错误：设备上没有剩余空间”**.

    清理空间并重新触发。
- **File “/usr/lib/python3.10/locale.py”, line 620, in setlocale return \_setlocale(category, locale)locale.Error: unsupported locale setting**

    要解决此错误，可运行以下命令并重新编译：

sudo locale-gen en_US.UTF-8
        sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
        export LC_ALL=en_US.UTF-8
        export LANG=en_US.UTF-8
        Copy to clipboard
- **layer directories do not exist build-qcom-wayland/conf/../../layers/meta-qcom-qim-product-sdk**

    此错误是以下原因之一导致的：

    - Git clone `meta-qcom-qim-product-sdk` 未完成
成功。
    - `meta-qcom-qim-product-sdk` 图层未导出至
EXTRALAYERS。

    **错误摘录**

xxxx@xxxx：~/github_un/build-qcom-wayland$ bitbake qcom-multimedia-image
        ERROR: The following layer directories do not exist:
        ERROR: <workspace_path>/build-qcom-wayland/conf/../../layers/meta-qcom-qim-product-sdk
        ERROR: 请查看 <workspace_path>/build-qcom-wayland/conf/bblayers.conf 中的 BBLAYERS
        Copy to clipboard

    **解决方案**

    - 删除 `build-qcom-wayland` 目录。
    - 重新运行 [构建 QIMP SDK 镜像](https://docs.qualcomm.com/doc/80-70015-254Y/topic/github_workflow_unregistered_users.html#section-lrb-1nd-fbc) 中的命令。
- **failed: database disk image is malformed. abort()ing pseudo client by server request**

    Pseudo 工具在处理文件系统操作时遇到路径不匹配和数据库损坏问题。当 Pseudo 模拟 Yocto 项目中的文件系统操作时，在处理文件路径和权限的过程中可能会出现问题。

    这是 [Yocto community](https://wiki.yoctoproject.org/wiki/Pseudo_Abort) 中的一个已知问题。

    **解决方案**

    运行以下命令：

rm -rf <workspace_path>/build-qcom-robotics-ros2-humble/tmp-glibc
        bitbake -c cleanall pseudo-native & bitbake pseudo-native
        ../qirp-build qcom-robotics-full-image
        Copy to clipboard
- **pyinotify.WatchManagerError: No space left on device (ENOSPC)**

    此错误在编译过程中触发。

    **解决方案**

    运行以下命令：

sudo su
        echo 1048576 > /proc/sys/fs/inotify/max_user_watches
        Copy to clipboard
- **方法 tar：ReadError（’截断标头’）**

    **错误摘录**
[Info]: 回溯（最近一次调用）：
File “/local/mnt/workspace/qsc-cli/Qworkspace\_NM\_QIRPSDK/DEV/ADSP.HT.5.5.c8/adsp\_proc/qsh\_api/build/config\_nanopb\_dependency.py”, line 130, in &lt;module&gt; main(sys.argv[1:])
File “/local/mnt/workspace/qsc-cli/Qworkspace\_NM\_QIRPSDK/DEV/ADSP.HT.5.5.c8/adsp\_proc/qsh\_api/build/config\_nanopb\_dependency.py”, line 61, in main tar\_file = tarfile.open(in\_file, ‘r’)
File “/pkg/qct/software/qswat/ubuntu/20.04/python/external/python3.10.2/lib/python3.10/tarfile.py”, line 1620, in open raise ReadError(f”file could not be opened successfully:n{error\_msgs\_summary}”)
ReadError：文件无法成功打开：
- 方法 gz：ReadError（’不是 gzip 文件’）
- 方法 BZ2：ReadError（’不是 bzip2 文件’）
- 方法 xz：CompressionError（’lzma 模块不可用’）
- 方法 tar：ReadError（’截断标头’）

    **解决方案**
清理生成目录，然后重试编译。

## 刷写

无已知错误。

Last Published: Jan 26, 2026

[Previous Topic
使用 PCAT 刷写软件](https://docs.qualcomm.com/bundle/publicresource/80-70015-254Y/topics/flash_images.md) [Next Topic
更多操作](https://docs.qualcomm.com/bundle/publicresource/80-70015-254Y/topics/how_to.md)