1. U-Boot源码获取与版本选择
任务目标
从U-Boot官方Git仓库获取指定版本(v2024.01)的源码,并通过校验sha256哈希值验证下载源码的完整性。
环境准备
- 操作系统:Ubuntu 22.04(或其他Linux发行版)
- 依赖工具:
git、wget、sha256sum
实现步骤与代码
U-Boot官方仓库位于https://github.com/u-boot/u-boot。获取指定版本源码有两种方式:直接下载发布版tarball,或通过git克隆后切换到指定tag。以下采用git方式,便于后续版本切换与补丁管理。
# 1. 克隆仓库(含全部历史标签)
git clone https://github.com/u-boot/u-boot.git
cd u-boot
# 2. 查看所有可用版本标签,确认v2024.01存在
git tag -l "v2024*"
# 3. 切换到指定版本
git checkout v2024.01
# 4. 生成当前源码树的sha256校验值
find . -type f -exec sha256sum {} \; | sort -k2 | sha256sum
若需验证官方发布tarball的完整性,可下载官方签名文件进行校验:
# 下载官方发布的源码包及其校验文件
wget https://github.com/u-boot/u-boot/archive/refs/tags/v2024.01.tar.gz
wget https://github.com/u-boot/u-boot/releases/download/v2024.01/sha256sums.txt
# 校验sha256
sha256sum -c sha256sums.txt 2>&1 | grep "v2024.01.tar.gz"
验证方法与判定标准
执行以下命令验证源码获取是否成功:
# 验证git方式
cd u-boot
git describe --tags # 输出应为 v2024.01
git status # 应显示 "HEAD detached at v2024.01"
# 验证tarball方式
ls -lh v2024.01.tar.gz # 确认文件存在且大小合理(约200MB)
sha256sum -c sha256sums.txt 2>&1 | grep "v2024.01.tar.gz: OK"
通过条件:
git describe --tags输出v2024.01,且git status显示处于detached HEAD状态指向该tag;- tarball校验输出包含
OK字样,无FAILED警告; - 源码目录下存在顶层
Makefile和configs/目录,说明源码结构完整。
说明:git方式获取的源码树sha256值会因本地文件时间戳或git内部文件差异而与官方tarball不同,因此该值仅用于确认本地源码树在传输过程中未被篡改,不能与官方发布值直接比对。官方完整性验证以tarball方式的sha256sums.txt为准。