Compare commits

...
3 Commits
Author SHA1 Message Date
gandalfandClaude Opus 4.5 670e71418f fix(kiosk): VirtualBox X11 detection using systemd-detect-virt (v1.6.7.13)
Problem: VirtualBox with VMSVGA shows as "VMware SVGA" in lspci,
causing wrong driver selection and X11 failure.

Fix: Use systemd-detect-virt as primary VM detection:
- "oracle" → VirtualBox → vboxvideo driver
- "vmware" → VMware → vmware driver
- "kvm"/"qemu" → KVM/QEMU → modesetting driver
- Fall back to lspci for bare metal

Also loads vboxsf module for shared folders support.

Addresses #27

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 10:07:29 +02:00
gandalfandClaude Opus 4.5 6735b7f40a 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>
2026-04-14 10:05:03 +02:00
gandalfandClaude Opus 4.5 0ef9e7cc8e docs: Update WIP for v1.6.7.11 release (Issue #24 closed)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-14 08:25:21 +02:00
10 changed files with 120 additions and 39 deletions
+48 -8
View File
@@ -1,17 +1,57 @@
# WIP — Work In Progress
*Mis à jour : 2026-04-13 (Session 55)*
*Mis à jour : 2026-04-14 (Session 57)*
---
## 🔄 En cours (Session 55)
## 🔄 En cours (Session 57)
### v1.6.7.11Bug Fixes for Kiosk
### v1.6.7.13VirtualBox Kiosk Fix (GitHub Issue #27)
#### Bugs from v1.6.7.10 to fix
1. **systemd `StartLimitIntervalSec`** — wrong section, should be in `[Unit]` not `[Service]`
2. **GPU detection message** — says "disabled" when should say "enabled" for real hardware
3. **Lock file blocking**lock file left behind prevents restart
4. **More services to mask** — picobrew, voip, zigbee, newsbin
**Status:** 🔄 Testing VBox X11 fix
#### Fix Applied
- **VirtualBox detection** — Use `systemd-detect-virt` ("oracle") instead of lspci
- VBox with VMSVGA was incorrectly detected as VMware
- Now properly loads vboxvideo/vboxsf modules when running in VirtualBox
#### Files Modified
- `image/sbin/secubox-kiosk-launcher` — VBox detection fix + v1.6.7.13
- `image/build-live-usb.sh` — version bump to 1.6.7.13
---
## ✅ Terminé (Session 57)
### v1.6.7.12 — Lenovo Boot Fix (GitHub Issue #26) ✅
**Status:** Released and tested
#### Test Results
-**Kiosk on real hardware** — Works!
-**Lenovo install test** — PASSED! Error 1962 fix confirmed
---
## ✅ Terminé (Session 56)
### v1.6.7.11 — Kiosk Bug Fixes ✅ (GitHub Issue #24 CLOSED)
**Tested on real hardware: KIOSK LOADING OK ✅**
#### Fixes Applied
1.**systemd `StartLimitIntervalSec`** — fixed syntax (was `StartLimitInterval`)
2.**Platform detection message** — shows "bare-metal (native)" instead of "none"
3.**Lock file cleanup** — PID-based tracking, auto-removes stale locks
4.**Services masked** — picobrew, voip, zigbee, newsbin (already in build script)
#### Files Modified
- `image/systemd/secubox-kiosk.service` — StartLimitIntervalSec fix
- `image/sbin/secubox-kiosk-launcher` — v3.2 with platform name + PID lock
#### Release
- Git commit: `66ad146`
- Git tag: `v1.6.7.11` pushed to origin
- USB image built and tested successfully
---
+1 -1
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')
+14 -1
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.13"
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
+10 -2
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}."
+25 -5
View File
@@ -185,19 +185,39 @@ configure_x11() {
local vm_type driver="modesetting"
vm_type=$(systemd-detect-virt 2>/dev/null || echo "none")
log "VM type: $vm_type"
# Detect graphics hardware - VMs first, then real hardware
# Detect graphics hardware
local gpu_info
gpu_info=$(lspci 2>/dev/null | grep -iE "vga|display|3d" || echo "")
log "GPU detected: $gpu_info"
if echo "$gpu_info" | grep -qi "VMware SVGA\|VMSVGA"; then
# PRIORITY 1: Use systemd-detect-virt for accurate VM detection
# VirtualBox with VMSVGA shows as "VMware" in lspci but "oracle" in detect-virt
if [[ "$vm_type" == "oracle" ]]; then
# VirtualBox detected - try vboxvideo first, fall back to modesetting
modprobe vboxvideo 2>/dev/null || true
modprobe vboxsf 2>/dev/null || true # Shared folders
if lsmod | grep -q vboxvideo; then
driver="vboxvideo"
else
driver="modesetting"
fi
log "VirtualBox (oracle) → $driver driver"
elif [[ "$vm_type" == "vmware" ]]; then
driver="vmware"
log "VMware detected → vmware driver"
elif [[ "$vm_type" == "kvm" ]] || [[ "$vm_type" == "qemu" ]]; then
driver="modesetting"
log "KVM/QEMU detected → modesetting driver"
# PRIORITY 2: Fall back to lspci detection for bare metal or unknown VMs
elif echo "$gpu_info" | grep -qi "VMware SVGA\|VMSVGA"; then
driver="vmware"
log "Detected VMSVGA graphics → vmware driver"
elif echo "$gpu_info" | grep -qi "VirtualBox"; then
driver="vboxvideo"
modprobe vboxvideo 2>/dev/null || driver="modesetting"
log "Detected VirtualBox → $driver driver"
log "Detected VirtualBox GPU → $driver driver"
elif echo "$gpu_info" | grep -qi "QXL\|Virtio"; then
driver="modesetting"
log "Detected QEMU/KVM → modesetting driver"
@@ -624,12 +644,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.13) ║"
echo "╚═══════════════════════════════════════════════════════════╝"
echo ""
log "════════════════════════════════════════════════"
log "SecuBox Kiosk Launcher v3.2 (1.6.7.11)"
log "SecuBox Kiosk Launcher v3.2 (1.6.7.13)"
log "════════════════════════════════════════════════"
# Show hardware info on console
+4 -4
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
```
+4 -4
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
```
+5 -5
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
+4 -4
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
```
+5 -5
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"