Fix minimize script: keep bluetooth+wifi, update baseline doc
This commit is contained in:
@@ -97,11 +97,17 @@ fonts-* xfonts-*
|
|||||||
python3-pygame python3-tk
|
python3-pygame python3-tk
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Systemd Services Kept (Bluetooth & WiFi stay on)
|
||||||
|
|
||||||
|
| Service | Reason to Keep |
|
||||||
|
|---------|----------------|
|
||||||
|
| `bluetooth` | Wireless MIDI controllers, tuner apps |
|
||||||
|
| `wpa_supplicant` | WiFi for web UI, SSH, preset downloads |
|
||||||
|
|
||||||
### Systemd Services Disabled
|
### Systemd Services Disabled
|
||||||
|
|
||||||
| Service | Reason |
|
| Service | Reason |
|
||||||
|---------|--------|
|
|---------|--------|
|
||||||
| `bluetooth` | No BT on pedal |
|
|
||||||
| `avahi-daemon` | No mDNS needed |
|
| `avahi-daemon` | No mDNS needed |
|
||||||
| `triggerhappy` | We handle GPIO ourselves |
|
| `triggerhappy` | We handle GPIO ourselves |
|
||||||
| `ModemManager` | No modem |
|
| `ModemManager` | No modem |
|
||||||
@@ -126,13 +132,6 @@ snd_usbmidi_lib
|
|||||||
snd_rawmidi
|
snd_rawmidi
|
||||||
snd_seq_device
|
snd_seq_device
|
||||||
snd_hwdep
|
snd_hwdep
|
||||||
# (HDA Intel is x86 only, but harmless to list)
|
|
||||||
|
|
||||||
# Bluetooth
|
|
||||||
bluetooth btusb btbcm
|
|
||||||
|
|
||||||
# WiFi (wired-only mode)
|
|
||||||
brcmfmac brcmutil
|
|
||||||
|
|
||||||
# Unused input devices
|
# Unused input devices
|
||||||
joydev uvcvideo videobuf2_v4l2
|
joydev uvcvideo videobuf2_v4l2
|
||||||
@@ -142,6 +141,8 @@ r8152 # Realtek USB NIC
|
|||||||
xhci_pci # USB 3.0
|
xhci_pci # USB 3.0
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**NOT blacklisted:** Bluetooth (`bluetooth`, `btusb`, `btbcm`) and WiFi (`brcmfmac`, `brcmutil`) — kept for wireless MIDI and web UI.
|
||||||
|
|
||||||
## What We Keep
|
## What We Keep
|
||||||
|
|
||||||
### Essential Packages
|
### Essential Packages
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
## Problem
|
||||||
|
Strip the DietPi install down to the minimum footprint for the pedal. Profile baseline resource usage, then remove unnecessary packages and services. Target < 60MB idle RAM and < 500MB disk.
|
||||||
|
|
||||||
|
## File scope
|
||||||
|
- `scripts/dietpi-postinstall.sh` — DietPi first-boot setup with minimal packages
|
||||||
|
- `scripts/minimize.sh` — identify and remove unused packages, disable unnecessary systemd services
|
||||||
|
- `scripts/build-minimal-image.sh` — take the stripped install and produce a flashable image
|
||||||
|
- `docs/baseline-footprint.md` — before/after resource comparisons
|
||||||
|
|
||||||
|
## Approach
|
||||||
|
1. Install DietPi minimal (no desktop, no software options)
|
||||||
|
2. Install only what's needed: JACK, Python, PyTorch, cmake, GPIO libs, I2C tools
|
||||||
|
3. Run `systemd-analyze blame` to identify slow services
|
||||||
|
4. Disable: avahi, triggerhappy, ModemManager, systemd-resolved if not needed
|
||||||
|
5. **KEEP: bluetooth (for MIDI controllers, wireless tuner apps), wifi (for web UI, preset downloads)**
|
||||||
|
6. Use `dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -rn` to find biggest packages, remove non-essentials
|
||||||
|
7. Strip kernel modules not needed (remove sound modules for hardware we don't have, etc.)
|
||||||
|
8. Document the removal process so it's repeatable
|
||||||
|
9. Build a minimal SD card image from the stripped install
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
Blocks on: Audio system setup (t_9deaa72c) — need JACK working first for baselines
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
- [ ] Baseline footprint documented (RAM + disk before/after)
|
||||||
|
- [ ] All unnecessary systemd services disabled
|
||||||
|
- [ ] Blutetooth and wifi preserved and functional
|
||||||
|
- [ ] Unused kernel modules removed
|
||||||
|
- [ ] No functionality lost — JACK, NAM, MIDI, GPIO, I2S all still work
|
||||||
|
- [ ] < 60MB idle RAM, < 500MB disk
|
||||||
|
- [ ] Repeatable minimize script committed to repo
|
||||||
|
- [ ] Boot time < 15 seconds to pedal ready
|
||||||
+5
-11
@@ -87,9 +87,7 @@ info "Step 1: Removing unnecessary packages..."
|
|||||||
|
|
||||||
# ── Packages we KNOW we don't need on a headless audio pedal ──────────────
|
# ── Packages we KNOW we don't need on a headless audio pedal ──────────────
|
||||||
PACKAGES_TO_PURGE=(
|
PACKAGES_TO_PURGE=(
|
||||||
# Bluetooth (no BT on a pedal)
|
# Printing (no USB printers on a pedal)
|
||||||
bluez bluez-tools bluez-firmware pi-bluetooth
|
|
||||||
# Printing
|
|
||||||
cups cups-bsd cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-ppdc cups-server-common
|
cups cups-bsd cups-client cups-common cups-core-drivers cups-daemon cups-filters cups-ppdc cups-server-common
|
||||||
# Avahi/mDNS (not needed for local audio)
|
# Avahi/mDNS (not needed for local audio)
|
||||||
avahi-daemon avahi-autoipd avahi-utils
|
avahi-daemon avahi-autoipd avahi-utils
|
||||||
@@ -183,7 +181,6 @@ fi
|
|||||||
info "Step 2: Disabling unnecessary systemd services..."
|
info "Step 2: Disabling unnecessary systemd services..."
|
||||||
|
|
||||||
SERVICES_TO_DISABLE=(
|
SERVICES_TO_DISABLE=(
|
||||||
bluetooth
|
|
||||||
avahi-daemon
|
avahi-daemon
|
||||||
triggerhappy
|
triggerhappy
|
||||||
ModemManager
|
ModemManager
|
||||||
@@ -239,14 +236,11 @@ blacklist snd_hda_intel
|
|||||||
blacklist snd_hda_codec
|
blacklist snd_hda_codec
|
||||||
blacklist snd_hda_core
|
blacklist snd_hda_core
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth — KEPT (wireless MIDI controllers, tuner apps)
|
||||||
blacklist bluetooth
|
# Do NOT blacklist bluetooth modules
|
||||||
blacklist btusb
|
|
||||||
blacklist btbcm
|
|
||||||
|
|
||||||
# WiFi (wired-only mode)
|
# WiFi — KEPT (web UI, SSH, preset downloads)
|
||||||
blacklist brcmfmac
|
# Do NOT blacklist wifi modules
|
||||||
blacklist brcmutil
|
|
||||||
|
|
||||||
# Unused input devices
|
# Unused input devices
|
||||||
blacklist joydev
|
blacklist joydev
|
||||||
|
|||||||
Reference in New Issue
Block a user