mirror of
https://github.com/Dichgrem/GKI-build.git
synced 2025-12-16 13:42:00 -05:00
fix:path
This commit is contained in:
98
.github/workflows/build-gki-kernel.yml
vendored
98
.github/workflows/build-gki-kernel.yml
vendored
@@ -57,7 +57,7 @@ jobs:
|
|||||||
zstd rsync ca-certificates wget \
|
zstd rsync ca-certificates wget \
|
||||||
pahole dwarves zip
|
pahole dwarves zip
|
||||||
|
|
||||||
# 安装更新的GCC以满足内核版本要求
|
# 安装GCC以满足内核版本要求
|
||||||
sudo apt-get install -y gcc-9 g++-9
|
sudo apt-get install -y gcc-9 g++-9
|
||||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
|
||||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
|
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
|
||||||
@@ -79,12 +79,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd $GITHUB_WORKSPACE/kernel
|
cd $GITHUB_WORKSPACE/kernel
|
||||||
|
|
||||||
echo "=== 下载 ARM GCC 工具链 ==="
|
|
||||||
# 下载ARM GCC工具链
|
|
||||||
git clone --depth=1 \
|
|
||||||
https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9.git \
|
|
||||||
./toolchains/gcc-arm-4.9
|
|
||||||
|
|
||||||
echo "=== 下载 Clang 工具链 ==="
|
echo "=== 下载 Clang 工具链 ==="
|
||||||
# 创建 Clang 目录
|
# 创建 Clang 目录
|
||||||
mkdir -p ./toolchains/clang-14
|
mkdir -p ./toolchains/clang-14
|
||||||
@@ -120,42 +114,6 @@ jobs:
|
|||||||
# 返回 kernel 目录
|
# 返回 kernel 目录
|
||||||
cd $GITHUB_WORKSPACE/kernel
|
cd $GITHUB_WORKSPACE/kernel
|
||||||
|
|
||||||
echo "=== 验证工具链二进制文件 ==="
|
|
||||||
# 验证关键工具存在
|
|
||||||
echo "检查 Clang 二进制文件..."
|
|
||||||
if [ -f "./toolchains/clang-14/bin/clang" ]; then
|
|
||||||
echo "✓ clang 存在"
|
|
||||||
ls -la ./toolchains/clang-14/bin/clang
|
|
||||||
else
|
|
||||||
echo "✗ clang 不存在,检查目录结构:"
|
|
||||||
find ./toolchains/clang-14 -name "clang" -type f 2>/dev/null || echo "未找到 clang 二进制文件"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "检查 aarch64-linux-gnu 工具..."
|
|
||||||
if ls ./toolchains/clang-14/bin/aarch64-linux-gnu-* 1> /dev/null 2>&1; then
|
|
||||||
echo "✓ aarch64-linux-gnu 工具存在"
|
|
||||||
ls -la ./toolchains/clang-14/bin/aarch64-linux-gnu-* | head -3
|
|
||||||
else
|
|
||||||
echo "✗ aarch64-linux-gnu 工具不存在"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "检查 LLVM 工具..."
|
|
||||||
if ls ./toolchains/clang-14/bin/llvm-* 1> /dev/null 2>&1; then
|
|
||||||
echo "✓ LLVM 工具存在"
|
|
||||||
ls -la ./toolchains/clang-14/bin/llvm-* | head -3
|
|
||||||
else
|
|
||||||
echo "✗ LLVM 工具不存在"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "检查 ARM GCC 工具..."
|
|
||||||
if ls ./toolchains/gcc-arm-4.9/bin/arm-linux-androideabi-* 1> /dev/null 2>&1; then
|
|
||||||
echo "✓ ARM GCC 工具存在"
|
|
||||||
ls -la ./toolchains/gcc-arm-4.9/bin/arm-linux-androideabi-* | head -3
|
|
||||||
else
|
|
||||||
echo "✗ ARM GCC 工具不存在"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=== 最终目录结构 ==="
|
echo "=== 最终目录结构 ==="
|
||||||
echo "kernel/"
|
echo "kernel/"
|
||||||
ls -la ./
|
ls -la ./
|
||||||
@@ -235,8 +193,8 @@ jobs:
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Configure compression algorithm
|
# Configure compression algorithm
|
||||||
if [ "${{ inputs.zram_algorithm }}" = "zstd" ]; then
|
if [ "${{ inputs.zram_algorithm }}" = "zstd" ]; then
|
||||||
cat >> myconfig << EOF
|
cat >> myconfig << EOF
|
||||||
CONFIG_CRYPTO_ZSTD=y
|
CONFIG_CRYPTO_ZSTD=y
|
||||||
CONFIG_ZRAM_DEF_COMP="zstd"
|
CONFIG_ZRAM_DEF_COMP="zstd"
|
||||||
CONFIG_ZRAM_DEF_COMP_ZSTD=y
|
CONFIG_ZRAM_DEF_COMP_ZSTD=y
|
||||||
@@ -293,17 +251,19 @@ jobs:
|
|||||||
export KCONFIG_CONFIG=$PWD/myconfig
|
export KCONFIG_CONFIG=$PWD/myconfig
|
||||||
|
|
||||||
# 设置工具链路径变量
|
# 设置工具链路径变量
|
||||||
CLANG_PATH=$GITHUB_WORKSPACE/kernel/toolchains/clang-14/bin
|
export CLANG_PATH=$GITHUB_WORKSPACE/kernel/toolchains/clang-14/bin
|
||||||
GCC_ARM_PATH=$GITHUB_WORKSPACE/kernel/toolchains/gcc-arm-4.9/bin
|
export PATH=$CLANG_PATH:$PATH
|
||||||
|
|
||||||
|
|
||||||
# 验证所有必需的工具
|
# 验证所有必需的工具
|
||||||
echo "=== Verifying required tools ==="
|
echo "=== 验证编译器路径 ==="
|
||||||
$CLANG_PATH/clang --version | head -2
|
which clang
|
||||||
$CLANG_PATH/aarch64-linux-gnu-gcc --version | head -1 || echo "aarch64-linux-gnu-gcc not found"
|
clang --version
|
||||||
$GCC_ARM_PATH/arm-linux-androideabi-gcc --version | head -1
|
echo "=== 验证 clang 是否支持 --target ==="
|
||||||
test -f $CLANG_PATH/ld.lld && echo "ld.lld found" || echo "ld.lld not found"
|
clang --target=aarch64-linux-gnu -v -c /dev/null -o /dev/null || echo "❌ 不支持"
|
||||||
gcc --version | head -1
|
echo "=== 验证 binutils 是否可用 ==="
|
||||||
echo "================================"
|
which llvm-objcopy
|
||||||
|
which llvm-strip
|
||||||
|
|
||||||
# 清理构建目录
|
# 清理构建目录
|
||||||
rm -rf out
|
rm -rf out
|
||||||
@@ -314,20 +274,22 @@ jobs:
|
|||||||
|
|
||||||
# 编译内核
|
# 编译内核
|
||||||
make -j$(nproc) O=out WERROR=0 \
|
make -j$(nproc) O=out WERROR=0 \
|
||||||
KCFLAGS="-Wno-error=frame-larger-than= -O3 -pipe" \
|
CC=clang \
|
||||||
KCPPFLAGS="-DCONFIG_CC_OPTIMIZE_FOR_PERFORMANCE" \
|
AR=llvm-ar \
|
||||||
HOSTCFLAGS="-O3 -pipe" \
|
LD=ld.lld \
|
||||||
HOSTCXXFLAGS="-O3 -pipe" \
|
NM=llvm-nm \
|
||||||
NM=$CLANG_PATH/llvm-nm \
|
OBJCOPY=llvm-objcopy \
|
||||||
OBJCOPY=$CLANG_PATH/llvm-objcopy \
|
OBJDUMP=llvm-objdump \
|
||||||
LD=$CLANG_PATH/ld.lld \
|
STRIP=llvm-strip \
|
||||||
CROSS_COMPILE=$CLANG_PATH/aarch64-linux-gnu- \
|
HOSTCC=clang \
|
||||||
CROSS_COMPILE_ARM32=$GCC_ARM_PATH/arm-linux-androideabi- \
|
HOSTCXX=clang++ \
|
||||||
CC=$CLANG_PATH/clang \
|
CROSS_COMPILE= \
|
||||||
AR=$CLANG_PATH/llvm-ar \
|
CROSS_COMPILE_ARM32=arm-linux-androideabi- \
|
||||||
OBJDUMP=$CLANG_PATH/llvm-objdump \
|
KCFLAGS="--target=aarch64-linux-gnu -O3 -pipe -Wno-error=frame-larger-than=" \
|
||||||
STRIP=$CLANG_PATH/llvm-strip \
|
KCPPFLAGS="-DCONFIG_CC_OPTIMIZE_FOR_PERFORMANCE" \
|
||||||
2>&1 | tee out/error.log
|
HOSTCFLAGS="-O3 -pipe" \
|
||||||
|
HOSTCXXFLAGS="-O3 -pipe" \
|
||||||
|
2>&1 | tee out/error.log
|
||||||
|
|
||||||
# 记录结束时间
|
# 记录结束时间
|
||||||
endtime=$(date +'%Y-%m-%d %H:%M:%S')
|
endtime=$(date +'%Y-%m-%d %H:%M:%S')
|
||||||
|
|||||||
@@ -2,27 +2,27 @@ import subprocess
|
|||||||
|
|
||||||
# 要检查和安装的软件包列表
|
# 要检查和安装的软件包列表
|
||||||
packages = [
|
packages = [
|
||||||
"bc",
|
"bc", # 任意精度计算器,内核 Makefile 中常用于数学计算
|
||||||
"bison",
|
"bison", # 语法分析器生成工具,用于构建内核或其他复杂项目
|
||||||
"build-essential",
|
"build-essential", # 包含 gcc/g++/make 等构建 C/C++ 项目的基础工具
|
||||||
"cpio",
|
"cpio", # 用于生成 initramfs 等归档格式
|
||||||
"curl",
|
"curl", # 命令行工具,用于通过 URL 下载数据(支持 HTTPS)
|
||||||
"flex",
|
"flex", # 词法分析器生成工具,常与 bison 搭配使用
|
||||||
"git",
|
"git", # 用于克隆源码仓库,如 Linux 内核、AOSP 等
|
||||||
"libncurses-dev",
|
"libncurses-dev", # 支持终端图形界面,如 `make menuconfig` 内核配置工具
|
||||||
"libssl-dev",
|
"libssl-dev", # OpenSSL 的开发库,用于支持加密通信或模块
|
||||||
"libelf-dev",
|
"libelf-dev", # 用于处理 ELF 格式的文件,如内核镜像、调试信息等
|
||||||
"lzop",
|
"lzop", # 快速压缩工具,用于内核镜像/initramfs 的压缩
|
||||||
"python3",
|
"python3", # Python 解释器,许多构建/打包脚本使用 Python 编写
|
||||||
"unzip",
|
"unzip", # 用于解压 .zip 格式压缩包,常用于处理资源或模块
|
||||||
"xz-utils",
|
"xz-utils", # 支持 .xz 格式压缩/解压,常见于内核源码压缩包
|
||||||
"zstd",
|
"zstd", # 高效压缩工具,内核支持的现代压缩算法
|
||||||
"rsync",
|
"rsync", # 高效文件同步工具,常用于备份或同步构建产物
|
||||||
"ca-certificates",
|
"ca-certificates", # 安全证书库,确保 curl/wget 能安全访问 HTTPS 资源
|
||||||
"wget",
|
"wget", # 类似 curl 的命令行下载工具,适合简单文件下载
|
||||||
"pahole",
|
"pahole", # 用于生成 BTF/DWARF 信息,优化内核结构体布局(eBPF等)
|
||||||
"dwarves",
|
"dwarves", # 包含 pahole 工具,用于调试和结构体分析
|
||||||
"zip",
|
"zip", # 用于创建 .zip 压缩包,如打包 AnyKernel3 项目等
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user