📜  yocto 如何查找 repo 的校验和 (1)

📅  最后修改于: 2023-12-03 15:21:21.637000             🧑  作者: Mango

Yocto 如何查找 repo 的校验和

在 Yocto 项目中,使用 BitBake 构建系统来构建 Linux 发行版。当构建软件包时,BitBake 会下载源代码和二进制文件,并使用校验和来验证其完整性。这有助于确保构建过程的一致性和安全性。

查找校验和的方法
  1. 在 Yocto 构建目录中,每个软件包的校验和信息都会存储在文件 <软件包名称>.inc 中,该文件位于路径 tmp/work/<机器架构>/<软件包名称>/<版本号>/recipe-sysroot-native/etc/recipes/<软件包名称>
    • 例如,对于软件包 hello-world 的版本 1.0,校验和信息将存储在文件 tmp/work/<机器架构>/hello-world/1.0/recipe-sysroot-native/etc/recipes/hello-world/hello-world.inc
  2. 打开对应软件包的 .inc 文件,你可以在其中找到一个名为 SRC_URI 的变量。该变量包含了软件包的下载链接和校验和等信息。
    • 例如,SRC_URI = "http://example.com/hello-world-1.0.tar.gz \ file://checksums.ini;md5=abcd1234efgh5678ijkl9012"
理解校验和

校验和是一种用来验证数据完整性的算法。Yocto 使用不同的算法来计算校验和,常见的有 MD5、SHA-1 和 SHA-256。校验和通常以哈希值的形式表示。当你下载软件包时,可以通过计算下载文件的校验和并与 .inc 文件中的校验和进行比较,来确保文件未被篡改或损坏。

示例代码

以下是一个用于查找校验和的示例代码片段:

1. 通过终端进入 Yocto 构建目录。

2. 找到要查找校验和的软件包的 `.inc` 文件路径:
   `cd tmp/work/<机器架构>/<软件包名称>/<版本号>/recipe-sysroot-native/etc/recipes/<软件包名称>`

3. 打开 `.inc` 文件,查找 `SRC_URI` 变量:
   `vi <软件包名称>.inc`

4. 在打开的文件中,查找 `SRC_URI` 行并找到校验和信息。

5. 复制下载链接和校验和等信息,然后使用合适的工具计算下载文件的校验和:
   * 对于 MD5,使用命令:`md5sum <下载文件路径>`
   * 对于 SHA-1,使用命令:`sha1sum <下载文件路径>`
   * 对于 SHA-256,使用命令:`sha256sum <下载文件路径>`

6. 确保计算得到的校验和与 `.inc` 文件中的校验和一致。

7. 如果一致,则说明下载文件完整且未被篡改或损坏。

这是一个示例,你需要根据实际情况进行相应的调整。

希望以上信息对你有所帮助,如果有其他问题,请随时提问!