d3e5b28e72da0ad714b43745374a1bf732f6347c
Bootloader Update Manager
A C-based web application for updating kernel, device-tree, and U-Boot environment files on Orange Pi Zero 2W.
Features
- Web Interface: Modern, responsive UI for easy file management
- Kernel Update: Upload
Image.gzto boot partition - Device-Tree Update: Upload
sun50i-h618-orangepi-zero2w.dtb - U-Boot Environment: Upload
uboot.env - extlinux.conf Editor: View and edit boot configuration
- Progress Bar: Real-time upload progress tracking
- Auto-mount: Automatically mounts
/dev/mmcblk1p1to/media - Large File Support: Upload files up to 200MB
Requirements
- GCC compiler
- Mongoose - Embedded web server
- cJSON - JSON parser
- Root privileges (for mounting devices)
Installing Dependencies
Ubuntu/Debian:
# Install mongoose (or build from source)
sudo apt-get install libmongoose-dev
# Install cJSON
sudo apt-get install libcjson-dev
Build from source:
# Mongoose
git clone https://github.com/cesanta/mongoose.git
cd mongoose && make && sudo make install
# cJSON
git clone https://github.com/DaveGamble/cJSON.git
cd cJSON && mkdir build && cd build && cmake .. && make && sudo make install
Building
make
Running
sudo make run
# or
sudo ./up
The server will start on http://localhost:8080
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/upload |
POST | Upload files (kernel, dtb, uboot) |
/api/extlinux |
GET | Read extlinux.conf |
/api/extlinux |
POST | Write extlinux.conf |
/api/progress |
GET | Get upload progress |
/api/mount |
GET | Get mount status |
Upload Parameters
For /api/upload:
type: File type (kernel,dtb, oruboot)file: The file to upload
File Locations
| Type | Destination File |
|---|---|
| Kernel | /media/Image.gz |
| Device-Tree | /media/sun50i-h618-orangepi-zero2w.dtb |
| U-Boot Env | /media/uboot.env |
| Extlinux | /media/extlinux.conf |
Project Structure
.
├── main.c # Main application (C server)
├── index.html # Web interface HTML
├── style.css # Web interface styles
├── app.js # Frontend JavaScript
├── Makefile # Build configuration
└── README.md # This file
Screenshots
The web interface includes:
- System status panel showing mount state
- Tabbed upload interface for different file types
- Real-time progress bar during uploads
- Full-featured text editor for extlinux.conf
Security Notes
⚠️ Warning: This application requires root privileges to mount devices. Use with caution and ensure proper access controls in production environments.
License
MIT License
Languages
C
86.6%
C++
10.8%
JavaScript
1.1%
CSS
0.7%
HTML
0.7%