Enhance README and build scripts for hardware-specific optimizations
- Updated README.md to clarify development setup for macOS/Docker and added production build instructions for specific hardware. - Introduced new build scripts for optimized OS images targeting Start9 Server Pure, HP ProDesk 400 G4 DM, and Dell OptiPlex. - Enhanced Dockerfile to specify platform compatibility and improved Alpine profile for Archipelago builds. - Updated configuration files and init scripts to support new hardware profiles and ensure proper service management.
This commit is contained in:
@@ -0,0 +1,316 @@
|
||||
# Archipelago Hardware Build System - Quick Reference
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Build for Start9 Server Pure
|
||||
```bash
|
||||
cd image-recipe
|
||||
./build-for-hardware.sh start9-pure iso
|
||||
```
|
||||
|
||||
### Build for HP ProDesk
|
||||
```bash
|
||||
cd image-recipe
|
||||
./build-for-hardware.sh hp-prodesk iso
|
||||
```
|
||||
|
||||
### Build for Dell OptiPlex
|
||||
```bash
|
||||
cd image-recipe
|
||||
./build-for-hardware.sh dell-optiplex iso
|
||||
```
|
||||
|
||||
### Build for All Hardware
|
||||
```bash
|
||||
cd image-recipe
|
||||
./build-all-hardware.sh iso
|
||||
```
|
||||
|
||||
## 📋 Supported Hardware
|
||||
|
||||
| Hardware | Target Name | CPU | RAM | Storage |
|
||||
|----------|-------------|-----|-----|---------|
|
||||
| Start9 Server Pure | `start9-pure` | Intel i7-10710U | 32-64GB | 2-4TB NVMe |
|
||||
| HP ProDesk 400 G4 DM | `hp-prodesk` | Intel varies | 8GB+ | 128GB+ SSD |
|
||||
| Dell OptiPlex | `dell-optiplex` | Intel varies | 8GB+ | 128GB+ SSD |
|
||||
| Generic x86_64 | `generic` | Any x86_64 | 8GB+ | 128GB+ |
|
||||
|
||||
## 🔧 Build Commands
|
||||
|
||||
### Single Hardware Target
|
||||
```bash
|
||||
./build-for-hardware.sh <target> [iso|disk]
|
||||
```
|
||||
|
||||
**Examples:**
|
||||
```bash
|
||||
# ISO image (recommended)
|
||||
./build-for-hardware.sh start9-pure iso
|
||||
|
||||
# Disk image (advanced)
|
||||
./build-for-hardware.sh start9-pure disk
|
||||
|
||||
# Default is ISO
|
||||
./build-for-hardware.sh hp-prodesk
|
||||
```
|
||||
|
||||
### All Hardware Targets
|
||||
```bash
|
||||
./build-all-hardware.sh [iso|disk]
|
||||
```
|
||||
|
||||
Builds optimized images for all supported hardware in one command.
|
||||
|
||||
## 📦 Output Files
|
||||
|
||||
After build completes:
|
||||
|
||||
```
|
||||
results/
|
||||
├── archipelago-0.1.0-start9-pure-x86_64.iso
|
||||
├── archipelago-0.1.0-hp-prodesk-x86_64.iso
|
||||
├── archipelago-0.1.0-dell-optiplex-x86_64.iso
|
||||
├── archipelago-0.1.0-generic-x86_64.iso
|
||||
├── BUILD_MANIFEST_start9-pure.txt
|
||||
├── BUILD_MANIFEST_hp-prodesk.txt
|
||||
├── BUILD_MANIFEST_dell-optiplex.txt
|
||||
└── BUILD_MANIFEST_generic.txt
|
||||
```
|
||||
|
||||
## 🔍 What's Different Per Hardware?
|
||||
|
||||
Each build includes **hardware-specific optimizations**:
|
||||
|
||||
### Start9 Server Pure
|
||||
- ✅ Intel i7-10710U microcode
|
||||
- ✅ Intel UHD Graphics drivers
|
||||
- ✅ NVMe SSD optimizations
|
||||
- ✅ Coreboot firmware support
|
||||
- ✅ IME-disabled configurations
|
||||
- ✅ High-performance tuning
|
||||
|
||||
### HP ProDesk 400 G4 DM
|
||||
- ✅ Intel graphics support
|
||||
- ✅ HP firmware compatibility
|
||||
- ✅ SATA/NVMe detection
|
||||
- ✅ Compact form factor optimizations
|
||||
- ✅ Low-power configurations
|
||||
|
||||
### Dell OptiPlex
|
||||
- ✅ Multi-model support
|
||||
- ✅ Dell firmware compatibility
|
||||
- ✅ Legacy hardware support
|
||||
- ✅ Business-class features
|
||||
|
||||
### Generic
|
||||
- ✅ Broad hardware compatibility
|
||||
- ✅ Intel & AMD CPU support
|
||||
- ✅ Generic drivers
|
||||
- ✅ Maximum portability
|
||||
|
||||
## 💾 Flash to USB Drive
|
||||
|
||||
### macOS
|
||||
```bash
|
||||
# Find device
|
||||
diskutil list
|
||||
|
||||
# Unmount
|
||||
diskutil unmountDisk /dev/diskX
|
||||
|
||||
# Flash
|
||||
sudo dd if=results/archipelago-0.1.0-start9-pure-x86_64.iso \
|
||||
of=/dev/rdiskX bs=1m status=progress
|
||||
```
|
||||
|
||||
### Linux
|
||||
```bash
|
||||
# Find device
|
||||
lsblk
|
||||
|
||||
# Flash
|
||||
sudo dd if=results/archipelago-0.1.0-start9-pure-x86_64.iso \
|
||||
of=/dev/sdX bs=1M status=progress
|
||||
```
|
||||
|
||||
### GUI Tools
|
||||
- **balenaEtcher** (Recommended): https://www.balena.io/etcher/
|
||||
- **Rufus** (Windows): https://rufus.ie/
|
||||
|
||||
## 🎯 Installation Steps
|
||||
|
||||
1. **Flash ISO to USB** (see above)
|
||||
2. **Insert USB into target hardware**
|
||||
3. **Boot from USB**:
|
||||
- Start9 Pure: Press F12
|
||||
- HP ProDesk: Press F9
|
||||
- Dell OptiPlex: Press F12
|
||||
4. **Follow installation prompts**
|
||||
5. **Remove USB and reboot**
|
||||
6. **Access UI**: http://device-ip:8100
|
||||
|
||||
## 🔬 Verification
|
||||
|
||||
### Check ISO
|
||||
```bash
|
||||
# View build manifest
|
||||
cat results/BUILD_MANIFEST_start9-pure.txt
|
||||
|
||||
# Check file size
|
||||
ls -lh results/*.iso
|
||||
|
||||
# Verify checksum
|
||||
sha256sum results/archipelago-0.1.0-start9-pure-x86_64.iso
|
||||
```
|
||||
|
||||
### Test in VM
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
-m 4G \
|
||||
-smp 2 \
|
||||
-boot d \
|
||||
-cdrom results/archipelago-0.1.0-start9-pure-x86_64.iso \
|
||||
-enable-kvm
|
||||
```
|
||||
|
||||
## 🛠️ Environment Variables
|
||||
|
||||
Customize builds:
|
||||
|
||||
```bash
|
||||
# Set version
|
||||
export ARCHIPELAGO_VERSION="0.2.0"
|
||||
|
||||
# Set Alpine version
|
||||
export ALPINE_VERSION="3.19"
|
||||
|
||||
# Build with custom settings
|
||||
./build-for-hardware.sh start9-pure iso
|
||||
```
|
||||
|
||||
## 📂 Directory Structure
|
||||
|
||||
```
|
||||
image-recipe/
|
||||
├── build-for-hardware.sh # Main build script
|
||||
├── build-all-hardware.sh # Build all targets
|
||||
├── alpine-profile/
|
||||
│ ├── overlay/ # Base system files
|
||||
│ ├── overlay-start9-pure/ # Start9-specific
|
||||
│ ├── overlay-hp-prodesk/ # HP-specific
|
||||
│ ├── overlay-dell-optiplex/ # Dell-specific
|
||||
│ └── overlay-merged/ # Final merged (auto)
|
||||
├── scripts/
|
||||
│ ├── build-backend.sh
|
||||
│ ├── build-frontend.sh
|
||||
│ └── install-archipelago.sh
|
||||
└── results/ # Build output
|
||||
```
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Build Fails
|
||||
```bash
|
||||
# Clean everything
|
||||
rm -rf results/ build/ apks/ aports/
|
||||
|
||||
# Rebuild
|
||||
./build-for-hardware.sh start9-pure iso
|
||||
```
|
||||
|
||||
### Docker Issues (macOS)
|
||||
```bash
|
||||
# Start Docker Desktop
|
||||
open -a Docker
|
||||
|
||||
# Wait for Docker to start, then retry
|
||||
./build-for-hardware.sh start9-pure iso
|
||||
```
|
||||
|
||||
### Out of Disk Space
|
||||
```bash
|
||||
# Clean Docker (macOS)
|
||||
docker system prune -a
|
||||
|
||||
# Clean build artifacts
|
||||
rm -rf build/ results/ apks/
|
||||
```
|
||||
|
||||
## 📖 Full Documentation
|
||||
|
||||
For detailed information:
|
||||
- **Hardware Builds**: `README-HARDWARE-BUILDS.md`
|
||||
- **OS Images**: `docs/building-os-images.md`
|
||||
- **Architecture**: `docs/architecture.md`
|
||||
|
||||
## 🎯 Common Use Cases
|
||||
|
||||
### Build for production Start9 Server Pure
|
||||
```bash
|
||||
export ARCHIPELAGO_VERSION="1.0.0"
|
||||
./build-for-hardware.sh start9-pure iso
|
||||
```
|
||||
|
||||
### Build test images for all hardware
|
||||
```bash
|
||||
export ARCHIPELAGO_VERSION="dev"
|
||||
./build-all-hardware.sh iso
|
||||
```
|
||||
|
||||
### Build for your specific hardware
|
||||
```bash
|
||||
# Start9 Server Pure users
|
||||
./build-for-hardware.sh start9-pure iso
|
||||
|
||||
# HP ProDesk users
|
||||
./build-for-hardware.sh hp-prodesk iso
|
||||
|
||||
# Dell OptiPlex users
|
||||
./build-for-hardware.sh dell-optiplex iso
|
||||
|
||||
# Other x86_64 hardware
|
||||
./build-for-hardware.sh generic iso
|
||||
```
|
||||
|
||||
## ⏱️ Build Times
|
||||
|
||||
Approximate build times (first build):
|
||||
|
||||
| Hardware | macOS (Docker) | Linux (Native) |
|
||||
|----------|---------------|----------------|
|
||||
| Start9 Pure | 45-60 min | 30-45 min |
|
||||
| HP ProDesk | 45-60 min | 30-45 min |
|
||||
| Dell OptiPlex | 45-60 min | 30-45 min |
|
||||
| Generic | 45-60 min | 30-45 min |
|
||||
| All Targets | 3-4 hours | 2-3 hours |
|
||||
|
||||
Subsequent builds are much faster (~10-15 minutes) due to caching.
|
||||
|
||||
## 💡 Tips
|
||||
|
||||
- **First build is slow**: Docker needs to download Alpine base, build tools, etc.
|
||||
- **Use SSD**: Dramatically speeds up builds
|
||||
- **Close apps**: Free up RAM and CPU for faster builds
|
||||
- **Build overnight**: For all-hardware builds, run overnight
|
||||
- **Check logs**: Build output shows progress and any issues
|
||||
|
||||
## 🚀 Next Steps
|
||||
|
||||
After building:
|
||||
1. Flash ISO to USB drive
|
||||
2. Boot your hardware from USB
|
||||
3. Install Archipelago
|
||||
4. Access UI at http://device-ip:8100
|
||||
5. Install Bitcoin Core and apps
|
||||
6. Enjoy your sovereign server!
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Need help?
|
||||
- **Issues**: Open GitHub issue
|
||||
- **Docs**: Check `docs/` folder
|
||||
- **Community**: Discord (coming soon)
|
||||
|
||||
---
|
||||
|
||||
**Remember**: Keep your ProDesk and OptiPlex builds! The system supports all hardware targets simultaneously.
|
||||
Reference in New Issue
Block a user