Files
mirror_server/scripts/setup-qemu.sh
T

62 lines
1.7 KiB
Bash

#!/bin/bash
# ============================================
# HYC下载站 v2.3 - QEMU 仿真支持设置
# 用于在 x86_64 上构建 ARM 镜像
# ============================================
set -e
echo "========================================"
echo " QEMU 仿真支持设置"
echo "========================================"
# 检查是否需要设置
if [ "$(uname -m)" = "x86_64" ]; then
echo "检测到 x86_64 平台"
echo "将启用 ARM/i386 仿真支持"
fi
# 启用 QEMU 仿真
echo
echo "[1/3] 检查 QEMU ..."
# 注册 ARM 二进制格式
if [ -f /usr/bin/qemu-arm-static ]; then
echo "✓ qemu-arm-static 已安装"
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes || true
elif [ -f /usr/bin/qemu-arm ]; then
echo "✓ qemu-arm 已安装"
else
echo "⚠ QEMU 未安装,正在安装..."
apt-get update && apt-get install -y qemu-user-static || \
yum install -y qemu-user-static || \
apk add --no-cache qemu-arm qemu-i386
fi
# 设置 binfmt-misc
echo
echo "[2/3] 注册二进制格式..."
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 2>/dev/null || \
echo " (可能需要手动配置)"
echo
echo "[3/3] 验证设置..."
echo "可用的仿真架构:"
for arch in arm arm64 i386; do
if [ -f "/usr/bin/qemu-$arch-static" ] || [ -f "/usr/bin/qemu-$arch" ]; then
echo " ✓ $arch"
else
echo " ✗ $arch"
fi
done
echo
echo "========================================"
echo "✓ QEMU 设置完成"
echo "========================================"
echo
echo "现在可以构建多架构镜像:"
echo " ./scripts/build-multiarch.sh"
echo