Qualcomm Robotics RB5 平台软件用户指南(18)
6.12 收集 RAM 转储
当设备遇到严重异常时,RAM 转储会捕获系统状态。可以提取 RAM 转储,然后通过工具进行分析,以识别问题发生时的调用堆栈和硬件的其他状态信息。
先决条件
HLOS (Linux) 部分必须使用内核的调试配置来构建。
收集 RAM 转储
以下过程在设备崩溃时使用 Qualcomm PCAT 工具(推荐)或 Qualcomm 产品支持工具 (QPST) 收集 RAM 转储。
-
确保启用以下参数。
下载模式echo 1 > /sys/module/restart/parameters/download_mode
在某些新版本上,它由以下控制 sysfsnode。
echo 1 > /sys/module/msm_poweroff/parameters/download_mode
-
启动 QPST 工具。
每当设备崩溃时,它就会进入 RAM 转储模式 (900E)。在 QPST 中,显示绿色指示器表示正在下载转储。
转至“帮助” > “打开日志文件目录” > “Sahara”以从 PORT_COM 收集转储。
6.12.1 崩溃收集插件
PCAT 可用于 RAM 转储收集。 PCAT 的崩溃收集功能允许您从设备下载内存转储。设备崩溃后,设备进入崩溃状态,PCAT 尝试下载内存转储映像。崩溃收集插件在用户界面上显示有以下功能:

崩溃收集的各个字段如下:
领域 | 描述 |
---|---|
在所有设备上启用自动崩溃收集 | 在所有连接的 Qualcomm 设备上启用自动内存转储收集。多个 PCAT 应用程序实例上不允许自动内存转储收集。 |
收集内存转储后自动重新启动设备 | 收集设备的内存转储后触发设备重新启动。 |
跳过 8K 内存转储收集 | 跳过设备(MDM、MSM、APQ)的 8K 内存转储。 |
跳过9K内存转储收集 | 跳过 9K 内存转储。 |
内存转储路径 | 表示下载内存转储的路径。默认路径:%ProgramData%\Qualcomm\PCAT\AddOns\CrashCollection\MemoryDumps。转储与设备序列 ID 和时间戳一起存储在内存转储路径下。 |
内存转储进度 | 描述从设备复制设备内存转储的状态。 |
使用唯一的时间戳文件夹保存每个内存转储 | 在内存转储路径中使用唯一的时间戳文件夹保存每个内存转储 |
下载内存转储
- 在产品配置助手工具界面中,在设备选择菜单 中连接设备,如下所示。
- 打开 PCAT。将出现以下打开设备选择对话框。

3.选择一个设备并单击“连接”。状态栏根据设备的描述和芯片组名称显示绿色。

- 在绿色状态下,设备连接到当前的 PCAT 实例,在中灰色状态下,设备连接到另一个 PCAT 实例。

- 选择崩溃收集插件和其他所需选项。
- 单击“浏览”选择内存转储路径。
- 单击收集。
笔记
当内存转储正在进行时,“收集”按钮将被禁用。

笔记
PCAT 应用程序仅在设备进入崩溃模式时收集内存转储。
6.12.1 崩溃收集参数
以下参数描述了可用于崩溃收集的选项。
- 插件:插件或附加组件名称
- 设备:设备描述或 ID。
- 设备类型 - [可选]:设备芯片类型、MSM 或 MDM
- Dump Dir:存储内存转储的路径
- Reset:内存转储收集后重置设备
用法
- PCAT -Plugin “Crash Collection” -Device “Qualcomm USB Composite Device 9091 (0017)” -DumpDir “C:\Temp\MemoryDumps” -Reset True
- PCAT -Plugin “Crash Collection” -Device “Qualcomm USB Composite Device:QUSB_BULK_SN:F3B21573” -DumpDir “/tmp/PCAT/MemoryDumps” -Reset True
- PCAT -Plugin “Crash Collection” -Device “0017” -DumpDir “C:\Temp\MemoryDumps” -Reset True
$ PCAT -Help “Crash Collection”
USAGE: PCAT -Plugin <ID/NAME> -Device <ID/DESC> [-DeviceType <MDM/MSM>] -<COMMAND> args
Commands:
-DUMPDIR [Required] :Directory path for the crash logs/RAM Dumps.
-RESET [Optional] :Reset device after crash collection. Default Value: True.
Example:
PCAT -PLUGIN "Crash Collection" -DEVICE "Qualcomm USB Composite Device 9091 (0017)" -DUMPDIR "C:\TEMP" -RESET true
PCAT -PLUGIN CC -DEVICE 0017 -DUMPDIR "C:\TEMP" -RESET true
7 配置安全设置
7.1 验证 dm 验证
要验证dm-verity,请执行以下操作,
adb shell
cat /proc/cmdline
检查系统是否安装dm-0为只读。
mount
/dev/dm-0 on / type ext4 (ro,relatime,data=ordered)
验证重新安装。系统保持只读状态。
mount -o remount,rw /
touch file.txt
The above should fail
touch system/file.txt
The above should fail
检查串行/dmesg日志中是否有以下消息。
device-mapper: init: attempting early device configuration.
device-mapper: android-verity: Signature verification success
device-mapper: init: dm-0 is ready
7.2 禁用 dm 验证
要禁用dm-verity,请执行以下操作:
运行
运行以下命令:
adb disable-verity
在运行时禁用dm-verity仅用于调试目的。禁用并调试完成后dm-verity,无法重新启用,必须重新刷新系统镜像。
要重新刷新系统映像,请使用以下命令。
adb disable-verity
adb reboot
adb root
adb remount
adb shell
mount -o remount,rw /
touch file.txt
touch system/file.txt
编译时间
在poky/meta-qti-bsp/conf/distro/include/qti-distro-base.inc文件中注释如下:
DISTRO_FEATURES += "dm-verity”
笔记
在编译时禁用dm-verity只是为了方便开发阶段。在生产版本中,dm-verity不得禁用它们。
7.3 配置基于文件的加密分区
Ubuntu
基于文件的加密 (FBE) 在基于 Linux Ubuntu 的系统上不受支持。
笔记
有关 Linux Ubuntu 上基于文件的安全机制的信息,请参阅https://ubuntu.com/server/docs/security-apparmor。
嵌入式Linux
Linux 嵌入式系统默认启用基于文件的加密。
启用FBE
根据文件中的以下配置更改的要求启用或禁用 FBE。
poky/meta-qti-bsp/conf/machine/qrb5165-rb5.conf file make the following change:
MACHINE_FEATURES += file-based-encryption
重新编译应用程序组件并将其闪存到 Linux 嵌入式系统上
7.4 安全启动设置
警告:
安全启动启用是一次性的、不可逆转的过程。它涉及熔断器的熔断,应格外小心。最好在指导下启用安全启动。
启用安全启动后,使用 VIP 程序刷新设备。 QFIL 和 fastboot 不起作用。
请参阅以下文档了解更多信息。
- QRB5165 软件移植指南(80-88500-1)
- SM8250/SM8250P 安全启动启用用户指南(80-PK882-9)
- Qualcomm Firehose 验证图像编程 (VIP) (80-P9116-1)