Update documentation for readability and add CHANGELOG.md for build a1025 (argonaut)
This commit is contained in:
@@ -2,40 +2,42 @@
|
||||
|
||||

|
||||
|
||||
**Bananarchy** is a keypad-first Linux distribution hardforked from postmarketOS (`v26.06` / Alpine `edge` `armv7`), purpose-built for **Qualcomm MSM8905 (Snapdragon 205)** and **Qualcomm MSM8909 (Snapdragon 210)** smart feature phones with **240x320 QVGA non-touch displays** and **physical 12-key T9 keypads**.
|
||||
**Bananarchy** is a keypad-first Linux distribution hardforked from postmarketOS (`v26.06` / Alpine `edge` `armv7`), built for **Qualcomm MSM8905 (Snapdragon 205)** and **Qualcomm MSM8909 (Snapdragon 210)** smart feature phones with **240x320 QVGA non-touch displays** and **physical 12-key T9 keypads**.
|
||||
|
||||
See [The Bananarchy Manifesto](./MANIFESTO.md) for the rationale behind this entire project.
|
||||
- **Current public release**: `a1025` (codenamed `argonaut`) — see the [changelog](./CHANGELOG.md) for release notes.
|
||||
- **Project philosophy**: read [The Bananarchy Manifesto](./MANIFESTO.md) for the background and goals behind the distribution.
|
||||
- **User and flashing guide**: see the [user manual](./MANUAL.md) for installation, keypad navigation, and hardware details.
|
||||
|
||||
---
|
||||
|
||||
## Key features
|
||||
|
||||
### System & hardware support
|
||||
- **Mainline Linux 6.12 kernel**: Custom patches and out-of-tree kernel drivers for Qualcomm QDSP6/Q6Voice audio routing, Dual-SIM modem control, the rear 2MP GalaxyCore `GC2395` camera (`/dev/video0`), `SY7807` torch LED (`white:torch`), and physical keypad/slider events.
|
||||
- **Alpine Linux Edge base**: Full access to the Alpine package ecosystem with `< 95 MB` idle RAM usage on 512 MB devices.
|
||||
- **Pure X11 graphical stack**: Cross-compiled **Xlibre** (`X11Libre/xserver`) display server paired with a heavily optimized **Sxmo (`sxmo-de-dwm`)** window manager (`240x320` vertical stack layout, `< 2 ms` slider/key wake latency, and zero Wayland overhead).
|
||||
### System and hardware support
|
||||
- **Mainline Linux 6.12 kernel**: custom patches and out-of-tree drivers for Qualcomm QDSP6/Q6Voice audio routing, Dual-SIM modem control, the rear 2MP GalaxyCore `GC2395` camera (`/dev/video0`), the `SY7807` flashlight LED (`white:torch`), physical keypad/slider events, and clean PM8909 poweroff.
|
||||
- **Alpine Linux Edge base**: full access to the Alpine package ecosystem with `< 95 MB` idle RAM usage on 512 MB devices and full local root access out of the box.
|
||||
- **Pure X11 graphical stack**: cross-compiled **Xlibre** (`X11Libre/xserver`) display server paired with a customized **Sxmo (`sxmo-de-dwm`)** window manager (`240x320` vertical stack layout, Conky desktop clock and system status widget, `< 2 ms` slider/key wake latency, and zero Wayland overhead).
|
||||
|
||||
### Keypad-first user experience & native DWM plugins
|
||||
Instead of spawning slow shell scripts for everyday phone tasks, Bananarchy runs a suite of preloaded resident C/C++ plugins inside DWM that open in `< 2 ms`:
|
||||
- **System & context menus (`dmenu`)**: Instant full-screen 10-line vertical menus with live T9 filtering and built-in submenus.
|
||||
- **Global controls drawer (`xdrawer`)**: Press **both softkeys together** from anywhere to adjust speaker/earpiece volume, ringer mode, flashlight, mic/sound mute, screen brightness, and keypad backlight.
|
||||
- **Phone dialer (`xdialer`), call log (`xcalllog`) & call screen (`xcallscreen`)**: Press any digit on the home screen to start dialing with live T9 contact matching, run carrier USSD codes (`*100#`, etc.) interactively, or type `*#06#` to inspect both IMEIs. Incoming and active calls open a dedicated call screen with earpiece/speaker routing, microphone mute, DTMF keypad, and one-key call recording (`~/Recordings/`).
|
||||
- **Contacts (`xcontacts`) & SMS manager (`xsms`)**: Full phonebook editor with SIM card contact import/export (supporting SIM 1 / SIM 2 selection on dual-SIM setups) and threaded conversation/draft SMS manager with multi-tap keypad text entry.
|
||||
- **Modem & Dual-SIM manager (`xmodem`)**: 4-tab cellular control center (`1:SIMs`, `2:Radio`, `3:AT`, `4:Log`) supporting physical SIM 1 / SIM 2 active slot switching, SIM PIN unlock and PUK unblock wizards, 2G/3G/4G mode selection, interactive USSD sessions, and a live AT command console.
|
||||
- **Networks & Bluetooth manager (`xnetworks`)**: 3-tab connectivity manager (`1:Wi-Fi`, `2:Cell/APN`, `3:Bluetooth`) for Wi-Fi networks, WPA2 password entry, hotspot/USB tethering, mobile data & APN editing, and Bluetooth pairing.
|
||||
- **File manager (`xfiles`) & camera (`xcamera`)**: Graphical directory browser with built-in text and image viewers, plus a live V4L2 camera viewfinder with digital zoom, flash/torch control, self-timer, and photo gallery.
|
||||
- **Themes (`xthemes`), wallpapers (`xwallpapers`) & ringtones (`xringtones`)**: Installable `.Xresources` color/font themes (`~/.xthemes/*.xth`, 20 preinstalled schemes) with live zero-restart reload across the entire UI and terminal, alongside dedicated managers for desktop wallpapers and call ringtones/vibration.
|
||||
### Keypad-first user experience and native DWM plugins
|
||||
Instead of spawning slow shell scripts for everyday phone tasks, Bananarchy runs a suite of preloaded C/C++ plugins inside DWM that sleep at 0% CPU and open in `< 2 ms`:
|
||||
- **System and context menus (`dmenu`)**: instant full-screen 10-line vertical menus with live T9 filtering, built-in submenus, and hardware toggles.
|
||||
- **Global controls drawer (`xdrawer`)**: press **both softkeys together** from anywhere to adjust speaker and earpiece volume, ringer mode, flashlight, sound and microphone mute, screen brightness, and keypad backlight.
|
||||
- **Phone dialer (`xdialer`), call log (`xcalllog`), and call screen (`xcallscreen`)**: press any digit on the home screen to start dialing with live T9 contact matching, run interactive carrier USSD codes (`*100#`, etc.), or type `*#06#` to inspect both IMEIs. Incoming and active calls open a dedicated call screen with earpiece/speaker switching, microphone mute, DTMF keypad, and one-key call recording (`~/Recordings/`).
|
||||
- **Contacts (`xcontacts`) and SMS manager (`xsms`)**: full phonebook editor with direct Qualcomm QMI SIM card contact import and export across SIM 1 and SIM 2, paired with a threaded SMS conversation view and multi-tap message composer.
|
||||
- **Modem and Dual-SIM manager (`xmodem`)**: 4-tab cellular control center (`SIMs`, `Radio`, `AT`, `Log`) supporting physical SIM 1 / SIM 2 active slot switching, SIM PIN unlock and PUK unblock wizards, 2G/3G/4G radio mode selection, interactive USSD sessions, and a live AT command console.
|
||||
- **Networks and Bluetooth manager (`xnetworks`)**: 3-tab connectivity manager for Wi-Fi networks, WPA2 password entry, Wi-Fi hotspot, USB tethering, mobile data and APN editing, and Bluetooth pairing.
|
||||
- **File manager (`xfiles`) and camera (`xcamera`)**: keypad directory browser with built-in text and image viewers, plus a live V4L2 camera viewfinder with digital zoom, flash/torch control, self-timer, and photo gallery.
|
||||
- **Themes (`xthemes`), wallpapers (`xwallpapers`), and ringtones (`xringtones`)**: installable `.Xresources` color and font themes (`~/.xthemes/*.xth`, 20 preinstalled schemes) with live zero-restart reload across the entire UI and terminal, alongside dedicated managers for desktop wallpapers and call ringtones/vibration.
|
||||
|
||||
### Input, terminal & developer tools
|
||||
- **6-mode `fcitx5-t9` keypad input**: Cycle with `#` between `abc`, `Abc`, `ABC`, `Sym` (all 32 ASCII punctuation symbols), `Ctl` (`Ctrl` sequences, arrows, `PageUp`/`PageDown`, `F1`–`F12`), and `123` numeric modes with a fixed bottom candidate bar.
|
||||
- **First-class Linux terminal (`st`)**: Patched with HarfBuzz OpenType ligatures (`Fira Code` as the default system and terminal font), XIM T9 input, and live theme reloading.
|
||||
- **On-device development & AI**: Preinstalled `gcc`/`g++`, `make`, `git`, GNU `coreutils`, `nano`, `ed`, `sqlite`, `perl`, `tcl`, the [Janet](https://janet-lang.org/) language & `jpm`, the [Bantam](https://bantam.luxferre.top/) coding agent, `frotz` (interactive fiction), and standalone X11 keypad games (`Snake` and `Tetris`).
|
||||
### Input, terminal, and developer tools
|
||||
- **6-mode `fcitx5-t9` keypad input**: press `#` to cycle between `abc`, `Abc`, `ABC`, `Sym` (all 32 ASCII punctuation symbols), `Ctl` (`Ctrl` sequences, arrows, `PageUp`/`PageDown`, `F1`–`F12`), and `123` numeric modes with a fixed bottom candidate bar.
|
||||
- **First-class Linux terminal (`st`)**: patched with HarfBuzz OpenType ligatures (`Fira Code` as the default system and terminal font), XIM T9 input, and live theme reloading.
|
||||
- **On-device development and AI**: preinstalled `gcc`/`g++`, `make`, `git`, GNU `coreutils`, `nano`, `ed`, `sqlite3`, `perl`, `tcl`, the [Janet](https://janet-lang.org/) language and `jpm`, the [Bantam](https://bantam.luxferre.top/) coding agent, `frotz` (interactive fiction), and standalone X11 keypad games (`Snake` and `Tetris`).
|
||||
|
||||
---
|
||||
|
||||
## Supported MSM8909 / MSM8905 devices
|
||||
## Supported MSM8909 and MSM8905 devices
|
||||
|
||||
| Device | Codename | SoC | CPU / RAM | Display & panel firmware | Device tree (`.dtb`) |
|
||||
| Device | Codename | SoC | CPU / RAM | Display and panel firmware | Device tree (`.dtb`) |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
| **Nokia 8110 4G** | `nokia-argon` | Qualcomm MSM8905 (SD205) | 2x Cortex-A7 @ 1.1 GHz, 512 MB | 2.4" 240x320 SPI (`nokia,argon-gc9305-v2-panel.bin`) | `qcom-msm8905-nokia-argon.dtb` |
|
||||
| **Nokia 2720 Flip** | `nokia-beatles` | Qualcomm MSM8905 (SD205) | 2x Cortex-A7 @ 1.1 GHz, 512 MB | 2.8" 240x320 SPI (`nokia,beatles-gc9305-panel.bin`) | `qcom-msm8905-nokia-beatles.dtb` |
|
||||
@@ -50,40 +52,41 @@ Instead of spawning slow shell scripts for everyday phone tasks, Bananarchy runs
|
||||
```text
|
||||
bananarchy/
|
||||
├── README.md # Project overview, repository layout, and build workflow
|
||||
├── CHANGELOG.md # Public release build history
|
||||
├── MANIFESTO.md # The Bananarchy Manifesto
|
||||
├── MANUAL.md # Complete flashing, keypad, plugin, T9, camera, and modem manual
|
||||
├── flash-edl.sh # Automated USB EDL flasher wrapper (sudo + ModemManager handling)
|
||||
├── flash-edl.py # Multi-device Qualcomm Sahara/Firehose EDL flasher
|
||||
├── rebuild-image.sh # Builds boot.img and partitioned MBR .img
|
||||
├── chroot-shell.sh # Rootless Docker armv7 package & rootfs customization shell
|
||||
├── chroot-shell.sh # Rootless Docker armv7 package and rootfs customization shell
|
||||
├── artwork/ # Bananarchy master icon, generated icons, wallpapers, and splashes
|
||||
├── bootloader/ # lk2nd secondary bootloader and Sahara/Firehose programmer (8110.mbn)
|
||||
├── devices/ # Device definitions, DTBs, and MIPI-DBI panel init sequences
|
||||
├── patches/ # Upstream kernel, EDL, Sxmo, Xlibre, and fcitx5-t9 patch sets
|
||||
├── src/
|
||||
│ ├── sxmo-dwm/ # Patched sxmo-dwm (240x320 bstack, Pango bar, softkey bar & plugin API)
|
||||
│ ├── sxmo-dwm/ # Patched sxmo-dwm (240x320 bstack, Pango bar, softkey bar, and plugin API)
|
||||
│ ├── dwm-plugins/ # DWM plugins (dialer, calllog, callscreen, contacts, sms, files, camera,
|
||||
│ │ # themes, modem, networks, ringtones, wallpapers), theme.h & runner
|
||||
│ │ # themes, modem, networks, ringtones, wallpapers), theme.h, and runner
|
||||
│ ├── xdrawer/ # XDrawer global phone controls DWM plugin (xdrawer.so / xdrawer)
|
||||
│ ├── sxmo-dmenu/ # Resident DWM menu plugin (dmenu.so) & client (dmenu / xdmenu)
|
||||
│ ├── sxmo-st/ # Patched sxmo-st terminal with HarfBuzz Fira Code ligatures & XIM
|
||||
│ ├── sxmo-dmenu/ # Resident DWM menu plugin (dmenu.so) and client (dmenu / xdmenu)
|
||||
│ ├── sxmo-st/ # Patched sxmo-st terminal with HarfBuzz Fira Code ligatures and XIM
|
||||
│ ├── xf86-input-libinput/ # Xlibre xf86-input-libinput DDX driver
|
||||
│ ├── xf86-video-fbdev/ # Xlibre xf86-video-fbdev fallback DDX driver
|
||||
│ ├── fcitx5-t9/ # 6-mode fcitx5-t9 keypad input method
|
||||
│ ├── games/ # Standalone keypad X11 games (snake.cpp, tetris.cpp)
|
||||
│ ├── leds-msm8905-torch/ # Kernel driver for SY7807 torch LED, WCD codec init & PON shutdown
|
||||
│ ├── leds-msm8905-torch/ # Kernel driver for SY7807 torch LED, WCD codec init, and PON shutdown
|
||||
│ └── msm8905-cam/ # Kernel V4L2 driver for GC2395 2MP rear camera (/dev/video0)
|
||||
├── overlay/rootfs/ # System configuration overlay applied over the target rootfs
|
||||
├── prebuilt/ # Pre-compiled armv7 binaries and kernel modules
|
||||
└── scripts/ # Cross-compilation, artwork generation, and overlay scripts
|
||||
└── scripts/ # Cross-compilation, artwork generation, version, and overlay scripts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Build & customization workflow
|
||||
## Build and customization workflow
|
||||
|
||||
### 1. Regenerate artwork assets
|
||||
Whenever `artwork/icon-large.png` is updated, regenerate all icons, `240x320` wallpapers, and boot splashes:
|
||||
Whenever `artwork/icon-large.png` is updated, regenerate all icons, `240x320` wallpapers, and animated boot splashes:
|
||||
```bash
|
||||
./scripts/generate-artwork.py
|
||||
```
|
||||
@@ -94,7 +97,7 @@ All components are pre-compiled in `prebuilt/` and `overlay/rootfs/`, and can be
|
||||
# Rebuild cross-compiled Xlibre (X11Libre/xserver) + libinput/fbdev DDX drivers
|
||||
./scripts/build-xlibre.sh
|
||||
|
||||
# Rebuild patched sxmo-st, sxmo-dmenu, sxmo-dwm & all 13 C++ DWM plugins
|
||||
# Rebuild patched sxmo-st, sxmo-dmenu, sxmo-dwm, and all 13 C++ DWM plugins
|
||||
./scripts/build-sxmo-x11.sh
|
||||
|
||||
# Rebuild standalone X11 games (snake, tetris)
|
||||
@@ -106,7 +109,7 @@ All components are pre-compiled in `prebuilt/` and `overlay/rootfs/`, and can be
|
||||
# Fetch latest master from https://code.luxferre.top/luxferre/bantam-cpp and cross-compile Bantam AI agent
|
||||
./scripts/build-bantam.sh
|
||||
|
||||
# Rebuild Linux 6.12.1-msm8916 QDSP6/Q6Voice audio modules, torch LED module, camera module & DTBs
|
||||
# Rebuild Linux 6.12.1-msm8916 QDSP6/Q6Voice audio modules, torch LED module, camera module, and DTBs
|
||||
./scripts/build-kernel-audio.sh
|
||||
```
|
||||
|
||||
@@ -129,8 +132,8 @@ All components are pre-compiled in `prebuilt/` and `overlay/rootfs/`, and can be
|
||||
./rebuild-image.sh nokia-tough --mkinitfs
|
||||
./rebuild-image.sh nokia-sparkler --mkinitfs
|
||||
```
|
||||
Output image is written to `images/`:
|
||||
- `images/bananarchy-<device>.img` (partitioned MBR image with `pmOS_boot` + `pmOS_root` for EDL `userdata`, `fastboot flash userdata`, or microSD card)
|
||||
Output images are written to `images/`:
|
||||
- `images/bananarchy-<device>.img`: partitioned MBR image with `pmOS_boot` + `pmOS_root` for EDL `userdata`, `fastboot flash userdata`, or a microSD card.
|
||||
|
||||
---
|
||||
|
||||
@@ -145,4 +148,4 @@ See [MANUAL.md](MANUAL.md) for complete EDL, Fastboot, and microSD installation
|
||||
|
||||
All Bananarchy-specific components were initially created by Luxferre and released into the public domain with no warranties.
|
||||
|
||||
Alpine Linux, postmarketOS/Nura and other third-party components are guided by their respective licensing terms.
|
||||
Alpine Linux, postmarketOS/Nura, and other third-party components are guided by their respective licensing terms.
|
||||
|
||||
Reference in New Issue
Block a user