161 lines
6.6 KiB
HTML
161 lines
6.6 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="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>
|