fix(install): Lenovo Error 1962 boot fix + wiki updates (v1.6.7.12)

Fixes:
- Add fallback EFI bootloader at /EFI/BOOT/BOOTX64.EFI for Lenovo/HP/Dell
- Add --slipstream flag to build-live-usb.sh (CI fix)
- Fix banner alignment in secubox-flash-disk
- Update kiosk launcher to v1.6.7.12

Wiki:
- Use generic /releases/latest/download/ URLs (no more hardcoded versions)
- Fix script paths (scripts/ → image/)
- Update all languages (EN, FR, DE, ZH)

Tested: Lenovo hardware install - PASSED

Closes #26

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-04-14 10:05:03 +02:00
parent 0ef9e7cc8e
commit 6735b7f40a
10 changed files with 71 additions and 31 deletions

View File

@ -1,11 +1,30 @@
# WIP — Work In Progress
*Mis à jour : 2026-04-14 (Session 56)*
*Mis à jour : 2026-04-14 (Session 57)*
---
## 🔄 En cours (Session 56)
## 🔄 En cours (Session 57)
*Rien en cours — Kiosk stable sur v1.6.7.11*
### v1.6.7.12 — Lenovo Boot Fix (GitHub Issue #26)
**Status:** ✅ READY FOR RELEASE
#### Test Results
- ✅ **Kiosk on real hardware** — Works! (slow startup but functional)
- ✅ **Lenovo install test** — PASSED! Error 1962 fix confirmed working
- ❌ **VBox kiosk** — Still console-only (VM-specific issue #27)
#### Fixes Applied
1. ✅ **Lenovo Error 1962** — Added fallback EFI bootloader at `/EFI/BOOT/BOOTX64.EFI`
2. ✅ **CI `--slipstream` flag** — Added to `build-live-usb.sh` argument parser
3. ✅ **Alignment fix** — Fixed banner alignment in secubox-flash-disk
4. ✅ **Version bump** — Kiosk launcher updated to v1.6.7.12
#### Files Modified
- `image/build-live-usb.sh` — slipstream flag + secubox-install fallback boot
- `image/sbin/secubox-flash-disk` — fallback EFI bootloader + alignment fix
- `image/sbin/secubox-kiosk-launcher` — version bump + alignment fix
- `image/build-ebin-live-usb.sh` — version bump
---

View File

@ -10,7 +10,7 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
# ── Version & Build Info ──────────────────────────────────────────
SECUBOX_VERSION="1.6.7.8"
SECUBOX_VERSION="1.6.7.12"
BUILD_DATE=$(date '+%Y-%m-%d')
BUILD_TIMESTAMP=$(date '+%Y-%m-%d %H:%M')

View File

@ -14,7 +14,7 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
# ── Version & Build Info ──────────────────────────────────────────
SECUBOX_VERSION="1.6.7.11"
SECUBOX_VERSION="1.6.7.12"
BUILD_TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
BUILD_DATE=$(date '+%Y%m%d')
@ -53,6 +53,8 @@ Usage: sudo bash build-live-usb.sh [OPTIONS]
--no-kiosk Disable GUI kiosk mode (enabled by default)
--no-persistence Don't include persistent storage partition
--no-compress Skip gzip compression (faster, for local testing)
--slipstream Include .deb packages from output/debs/ (default: enabled)
--no-slipstream Don't include local .deb packages
--preseed FILE Include preseed config archive
--embed-image IMG Embed image for disk flashing (creates installer USB)
--overlay Use advanced overlay partition layout (v1.6.7.2+)
@ -86,6 +88,8 @@ while [[ $# -gt 0 ]]; do
--no-kiosk) INCLUDE_KIOSK=0; shift ;;
--no-persistence) INCLUDE_PERSISTENCE=0; shift ;;
--no-compress) NO_COMPRESS=1; shift ;;
--slipstream) SLIPSTREAM_DEBS=1; shift ;;
--no-slipstream) SLIPSTREAM_DEBS=0; shift ;;
--preseed) PRESEED_FILE="$2"; shift 2 ;;
--embed-image) EMBED_IMAGE="$2"; shift 2 ;;
--overlay) OVERLAY_MODE=1; shift ;;
@ -2165,6 +2169,15 @@ mount --bind /sys "$MNT/sys"
chroot "$MNT" grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=SecuBox --recheck 2>/dev/null || \
warn "EFI GRUB install failed (may be BIOS system)"
# Create fallback bootloader for Lenovo/HP/Dell compatibility (Error 1962 fix)
# These systems only look at /EFI/BOOT/BOOTX64.EFI
if [[ -f "$MNT/boot/efi/EFI/SecuBox/grubx64.efi" ]]; then
mkdir -p "$MNT/boot/efi/EFI/BOOT"
cp "$MNT/boot/efi/EFI/SecuBox/grubx64.efi" "$MNT/boot/efi/EFI/BOOT/BOOTX64.EFI"
ok "Fallback EFI bootloader created (Lenovo/HP/Dell compatible)"
fi
chroot "$MNT" grub-install --target=i386-pc "$TARGET" 2>/dev/null || \
warn "BIOS GRUB install failed (may be EFI-only)"
chroot "$MNT" update-grub

View File

@ -328,7 +328,7 @@ fi
echo ""
echo -e "${BOLD}╔═══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${BOLD}║ SecuBox Disk Flasher v${VERSION} ║${NC}"
echo -e "${BOLD}║ SecuBox Disk Flasher v${VERSION} ║${NC}"
echo -e "${BOLD}╠═══════════════════════════════════════════════════════════════╣${NC}"
echo -e "${BOLD}║${NC} Source Image : ${CYAN}$(basename "$IMAGE_PATH")${NC}"
echo -e "${BOLD}║${NC} Image Size : ${IMAGE_SIZE_MB} MB $([[ "$IMAGE_PATH" == *.gz ]] && echo "(compressed)")"
@ -512,6 +512,14 @@ if mount "$ROOT_PART" "$MOUNT_ROOT" 2>/dev/null; then
warn "UEFI GRUB install failed"
fi
# Create fallback bootloader for Lenovo/HP/Dell compatibility (Error 1962 fix)
# These systems only look at /EFI/BOOT/BOOTX64.EFI
if [[ -f "$MOUNT_ROOT/boot/efi/EFI/SecuBox/grubx64.efi" ]]; then
mkdir -p "$MOUNT_ROOT/boot/efi/EFI/BOOT"
cp "$MOUNT_ROOT/boot/efi/EFI/SecuBox/grubx64.efi" "$MOUNT_ROOT/boot/efi/EFI/BOOT/BOOTX64.EFI"
ok "Fallback EFI bootloader created (Lenovo/HP/Dell compatible)"
fi
# Verify EFI boot entry was created
if command -v efibootmgr &>/dev/null; then
if efibootmgr -v 2>/dev/null | grep -qi "secubox"; then
@ -590,7 +598,7 @@ fi
echo ""
echo -e "${GREEN}${BOLD}╔═══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}${BOLD}║ Flash Complete! ║${NC}"
echo -e "${GREEN}${BOLD}║ Flash Complete! ║${NC}"
echo -e "${GREEN}${BOLD}╚═══════════════════════════════════════════════════════════════╝${NC}"
echo ""
echo "SecuBox has been flashed to ${TARGET_DEVICE}."

View File

@ -624,12 +624,12 @@ main() {
# Console banner FIRST - visible to user before X starts
echo ""
echo "╔═══════════════════════════════════════════════════════════╗"
echo "║ SecuBox Kiosk Launcher v3.2 (1.6.7.11) ║"
echo "║ SecuBox Kiosk Launcher v3.2 (1.6.7.12) ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
log "════════════════════════════════════════════════"
log "SecuBox Kiosk Launcher v3.2 (1.6.7.11)"
log "SecuBox Kiosk Launcher v3.2 (1.6.7.12)"
log "════════════════════════════════════════════════"
# Show hardware info on console

View File

@ -1,6 +1,6 @@
# SecuBox
**CyberMind · Gondwana · Notre-Dame-du-Cruet · Savoie** | [EN](Home) | [FR](Home-FR) | [中文](Home-ZH) | **v1.5.10**
**CyberMind · Gondwana · Notre-Dame-du-Cruet · Savoie** | [EN](Home) | [FR](Home-FR) | [中文](Home-ZH)
Vollständige Sicherheitsappliance-Lösung, portiert von OpenWrt auf Debian bookworm. Entwickelt für GlobalScale ARM64-Boards (MOCHAbin, ESPRESSObin) und x86_64-Systeme. **125 Pakete** mit **2000+ API-Endpunkten**.
@ -13,8 +13,8 @@ Vollständige Sicherheitsappliance-Lösung, portiert von OpenWrt auf Debian book
Testen Sie SecuBox sofort in VirtualBox — kein USB-Laufwerk erforderlich:
```bash
# Image herunterladen
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.10/secubox-live-amd64-bookworm.img.gz
# Neuestes Image herunterladen
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
gunzip secubox-live-amd64-bookworm.img.gz
# In VDI-Format konvertieren
@ -39,7 +39,7 @@ Siehe [[Live-USB-VirtualBox]] für vollständige Dokumentation.
Direkt von USB auf physischer Hardware booten:
```bash
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.10/secubox-live-amd64-bookworm.img.gz
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
zcat secubox-live-amd64-bookworm.img.gz | sudo dd of=/dev/sdX bs=4M status=progress
```

View File

@ -1,6 +1,6 @@
# SecuBox
**CyberMind · Gondwana · Notre-Dame-du-Cruet · Savoie** | [EN](Home) | [中文](Home-ZH) | **v1.5.10**
**CyberMind · Gondwana · Notre-Dame-du-Cruet · Savoie** | [EN](Home) | [中文](Home-ZH)
Solution complète d'appliance de sécurité portée d'OpenWrt vers Debian bookworm. Conçue pour les cartes ARM64 GlobalScale (MOCHAbin, ESPRESSObin) et les systèmes x86_64. **125 paquets** avec plus de **2000+ points d'API**.
@ -13,8 +13,8 @@ Solution complète d'appliance de sécurité portée d'OpenWrt vers Debian bookw
Testez SecuBox instantanément dans VirtualBox — aucune clé USB requise :
```bash
# Télécharger l'image
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.10/secubox-live-amd64-bookworm.img.gz
# Télécharger la dernière image
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
gunzip secubox-live-amd64-bookworm.img.gz
# Convertir au format VDI
@ -39,7 +39,7 @@ Voir [[Live-USB-VirtualBox]] pour la documentation complète.
Démarrez directement depuis USB sur du matériel physique :
```bash
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.10/secubox-live-amd64-bookworm.img.gz
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
zcat secubox-live-amd64-bookworm.img.gz | sudo dd of=/dev/sdX bs=4M status=progress
```

View File

@ -1,6 +1,6 @@
# SecuBox-DEB
**Debian 安全设备** | [English](Home) | [Français](Home-FR) | **v1.5.1**
**Debian 安全设备** | [English](Home) | [Français](Home-FR)
SecuBox 是一个完整的安全设备解决方案,从 OpenWrt 移植到 Debian bookworm专为 GlobalScale ARM64 开发板MOCHAbin、ESPRESSObin和 x86_64 系统设计。现在包含 **93 个软件包**和 **2000+ 个 API 端点**
@ -14,14 +14,14 @@ SecuBox 是一个完整的安全设备解决方案,从 OpenWrt 移植到 Debia
```bash
# 下载镜像
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.1/secubox-live-amd64-bookworm.img.gz
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
gunzip secubox-live-amd64-bookworm.img.gz
# 转换为 VDI 格式
VBoxManage convertfromraw secubox-live-amd64-bookworm.img secubox-live.vdi --format VDI
# 创建并启动虚拟机(使用我们的脚本)
curl -sLO https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/scripts/create-secubox-vm.sh
curl -sLO https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/image/create-vbox-vm.sh
chmod +x create-secubox-vm.sh
./create-secubox-vm.sh secubox-live.vdi
```
@ -29,7 +29,7 @@ chmod +x create-secubox-vm.sh
**或者一行命令自动下载:**
```bash
curl -sL https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/scripts/create-secubox-vm.sh | bash -s -- --download
curl -sL https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/image/create-vbox-vm.sh | bash -s -- --download
```
**访问方式(等待 30-60 秒启动):**
@ -50,7 +50,7 @@ curl -sL https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/scrip
```bash
# 下载
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.1/secubox-live-amd64-bookworm.img.gz
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
# 写入 USB 驱动器(将 /dev/sdX 替换为您的设备)
zcat secubox-live-amd64-bookworm.img.gz | sudo dd of=/dev/sdX bs=4M status=progress

View File

@ -1,6 +1,6 @@
# SecuBox
**CyberMind · Gondwana · Notre-Dame-du-Cruet · Savoie** | [FR](Home-FR) | [中文](Home-ZH) | **v1.5.10**
**CyberMind · Gondwana · Notre-Dame-du-Cruet · Savoie** | [FR](Home-FR) | [中文](Home-ZH)
Complete security appliance solution ported from OpenWrt to Debian bookworm. Designed for GlobalScale ARM64 boards (MOCHAbin, ESPRESSObin) and x86_64 systems. **125 packages** with **2000+ API endpoints**.
@ -13,8 +13,8 @@ Complete security appliance solution ported from OpenWrt to Debian bookworm. Des
Test SecuBox instantly in VirtualBox — no USB drive needed:
```bash
# Download image
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.10/secubox-live-amd64-bookworm.img.gz
# Download latest image
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
gunzip secubox-live-amd64-bookworm.img.gz
# Convert to VDI format
@ -39,7 +39,7 @@ See [[Live-USB-VirtualBox]] for full documentation.
Boot directly from USB on physical hardware:
```bash
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.10/secubox-live-amd64-bookworm.img.gz
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
zcat secubox-live-amd64-bookworm.img.gz | sudo dd of=/dev/sdX bs=4M status=progress
```

View File

@ -12,10 +12,10 @@ Test SecuBox on VirtualBox in minutes using the pre-built live image.
```bash
# Download and create VM in one command
curl -sL https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.0/secubox-live-amd64-bookworm.img.gz | \
curl -sL https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz | \
gunzip > secubox-live.img && \
VBoxManage convertfromraw secubox-live.img secubox-live.vdi --format VDI && \
bash <(curl -sL https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/scripts/create-secubox-vm.sh) secubox-live.vdi
bash <(curl -sL https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/image/create-vbox-vm.sh) secubox-live.vdi
```
## Step-by-Step Guide
@ -24,7 +24,7 @@ curl -sL https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.0/se
```bash
# From GitHub Releases
wget https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.0/secubox-live-amd64-bookworm.img.gz
wget https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
# Extract
gunzip secubox-live-amd64-bookworm.img.gz
@ -44,7 +44,7 @@ VBoxManage convertfromraw secubox-live-amd64-bookworm.img secubox-live.vdi --for
```bash
# Download and run the VM creation script
curl -sLO https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/scripts/create-secubox-vm.sh
curl -sLO https://raw.githubusercontent.com/CyberMind-FR/secubox-deb/master/image/create-vbox-vm.sh
chmod +x create-secubox-vm.sh
./create-secubox-vm.sh secubox-live.vdi
```
@ -114,7 +114,7 @@ VM_NAME="SecuBox-Live-$(date +%Y%m%d)"
if [[ ! -f "$IMG" ]]; then
echo "Downloading SecuBox Live image..."
wget -q --show-progress \
https://github.com/CyberMind-FR/secubox-deb/releases/download/v1.5.0/secubox-live-amd64-bookworm.img.gz
https://github.com/CyberMind-FR/secubox-deb/releases/latest/download/secubox-live-amd64-bookworm.img.gz
gunzip secubox-live-amd64-bookworm.img.gz
IMG="secubox-live-amd64-bookworm.img"
VDI="${IMG%.img}.vdi"