Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 14505ef24a | |||
| 4f20c9246d | |||
| eed157c2db |
@@ -1294,8 +1294,8 @@ const loadingPageHTML = `<!DOCTYPE html>
|
|||||||
*{margin:0;padding:0;box-sizing:border-box}
|
*{margin:0;padding:0;box-sizing:border-box}
|
||||||
html,body{height:100%;background:#0f1117;display:flex;align-items:center;justify-content:center;font-family:'Courier New',monospace;color:#e2e8f0}
|
html,body{height:100%;background:#0f1117;display:flex;align-items:center;justify-content:center;font-family:'Courier New',monospace;color:#e2e8f0}
|
||||||
.wrap{text-align:center;width:420px}
|
.wrap{text-align:center;width:420px}
|
||||||
.logo{font-size:11px;line-height:1.4;color:#f6c90e;margin-bottom:6px;white-space:pre;text-align:left}
|
.brand{font-size:22px;letter-spacing:.18em;color:#f6c90e;margin-bottom:6px;text-align:left}
|
||||||
.subtitle{font-size:12px;color:#a0aec0;text-align:left;margin-bottom:24px;padding-left:2px}
|
.subtitle{font-size:12px;color:#a0aec0;text-align:left;margin-bottom:24px}
|
||||||
.spinner{width:36px;height:36px;border:3px solid #2d3748;border-top-color:#f6c90e;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 14px}
|
.spinner{width:36px;height:36px;border:3px solid #2d3748;border-top-color:#f6c90e;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 14px}
|
||||||
.spinner.hidden{display:none}
|
.spinner.hidden{display:none}
|
||||||
@keyframes spin{to{transform:rotate(360deg)}}
|
@keyframes spin{to{transform:rotate(360deg)}}
|
||||||
@@ -1313,12 +1313,7 @@ td:first-child{color:#718096;width:55%}
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<div class="logo"> ███████╗ █████╗ ███████╗██╗ ██╗ ██████╗ ███████╗███████╗
|
<div class="brand">EASY BEE</div>
|
||||||
██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██╔══██╗██╔════╝██╔════╝
|
|
||||||
█████╗ ███████║███████╗ ╚████╔╝ █████╗██████╔╝█████╗ █████╗
|
|
||||||
██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ╚════╝██╔══██╗██╔══╝ ██╔══╝
|
|
||||||
███████╗██║ ██║███████║ ██║ ██████╔╝███████╗███████╗
|
|
||||||
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝</div>
|
|
||||||
<div class="subtitle">Hardware Audit LiveCD</div>
|
<div class="subtitle">Hardware Audit LiveCD</div>
|
||||||
<div class="spinner" id="spin"></div>
|
<div class="spinner" id="spin"></div>
|
||||||
<div class="status" id="st">Connecting to bee-web...</div>
|
<div class="status" id="st">Connecting to bee-web...</div>
|
||||||
|
|||||||
@@ -16,6 +16,12 @@ else
|
|||||||
LB_LINUX_PACKAGES="linux-image"
|
LB_LINUX_PACKAGES="linux-image"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "${BEE_ISO_VOLUME:-}" ]; then
|
||||||
|
LB_ISO_VOLUME="${BEE_ISO_VOLUME}"
|
||||||
|
else
|
||||||
|
LB_ISO_VOLUME="EASY_BEE_${BEE_GPU_VENDOR_UPPER:-NVIDIA}"
|
||||||
|
fi
|
||||||
|
|
||||||
lb config noauto \
|
lb config noauto \
|
||||||
--distribution bookworm \
|
--distribution bookworm \
|
||||||
--architectures amd64 \
|
--architectures amd64 \
|
||||||
@@ -30,9 +36,9 @@ lb config noauto \
|
|||||||
--linux-flavours "amd64" \
|
--linux-flavours "amd64" \
|
||||||
--linux-packages "${LB_LINUX_PACKAGES}" \
|
--linux-packages "${LB_LINUX_PACKAGES}" \
|
||||||
--memtest memtest86+ \
|
--memtest memtest86+ \
|
||||||
--iso-volume "EASY_BEE_${BEE_GPU_VENDOR_UPPER:-NVIDIA}" \
|
--iso-volume "${LB_ISO_VOLUME}" \
|
||||||
--iso-application "EASY-BEE-${BEE_GPU_VENDOR_UPPER:-NVIDIA}" \
|
--iso-application "EASY-BEE-${BEE_GPU_VENDOR_UPPER:-NVIDIA}" \
|
||||||
--bootappend-live "boot=live components video=1920x1080 console=ttyS0,115200n8 console=tty0 loglevel=3 systemd.show_status=1 username=bee user-fullname=Bee modprobe.blacklist=nouveau,snd_hda_intel,snd_hda_codec_realtek,snd_hda_codec_generic,soundcore" \
|
--bootappend-live "boot=live live-media-label=${LB_ISO_VOLUME} components video=1920x1080 console=ttyS0,115200n8 console=tty0 loglevel=3 systemd.show_status=1 username=bee user-fullname=Bee modprobe.blacklist=nouveau,snd_hda_intel,snd_hda_codec_realtek,snd_hda_codec_generic,soundcore" \
|
||||||
--debootstrap-options "--include=ca-certificates" \
|
--debootstrap-options "--include=ca-certificates" \
|
||||||
--apt-recommends false \
|
--apt-recommends false \
|
||||||
--chroot-squashfs-compression-type zstd \
|
--chroot-squashfs-compression-type zstd \
|
||||||
|
|||||||
@@ -536,6 +536,11 @@ validate_iso_live_boot_entries() {
|
|||||||
rm -f "$grub_cfg" "$isolinux_cfg"
|
rm -f "$grub_cfg" "$isolinux_cfg"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
grep -q 'linux .*live-media-label=EASY_BEE_' "$grub_cfg" || {
|
||||||
|
echo "ERROR: GRUB live entry is missing live-media-label pinning" >&2
|
||||||
|
rm -f "$grub_cfg" "$isolinux_cfg"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
grep -q 'append .*boot=live ' "$isolinux_cfg" || {
|
grep -q 'append .*boot=live ' "$isolinux_cfg" || {
|
||||||
echo "ERROR: isolinux live entry is missing boot=live" >&2
|
echo "ERROR: isolinux live entry is missing boot=live" >&2
|
||||||
@@ -547,6 +552,11 @@ validate_iso_live_boot_entries() {
|
|||||||
rm -f "$grub_cfg" "$isolinux_cfg"
|
rm -f "$grub_cfg" "$isolinux_cfg"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
grep -q 'append .*live-media-label=EASY_BEE_' "$isolinux_cfg" || {
|
||||||
|
echo "ERROR: isolinux live entry is missing live-media-label pinning" >&2
|
||||||
|
rm -f "$grub_cfg" "$isolinux_cfg"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
rm -f "$grub_cfg" "$isolinux_cfg"
|
rm -f "$grub_cfg" "$isolinux_cfg"
|
||||||
echo "=== live boot validation OK ==="
|
echo "=== live boot validation OK ==="
|
||||||
@@ -721,12 +731,12 @@ write_canonical_grub_cfg() {
|
|||||||
source /boot/grub/config.cfg
|
source /boot/grub/config.cfg
|
||||||
|
|
||||||
menuentry "EASY-BEE" {
|
menuentry "EASY-BEE" {
|
||||||
linux ${kernel} ${append_live} bee.display=kms bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
linux ${kernel} ${append_live} nomodeset bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
||||||
initrd ${initrd}
|
initrd ${initrd}
|
||||||
}
|
}
|
||||||
|
|
||||||
menuentry "EASY-BEE -- load to RAM (toram)" {
|
menuentry "EASY-BEE -- load to RAM (toram)" {
|
||||||
linux ${kernel} ${append_live} toram bee.display=kms bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
linux ${kernel} ${append_live} toram nomodeset bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
||||||
initrd ${initrd}
|
initrd ${initrd}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -831,6 +841,73 @@ enforce_live_build_bootloader_assets() {
|
|||||||
echo "bootloader sync: WARNING: could not extract live entry from $isolinux_cfg" >&2
|
echo "bootloader sync: WARNING: could not extract live entry from $isolinux_cfg" >&2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sync_efi_grub_theme_assets "$lb_dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
fat_image_has_file() {
|
||||||
|
img="$1"
|
||||||
|
path="$2"
|
||||||
|
mtype -i "$img" "$path" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
is_efi_grub_fat_image() {
|
||||||
|
img="$1"
|
||||||
|
fat_image_has_file "$img" "::/EFI/boot/grubx64.efi" || return 1
|
||||||
|
fat_image_has_file "$img" "::/boot/grub/grub.cfg" || return 1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_file_to_fat_image() {
|
||||||
|
img="$1"
|
||||||
|
src="$2"
|
||||||
|
dst="$3"
|
||||||
|
mcopy -o -i "$img" "$src" "$dst" >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_efi_grub_theme_assets() {
|
||||||
|
lb_dir="$1"
|
||||||
|
found=0
|
||||||
|
|
||||||
|
for img in $(find "$lb_dir" -type f \( -name '*.img' -o -name '*.ima' -o -name '*.fat' \) 2>/dev/null); do
|
||||||
|
if ! is_efi_grub_fat_image "$img"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
found=1
|
||||||
|
echo "bootloader sync: patching EFI GRUB image $img"
|
||||||
|
mmd -i "$img" "::/boot" >/dev/null 2>&1 || true
|
||||||
|
mmd -i "$img" "::/boot/grub" >/dev/null 2>&1 || true
|
||||||
|
mmd -i "$img" "::/boot/grub/live-theme" >/dev/null 2>&1 || true
|
||||||
|
|
||||||
|
copy_file_to_fat_image "$img" "${BUILDER_DIR}/config/bootloaders/grub-efi/config.cfg" "::/boot/grub/config.cfg"
|
||||||
|
copy_file_to_fat_image "$img" "${BUILDER_DIR}/config/bootloaders/grub-efi/theme.cfg" "::/boot/grub/theme.cfg"
|
||||||
|
for asset in "${BUILDER_DIR}"/config/bootloaders/grub-efi/live-theme/*; do
|
||||||
|
[ -f "$asset" ] || continue
|
||||||
|
copy_file_to_fat_image "$img" "$asset" "::/boot/grub/live-theme/"
|
||||||
|
done
|
||||||
|
|
||||||
|
fat_image_has_file "$img" "::/boot/grub/config.cfg" || {
|
||||||
|
echo "ERROR: EFI GRUB image missing /boot/grub/config.cfg after sync: $img" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
fat_image_has_file "$img" "::/boot/grub/theme.cfg" || {
|
||||||
|
echo "ERROR: EFI GRUB image missing /boot/grub/theme.cfg after sync: $img" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
fat_image_has_file "$img" "::/boot/grub/live-theme/theme.txt" || {
|
||||||
|
echo "ERROR: EFI GRUB image missing /boot/grub/live-theme/theme.txt after sync: $img" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
fat_image_has_file "$img" "::/boot/grub/live-theme/bee-logo.tga" || {
|
||||||
|
echo "ERROR: EFI GRUB image missing /boot/grub/live-theme/bee-logo.tga after sync: $img" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$found" != "1" ]; then
|
||||||
|
echo "ERROR: no EFI GRUB FAT image found in live-build workdir; cannot sync theme assets" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
copy_memtest_from_deb() {
|
copy_memtest_from_deb() {
|
||||||
@@ -1008,6 +1085,7 @@ PROJECT_VERSION_EFFECTIVE="$(resolve_project_version)"
|
|||||||
ISO_BASENAME="easy-bee-${BUILD_VARIANT}-v${PROJECT_VERSION_EFFECTIVE}-amd64"
|
ISO_BASENAME="easy-bee-${BUILD_VARIANT}-v${PROJECT_VERSION_EFFECTIVE}-amd64"
|
||||||
# Versioned output directory: dist/easy-bee-v4.1/ — all final artefacts live here.
|
# Versioned output directory: dist/easy-bee-v4.1/ — all final artefacts live here.
|
||||||
OUT_DIR="${DIST_DIR}/easy-bee-v${PROJECT_VERSION_EFFECTIVE}"
|
OUT_DIR="${DIST_DIR}/easy-bee-v${PROJECT_VERSION_EFFECTIVE}"
|
||||||
|
ISO_VERSION_LABEL_TOKEN="$(printf '%s' "${PROJECT_VERSION_EFFECTIVE}" | tr '[:lower:].-' '[:upper:]__')"
|
||||||
mkdir -p "${OUT_DIR}"
|
mkdir -p "${OUT_DIR}"
|
||||||
LOG_DIR="${OUT_DIR}/${ISO_BASENAME}.logs"
|
LOG_DIR="${OUT_DIR}/${ISO_BASENAME}.logs"
|
||||||
LOG_ARCHIVE="${OUT_DIR}/${ISO_BASENAME}.logs.tar.gz"
|
LOG_ARCHIVE="${OUT_DIR}/${ISO_BASENAME}.logs.tar.gz"
|
||||||
@@ -1589,7 +1667,8 @@ echo "=== building ISO (variant: ${BUILD_VARIANT}) ==="
|
|||||||
|
|
||||||
# Export for auto/config
|
# Export for auto/config
|
||||||
BEE_GPU_VENDOR_UPPER="$(echo "${BUILD_VARIANT}" | tr 'a-z-' 'A-Z_')"
|
BEE_GPU_VENDOR_UPPER="$(echo "${BUILD_VARIANT}" | tr 'a-z-' 'A-Z_')"
|
||||||
export BEE_GPU_VENDOR_UPPER
|
BEE_ISO_VOLUME="EASY_BEE_${BEE_GPU_VENDOR_UPPER}_V${ISO_VERSION_LABEL_TOKEN}"
|
||||||
|
export BEE_GPU_VENDOR_UPPER BEE_ISO_VOLUME
|
||||||
|
|
||||||
cd "${LB_DIR}"
|
cd "${LB_DIR}"
|
||||||
run_step_sh "live-build clean" "80-lb-clean" "lb clean --all 2>&1 | tail -3"
|
run_step_sh "live-build clean" "80-lb-clean" "lb clean --all 2>&1 | tail -3"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if loadfont $font ; then
|
if loadfont $font ; then
|
||||||
set gfxmode=1920x1080,1280x1024,auto
|
set gfxmode=1280x1024,auto
|
||||||
set gfxpayload=keep
|
set gfxpayload=keep
|
||||||
insmod efi_gop
|
insmod efi_gop
|
||||||
insmod efi_uga
|
insmod efi_uga
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
source /boot/grub/config.cfg
|
source /boot/grub/config.cfg
|
||||||
|
|
||||||
menuentry "EASY-BEE" {
|
menuentry "EASY-BEE" {
|
||||||
linux @KERNEL_LIVE@ @APPEND_LIVE@ bee.display=kms bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
linux @KERNEL_LIVE@ @APPEND_LIVE@ nomodeset bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
||||||
initrd @INITRD_LIVE@
|
initrd @INITRD_LIVE@
|
||||||
}
|
}
|
||||||
|
|
||||||
menuentry "EASY-BEE -- load to RAM (toram)" {
|
menuentry "EASY-BEE -- load to RAM (toram)" {
|
||||||
linux @KERNEL_LIVE@ @APPEND_LIVE@ toram bee.display=kms bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
linux @KERNEL_LIVE@ @APPEND_LIVE@ toram nomodeset bee.nvidia.mode=normal pci=realloc net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable pcie_aspm=off intel_idle.max_cstate=1 processor.max_cstate=1 nowatchdog nosoftlockup
|
||||||
initrd @INITRD_LIVE@
|
initrd @INITRD_LIVE@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,13 +5,6 @@ title-text: ""
|
|||||||
message-font: "Unifont Regular 16"
|
message-font: "Unifont Regular 16"
|
||||||
terminal-font: "Unifont Regular 16"
|
terminal-font: "Unifont Regular 16"
|
||||||
|
|
||||||
#bee logo - centered, upper third of screen
|
|
||||||
+ image {
|
|
||||||
top = 4%
|
|
||||||
left = 50%-200
|
|
||||||
file = "bee-logo.tga"
|
|
||||||
}
|
|
||||||
|
|
||||||
#help bar at the bottom
|
#help bar at the bottom
|
||||||
+ label {
|
+ label {
|
||||||
top = 100%-50
|
top = 100%-50
|
||||||
|
|||||||
@@ -1,11 +1,4 @@
|
|||||||
|
EASY BEE
|
||||||
███████╗ █████╗ ███████╗██╗ ██╗ ██████╗ ███████╗███████╗
|
|
||||||
██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██╔══██╗██╔════╝██╔════╝
|
|
||||||
█████╗ ███████║███████╗ ╚████╔╝ █████╗██████╔╝█████╗ █████╗
|
|
||||||
██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ╚════╝██╔══██╗██╔══╝ ██╔══╝
|
|
||||||
███████╗██║ ██║███████║ ██║ ██████╔╝███████╗███████╗
|
|
||||||
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝
|
|
||||||
|
|
||||||
Hardware Audit LiveCD
|
Hardware Audit LiveCD
|
||||||
Build: %%BUILD_INFO%%
|
Build: %%BUILD_INFO%%
|
||||||
|
|
||||||
|
|||||||
@@ -51,12 +51,7 @@ while true; do
|
|||||||
printf '\033[H\033[2J'
|
printf '\033[H\033[2J'
|
||||||
|
|
||||||
printf '\n'
|
printf '\n'
|
||||||
printf ' \033[33m███████╗ █████╗ ███████╗██╗ ██╗ ██████╗ ███████╗███████╗\033[0m\n'
|
printf ' \033[33mEASY BEE\033[0m\n'
|
||||||
printf ' \033[33m██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██╔══██╗██╔════╝██╔════╝\033[0m\n'
|
|
||||||
printf ' \033[33m█████╗ ███████║███████╗ ╚████╔╝ █████╗██████╔╝█████╗ █████╗\033[0m\n'
|
|
||||||
printf ' \033[33m██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ╚════╝██╔══██╗██╔══╝ ██╔══╝\033[0m\n'
|
|
||||||
printf ' \033[33m███████╗██║ ██║███████║ ██║ ██████╔╝███████╗███████╗\033[0m\n'
|
|
||||||
printf ' \033[33m╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝\033[0m\n'
|
|
||||||
printf ' Hardware Audit LiveCD\n'
|
printf ' Hardware Audit LiveCD\n'
|
||||||
printf '\n'
|
printf '\n'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user