Prepare Build and Testing executable binary / Prepare-Build-Testing-With-Make (push) Successful in 6s
Prepare Build and Testing executable binary / Prepare-Build-Testing-With-CMake (push) Successful in 11s
Prepare Build and Testing executable binary / Prepare-Build-Testing-With-Meson (push) Successful in 9s
197 lines
8.2 KiB
HTML
197 lines
8.2 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Bootloader Update Manager</title>
|
|
<link rel="stylesheet" href="style.css" />
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<header>
|
|
<h1>🚀 Bootloader Update Manager</h1>
|
|
<p>
|
|
Orange Pi Zero 2W - Kernel, Device-Tree & U-Boot Environment
|
|
</p>
|
|
</header>
|
|
|
|
<section class="status-section">
|
|
<h2>System Status</h2>
|
|
<div class="status-card">
|
|
<div class="status-item">
|
|
<span class="label">Mount Point:</span>
|
|
<span class="value">/media</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="label">Device:</span>
|
|
<span class="value">/dev/mmcblk1p1</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="label">Mount Status:</span>
|
|
<span class="value" id="mount-status">
|
|
<span class="status-indicator"></span>
|
|
<span class="status-text">Checking...</span>
|
|
</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="label">CPU Temperature:</span>
|
|
<span class="value" id="temperature-status">
|
|
<span class="temp-icon">🌡️</span>
|
|
<span class="temp-value">--</span>
|
|
<span class="temp-unit">°C</span>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="files-section">
|
|
<h2>File Versions</h2>
|
|
<div class="files-grid">
|
|
<div class="file-item">
|
|
<span class="file-label">Kernel (Image.gz):</span>
|
|
<span class="file-date" id="date-Image.gz">--</span>
|
|
</div>
|
|
<div class="file-item">
|
|
<span class="file-label">Device-Tree (DTB):</span>
|
|
<span
|
|
class="file-date"
|
|
id="date-sun50i-h618-orangepi-zero2w.dtb"
|
|
>--</span
|
|
>
|
|
</div>
|
|
<div class="file-item">
|
|
<span class="file-label">U-Boot Env:</span>
|
|
<span class="file-date" id="date-uboot.env">--</span>
|
|
</div>
|
|
<div class="file-item">
|
|
<span class="file-label">U-Boot Binary:</span>
|
|
<span
|
|
class="file-date"
|
|
id="date-u-boot-sunxi-with-spl.bin"
|
|
>--</span
|
|
>
|
|
</div>
|
|
<div class="file-item">
|
|
<span class="file-label">Extlinux:</span>
|
|
<span class="file-date" id="date-extlinux.conf"
|
|
>--</span
|
|
>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="upload-section">
|
|
<h2>File Upload</h2>
|
|
<div class="upload-tabs">
|
|
<button class="tab-btn active" data-type="kernel">
|
|
Kernel (Image.gz)
|
|
</button>
|
|
<button class="tab-btn" data-type="dtb">
|
|
Device-Tree (DTB)
|
|
</button>
|
|
<button class="tab-btn" data-type="uboot">
|
|
U-Boot Environment
|
|
</button>
|
|
<button class="tab-btn" data-type="uboot_bin">
|
|
U-Boot Binary (SPL)
|
|
</button>
|
|
</div>
|
|
|
|
<div class="upload-area">
|
|
<form id="upload-form" enctype="multipart/form-data">
|
|
<input
|
|
type="hidden"
|
|
name="type"
|
|
id="upload-type"
|
|
value="kernel"
|
|
/>
|
|
<div class="file-input-wrapper">
|
|
<input
|
|
type="file"
|
|
name="file"
|
|
id="file-input"
|
|
accept=".gz,.dtb,.env,.bin"
|
|
/>
|
|
<label for="file-input" class="file-label">
|
|
<span class="file-icon">📁</span>
|
|
<span class="file-text"
|
|
>Drop file here or click to browse</span
|
|
>
|
|
<span class="file-name" id="file-name"></span>
|
|
</label>
|
|
</div>
|
|
<div class="upload-hint" id="upload-hint">
|
|
⚠️ U-Boot Binary will be written to SPI NOR
|
|
(/dev/mtd0) and SD card at 8KB offset (/dev/mmcblk1
|
|
+8KB)
|
|
</div>
|
|
<button type="submit" class="upload-btn">Upload</button>
|
|
</form>
|
|
|
|
<div
|
|
class="progress-container"
|
|
id="progress-container"
|
|
style="display: none"
|
|
>
|
|
<div class="progress-header">
|
|
<span>Upload Progress</span>
|
|
<span id="progress-percent">0%</span>
|
|
</div>
|
|
<div class="progress-bar">
|
|
<div class="progress-fill" id="progress-fill"></div>
|
|
</div>
|
|
<div class="progress-info">
|
|
<span id="progress-status">Waiting...</span>
|
|
<span id="progress-bytes"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="result-message" id="result-message"></div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="extlinux-section">
|
|
<h2>extlinux.conf Editor</h2>
|
|
<div class="editor-container">
|
|
<div class="editor-toolbar">
|
|
<button id="load-extlinux" class="toolbar-btn">
|
|
📥 Load
|
|
</button>
|
|
<button id="save-extlinux" class="toolbar-btn">
|
|
💾 Save
|
|
</button>
|
|
<button id="clear-extlinux" class="toolbar-btn">
|
|
🗑️ Clear
|
|
</button>
|
|
</div>
|
|
<textarea
|
|
id="extlinux-editor"
|
|
placeholder="Load extlinux.conf to edit..."
|
|
spellcheck="false"
|
|
></textarea>
|
|
<div class="editor-status" id="editor-status"></div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="reboot-section">
|
|
<h2>System Control</h2>
|
|
<div class="reboot-container">
|
|
<p class="reboot-warning">
|
|
⚠️ Warning: This will reboot the device immediately
|
|
</p>
|
|
<button id="reboot-btn" class="reboot-btn">
|
|
🔄 Reboot System
|
|
</button>
|
|
<div class="reboot-message" id="reboot-message"></div>
|
|
</div>
|
|
</section>
|
|
|
|
<footer>
|
|
<p>Bootloader Update Manager © 2026</p>
|
|
</footer>
|
|
</div>
|
|
|
|
<script src="app.js"></script>
|
|
</body>
|
|
</html>
|