31 KiB
Bananarchy Linux — user, flashing, and customization manual
This manual covers flashing, operating, and customizing Bananarchy Linux (240x320 native edition) on Qualcomm MSM8905 and MSM8909 Nokia feature phones:
- Nokia 8110 4G (
nokia-argon) - Nokia 2720 Flip (
nokia-beatles) - Nokia 800 Tough (
nokia-tough/nokia-coconut) - Nokia 8000 4G (
nokia-sparkler) and Nokia 6300 4G (nokia-leo)
1. System overview and workspace contents
1.1 System images (images/)
images/bananarchy-nokia-argon.img: partitioned MBR image (256 MiBext2pmOS_boot+ext4pmOS_root) ready for EDL flashing touserdata,fastboot flash userdata, or rawddto a microSD card.- Additional device images (
bananarchy-nokia-beatles.img,bananarchy-nokia-tough.img,bananarchy-nokia-sparkler.img) can be generated at any time via./rebuild-image.sh <device> --mkinitfs.
1.2 Bootloader and EDL programmer (bootloader/)
bootloader/lk2nd-msm8909.img: secondary bootloader (lk2nd) providing Fastboot andextlinuxboot discovery for MSM8905 and MSM8909 devices.bootloader/loaders/8110.mbn: signed Qualcomm Sahara/Firehose programmer (05c6:9008).
1.3 Core architecture highlights
- Pure X11 (
Xlibre+sxmo-de-dwm) for240x320QVGA displays:- Uses a lightweight cross-compiled Xlibre server with
modesettingKMS, partial-rectangleShadowFBSPI updates, and zero Wayland overhead. - Patched
dwmprovides a240x320vertical bottom-stack (bstack) layout, a 24px top status bar, a transparent"Menu"/"Names"desktop softkey bar, a Conky desktop clock and status widget (which refreshes automatically when changing time, timezone, or wallpaper, or when logging out), and< 2 mshandling of physical slider (SW_LID) and wake keys.
- Uses a lightweight cross-compiled Xlibre server with
- Preloaded resident DWM plugins (
< 2 mswakeup):- Core phone applications (
dmenu,xdrawer,dialer,calllog,callscreen,contacts,sms,files,camera,themes,modem,networks,ringtones,wallpapers,music) run as preloaded resident daemons (dwm-plugin <name> --preload) that sleep at 0% CPU and open instantaneously over FIFO/socket IPC. - All UI elements share a single XRDB theming engine (
~/.xthemes/*.xth->~/.Xresources) with 20 preinstalled color schemes, proportional font sizing (theme.baseFontSize), and live reload without restarting X11.
- Core phone applications (
- First-class terminal (
st) and 6-modefcitx5-t9keypad input:stis patched with HarfBuzz OpenType ligature shaping (Fira Codedefault) and live.Xresourcesreload.fcitx5-t9provides 6 keypad input modes (abc,Abc,ABC,Sym,Ctl,123+*long-pressCtrl+latch) in a fixed bottom candidate bar (Y = 290, H = 30).
- Mainline Linux 6.12 hardware drivers:
- QDSP6 / Q6Voice audio and Dual-SIM modem: loudspeaker, boosted (+6 dB) earpiece, internal MEMS and headset microphones,
ModemManager+q6voicedcall audio routing, and direct Qualcomm QMI UIM Dual-SIM slot switching, PIN/PUK management, and SIM phonebook access. - Rear 2MP camera and torch LED:
msm8905-camV4L2 driver (/dev/video0800x600RGB3for GalaxyCoreGC2395) andleds-msm8905-torch(white:torch+ PM8909 clean poweroff).
- QDSP6 / Q6Voice audio and Dual-SIM modem: loudspeaker, boosted (+6 dB) earpiece, internal MEMS and headset microphones,
- Preinstalled developer and utility stack:
gcc/g++,make,git, GNUcoreutils,nano,ed,less,rlwrap,janet+jpm,bantamcoding agent,perl(IO::Socket::SSL),tcl(tcllib,tcl-tls,sqlite-tcl),sqlite3,frotz,ffmpeg,mpv,imv, and standalonesnakeandtetrisX11 games.
2. Flashing instructions
Method A: automated USB EDL flasher (recommended)
Run the automated EDL flasher from the repository root on your host machine:
sudo ./flash-edl.sh
(To flash another target device image, pass its codename, e.g. sudo ./flash-edl.sh nokia-sparkler.)
The script performs the following steps automatically:
- Temporarily pauses host
ModemManagerso it does not interfere with05c6:9008. - Waits for the phone to appear in Qualcomm EDL mode (
05c6:9008):- From Bananarchy Linux: open the Power menu (
End / Powerkey orSystem menu -> Power), select Reboot to loader (sxmo_power.sh loader) to enter thelk2ndFastboot menu, and select EDL (or letflash-edl.shautomatically sendfastboot oem reboot-edl). - Button combo: power off the phone, hold D-Pad up + D-Pad down, and plug in the USB cable.
- EDL cable: hold the EDL cable button while plugging in USB.
- From ADB or Fastboot: the script automatically sends
adb reboot edlorfastboot oem reboot-edlif detected.
- From Bananarchy Linux: open the Power menu (
- Uploads
bootloader/loaders/8110.mbnvia Sahara and connects to eMMC via Firehose. - Backs up
gpt.bin,fsc,fsg,modemst1,modemst2,persist, andbootinto./backup/if not already backed up. - Flashes
lk2nd-msm8909.imgtoboot, flashesimages/bananarchy-<device>.imgtouserdata, clears the stocksystemsuperblock, and reboots into Bananarchy Linux.
Method B: Fastboot flashing (once lk2nd is installed)
- Enter the
lk2ndFastboot menu either by selecting Reboot to loader from the Power menu (sxmo_power.sh loader) or by holding D-Pad down while powering on the phone. - Flash the system image to
userdata:fastboot flash userdata ./images/bananarchy-nokia-argon.img fastboot erase system fastboot reboot
Method C: booting from a microSD card
lk2nd automatically checks the microSD card for a pmOS_boot partition before internal eMMC:
sudo dd if=./images/bananarchy-nokia-argon.img of=/dev/sdX bs=4M status=progress conv=fsync
3. Keypad controls and native applications
3.1 Global keypad controls (240x320)
| Physical key | Linux keysym / event | Action |
|---|---|---|
Left softkey (Menu) |
XF86KbdLcdMenu1 (KEY_MENU) |
Open System menu, close open menu, or wake and unlock when locked |
Right softkey (Names / Back) |
XF86KbdLcdMenu2 / BackSpace (KEY_BACK) |
On empty desktop: open Contacts (Names); inside apps: open App context menu (or close menu if open); in T9 preedit: BackSpace |
| Both softkeys together | KEY_MENU + KEY_BACK |
Toggle XDrawer (xdrawer) global phone controls overlay from anywhere |
Digits 0–9, *, # (on idle desktop) |
0–9, asterisk, numbersign |
Open Dialer (xdialer) and immediately insert the pressed digit, *, or # |
| Call (green) | XF86PickupPhone / XF86Phone (KEY_SEND) |
Answer incoming call when ringing; on empty desktop: open Call Log (xcalllog); when locked: wake and unlock; in menus: confirm (Return); in apps: 2x focus next window, 3x cycle tiling layout |
| End / Power (red) | XF86PowerOff |
Wake and unlock when locked, close open plugin/menu, or: 1x open Power menu, 2x cycle screen state, 3x (or hold 400ms) launch a new terminal |
| D-Pad up / down | Up / Down |
Navigate menus and apps; in st: Shift+Up/Shift+Down (or ScrlUp/ScrlDn in Ctl mode) scrolls terminal history; in T9 preedit: toggle letter case (a <-> A) or jump +4 / -4 candidates |
| D-Pad left / right | Left / Right |
On empty desktop: switch workspace tags (-1 / +1); in T9 preedit: step back 1 candidate (Left) or commit candidate (Right); in idle Ctl mode: Home / End |
| Center OK | Return (KEY_OK) |
Confirm / Enter, or commit active T9 preedit candidate immediately |
| Slider close / open | SW_LID (lid:on / lid:off) |
Close: close open menu, turn off keypad backlight, and lock/turn screen off; Open: restore keypad backlight, unlock, and turn screen on |
Screen blanking, locking, and waking: X11 screensaver/DPMS blanking is disabled so screen state is controlled cleanly by Sxmo. Automatic idle locking is disabled so the phone only locks when you explicitly ask it to (
Power -> Lock,XDrawer -> Lock,2x End / Power, or closing the physical slider). To save battery, the display blanks after inactivity (SXMO_UNLOCK_IDLE_TIME, default 30s;SXMO_LOCK_IDLE_TIME, default 8s once locked) without locking. When the screen is off, wake and unlock in a single action by opening the slider or pressing End / Power, Left softkey, Right softkey, or Call (green).
3.1.1 Window tiling modes and switching combos
By default, dwm uses the vertical bottom-stack (bstack, TTT) layout so multiple st terminals stack vertically (one under another) to preserve full line width on the 240x320 portrait screen.
You can switch layouts and focus using either physical keypad multi-presses or an external keyboard (Mod4 / Super):
- Triple-press Call (green) (
3x Call): cycle the active layout (TTT->[]=->[D]->[M]->TTT). - Double-press Call (green) (
2x Call): move focus to the next open window (Super+j). - Triple-press End / Power (red) (
3x End): launch a newstterminal in the active workspace. - External keyboard shortcuts (
Mod4):Mod4+space: cycle layout (TTT->[]=->[D]->[M]).Mod4+Shift+slash: vertical stack layout (bstack,TTT).Mod4+slash: horizontal tile layout (tile,[]=).Mod4+m: fullscreen monocle layout (monocle,[M]).Mod4+Up/Mod4+Down(orMod4+k/Mod4+j): move focus between tiled windows.Mod4+Shift+k/Mod4+Shift+j: move the focused window up or down in the stack.Mod4+1..4: switch to workspace tag1..4.Mod4+Shift+q: close the focused window.
3.1.2 Preloaded native DWM applications
All fifteen phone applications are compiled as shared-object plugins (/usr/lib/dwm/plugins/*.so), preloaded at dwm startup, and awakened over /tmp/dwm_plugin_<name>.fifo in < 2 ms:
-
System and context menus (
dmenu.so/dmenu/xdmenu):- Open / close: press Left softkey (
Menu) for the System menu or Right softkey (Back) inside an application for its Context menu; press the same softkey orEscapeto close. - Built-in submenus and instant toggles: renders
sys,applications,scripts,modem,config,power(including Logout, Reboot, Reboot to loader, Reboot to EDL, and Poweroff),audio,notifications,wm,timezone,games,st, andnanomenus in place in< 0.5 mswithout spawning external processes. - Script compatibility: any script piping items into
/usr/bin/dmenuorsxmo_dmenu.shcommunicates with the resident daemon over/tmp/dwm_plugin_dmenu.sock.
- Open / close: press Left softkey (
-
Global phone controls (
xdrawer.so/xdrawer):- Open / close: press both softkeys simultaneously (
KEY_MENU+KEY_BACK) from anywhere, or select XDrawer from the System menu. - Controls: use
Up/Down(or1–9/0) to select Speaker, Earpiece, Ring Vol, Ringer (Ring+Vib/Vibrate/Silent/DND), Vibration (Light/Medium/Strongwith instant tactile feedback), Flashlight, Sound, Microphone, Screen, or Keypad; useLeft/RightorReturnto adjust or toggle.
- Open / close: press both softkeys simultaneously (
-
Phone dialer (
dialer.so/xdialer):- Open: press any
0–9,*, or#key on the empty desktop, or open Dialer from the System menu or Call Log. - Dialing and T9 search: typing digits filters saved contacts and recent numbers by phone number and T9 name in real time. Hold
0(>= 420 ms) or pressRight/ Left softkey (+Sign) to insert+. - USSD codes and
*#06#Dual-SIM IMEI display:- Typing
*#06#immediately opens the Device IMEI (*#06#) dialog showingIMEI 1,IMEI 2, andIMEI SV. - Typing any USSD code (
*...#or#...#, such as*100#) switches the center softkey toSEND. Pressing Call (green) or CenterOKruns the USSD session inside an interactive in-dialer modal with scrollable carrier output and multi-step reply support.
- Typing
- Open: press any
-
Call history (
calllog.so/xcalllog):- Open: press Call (green) on the empty desktop, or select Call Log from the System menu or Dialer.
- Controls:
Left/Rightswitches betweenAll,Missed,In, andOuttabs;Up/Downscrolls; Call (green) or CenterOKdials the selected entry; Left softkey (Dialer) loads the number into the Dialer.
-
Incoming and active call screen (
callscreen.so/xcallscreen):- Automatic activation: wakes the screen and opens automatically on incoming and outgoing calls. Pressing Call (green) during an active call reopens
xcallscreenfrom anywhere. - Incoming call actions: press Call (green), Left softkey (
Accept),1, or CenterOKto answer; press*or0to silence the ringer; press End (red), Right softkey (Reject), or#to decline. - In-call controls and recording:
[1]/*— microphone mute: toggles hardware QDSP6 and PipeWire microphone mute (ON/MUTED).[2]/#— call recording: starts or stops recording call audio (8 kHzmono S16_LE WAV viaMultiMedia2hw:0,1with automatic peak normalization) to~/Recordings/rec_HHMMSS_<caller>.wav, displaying a liveREC MM:SStimer while recording and a persistent greenSAVED MM:SSbadge once saved.[3]— audio route: switches betweenEARPIECE(default for all calls) andSPEAKER.Left/Right— call volume: adjusts in-call volume in5%steps.[0]/ Left softkey (DTMF): toggles DTMF tone keypad mode.- End (red) or Right softkey (
Hangup): hangs up the call.
- Automatic activation: wakes the screen and opens automatically on incoming and outgoing calls. Pressing Call (green) during an active call reopens
-
Contacts phonebook (
contacts.so/xcontacts):- Open: press the Right softkey (
Names) on the empty desktop, or select Contacts from the System menu. - Search and actions: type
0–9for live T9/number filtering; press Call (green) to dial immediately; press CenterOKfor the contact details card (Call Contact, Send SMS, Read Messages, Open in Dialer, Copy to SIM, Edit Contact, Delete Contact); or press Left softkey (Options) for phonebook-wide actions. - Direct Dual-SIM QMI phonebook import and export: select Import from SIM or Export to SIM in the Options menu (or Copy to SIM on an individual contact) to read or write
EF_ADNSIM phonebook records directly over Qualcomm QMI UIM (qrtr://0) on either SIM 1 or SIM 2 — even on the inactive SIM slot. - Built-in contact editor: create or edit contacts directly on the keypad (
#cycles input mode,*inserts space, hold0or pressRightfor+, or pick from recent unknown callers).
- Open: press the Right softkey (
-
SMS manager and composer (
sms.so/xsms):- Open: select Texts from the System menu, or choose Send SMS / Read Messages from Contacts.
- Conversations and thread view: browse SMS threads and drafts with contact name resolution, unread indicators, and message bubbles (
RecvandSent). - Multi-tap composer: pick a recipient from Contacts/Recents or type a number (hold
0for+), compose messages with multi-tap keypad entry (#cycles input mode), monitor live character/segment counts (0/160), save drafts automatically, and send via Call (green), CenterOK, or Left softkey.
-
File manager (
files.so/xfiles):- Open: select Files from the System menu or press
Mod4+d. - Controls and viewers: navigate directories with
Up/Down/Left/Right/Return, filter with0–9, toggle dotfiles with*, and cycle sort order (Name / Date / Size) with#. - Image preview and wallpaper installation: pressing
Returnon any image file (.jpg,.png,.bmp,.gif,.webp,.ppm,.tif,.ico,.svg) opens the built-in image viewer (*toggles full-screen preview; Left softkey (Set Wall) installs the image into~/Pictures/Wallpapers/, applies it viafeh, and refreshes Conky). You can also select Preview Image or Set as Wallpaper directly from the Left softkey (Actions) menu. - Audio playback and ringtone installation: pressing
Returnon any audio or tracker module file opens it immediately in Music (xmusic). From the Left softkey (Actions) menu on any audio/tracker file, select Play in Music Player to play it inxmusic, or Set as Ringtone to copy it to~/Ringtones/and set it as the active phone ringtone. - File management actions: the Left softkey (
Actions) menu also provides View Text, Edit in Nano, New Folder, New File, Rename, Copy, Cut / Move, Paste Here, Properties, Open Terminal Here, and Delete.
- Open: select Files from the System menu or press
-
Camera (
camera.so/xcamera):- Open: select Camera from the System menu or run
xcamera. - Viewfinder and gallery: streams live
800x600frames from/dev/video0(GC2395) into a240x1804:3 viewfinder. Press CenterOK,5, or Call (green) to capture a JPEG to~/Pictures/photo-YYYYMMDD-HHMMSS.jpg;*or1toggles Auto-Flash;0or2toggles continuous Torch;Up/Downadjusts Digital Zoom (1.0x/2.0x/4.0x);#or3toggles the 3-second Self-Timer; Left softkey (Gallery) opens the built-in photo gallery.
- Open: select Camera from the System menu or run
-
Theme manager (
themes.so/xthemes):- Open: select Themes from the System, Apps, or Config menu, or run
xthemes. - Live theme switching and customizer: browse 20 preinstalled
.xthschemes (~/.xthemes/*.xth) with live color swatches and press CenterOKor Call (green) to apply acrossdwm,dmenu,st, and all plugins with zero restart. Press*or Left softkey to customize individual colors and font sizes, save a custom theme (#), or edit the.xthfile in Nano.
- Open: select Themes from the System, Apps, or Config menu, or run
-
Modem, Dual-SIM, and PIN/PUK manager (
modem.so/xmodem):- Open: select Modem from the System menu, or run
xmodem. Also opens automatically when a SIM card requires PIN or PUK unlock. - Four control tabs (
Left/Rightor1–4):1:SIMs: inspects both physical SIM slots via QMI UIM (PRESENT/EMPTY,[ACTIVE],READY/PIN-LOCK/PUK-LOCK, remaining retries, operator, and ICCID). PressReturnon a slot to Activate SIM Slot 1 / 2, Unlock SIM PIN, Unblock SIM with PUK, Enable / Disable PIN Lock, or Change SIM PIN (with automaticModemManagerreprobe after unlock).2:Radio: shows signal bar, registration status, access technology (LTE/UMTS/GSM), operator, both IMEIs, and phone number, with actions to switch Network Mode (4G/3G/2G,3G/2G,4G Only,3G Only,2G Only), Send USSD Code, toggle Modem Power, or Restart ModemManager.3:AT: interactive AT command console with presets (AT,ATI,AT+CSQ,AT+CPIN?,AT+COPS?, etc.) and custom keypad entry.4:Log: scrollable history of calls, SMS events, and USSD responses.
- Open: select Modem from the System menu, or run
-
Networks and Bluetooth manager (
networks.so/xnetworks/xbluetooth):- Open: select Networks or Bluetooth from the System menu, or run
xnetworks/xbluetooth. - Three connectivity tabs (
Left/Rightor1–3):1:Wi-Fi: toggle Wi-Fi radio, rescan (*), toggle Wi-Fi Hotspot, and connect to WPA2/open networks with a multi-tap password dialog (*toggles password visibility).2:Cell/APN: toggle Mobile Data (configuring the QMIbam-dmuxwwan0static IPv4 bearer, default route, and DNS automatically), inspectwwan0IPv4 status, edit APN Configuration, and toggle USB Tethering.3:Bluetooth: toggle Bluetooth power, scan nearby devices (*), and pair, connect, disconnect, or remove devices.
- Open: select Networks or Bluetooth from the System menu, or run
-
Ringtones and ringer manager (
ringtones.so/xringtones):- Open: select Ringtones from the System, Config, or Audio menu, or run
xringtones. - Controls: preview built-in, tracker module (
.mod,.xm,.it,.s3m, etc.), and user ringtones (~/Ringtones/,~/Music/,/usr/share/sxmo/ringtones/,/usr/share/sxmo/music/) at the configured ringtone volume with*or Left softkey (Play/Stop), pressReturnto set the active ringtone, and switch to2:Settingsto configure Ringer Mode, Ring Volume (0%–100%, also adjustable in XDrawer), Ring Duration, Ring Loop Count, and 3-level hardware Vibrate Strength (Level 1 (Light)pulsed1600 mV,Level 2 (Medium)pulsed2100 mV,Level 3 (Strong)continuous3100 mV, also adjustable in XDrawer).
- Open: select Ringtones from the System, Config, or Audio menu, or run
-
Desktop wallpaper manager (
wallpapers.so/xwallpapers/xbackground):- Open: select Wallpapers from the System, Config, or Apps menu, or run
xwallpapers. - Controls: browse system and user wallpapers with a live portrait thumbnail, cycle scaling mode (
Fill,Scale,Fit,Center,Tile) withLeft/Rightor#, toggle full-screen preview with*, and pressReturnto apply the wallpaper and immediately refresh the Conky desktop overlay.
- Open: select Wallpapers from the System, Config, or Apps menu, or run
-
Music and tracker module player (
music.so/xmusic/xplayer):- Open: select Music from the System, Applications, or Audio menu, open any audio/tracker file from Files (
xfiles), or runxmusic [file_or_dir]. - Supported formats: plays standard audio (
.wav,.mp3,.ogg,.flac,.opus,.m4a,.aac) as well as classic chiptune/tracker modules (.mod,.xm,.it,.s3m,.mptm,.stm,.med,.okt,.669,.ult,.far,.mtm,.ptm,.amf,.dsm,.imf,.gdm,.stx,.umx,.mo3) via an embeddedmpv+FFmpeg+libopenmptbackend that automatically pauses on incoming calls. - Three tabs (
1:Player,2:Queue,3:Files— switch with1–3orLeft/Rightin Queue/Files):1:Player: displays format badge (MOD,XM,MP3, etc.), scrolling track title, artist/metadata, animated equalizer bars, elapsed/total progress bar, repeat mode (Off,All,One), shuffle state, and volume. PressReturnor5to Play/Pause,Left/Right(4/6) to Seek-5s/+5s,Up/Down(2/8) to adjust Volume,7/9for Prev/Next track,*to cycle Repeat,#to toggle Shuffle,0to Stop, or Left softkey (Options) to install the current track as the phone ringtone.2:Queue: browse the active playlist queue, filter with0–9, pressReturnto jump to a track,*to remove a track,#to shuffle, or Left softkey (Actions) to set the selected track as ringtone or clear the queue.3:Files: browse the filesystem (~/Music,/usr/share/sxmo/music,/usr/share/sxmo/ringtones, or any folder), pressReturnto play a file and load its folder into the queue,*to append a file or folder to the queue, or#to play the entire current folder.
- Open: select Music from the System, Applications, or Audio menu, open any audio/tracker file from Files (
3.1.3 Standalone keypad games (Snake and Tetris)
Two classic X11 games (/usr/bin/snake and /usr/bin/tetris) are accessible from System menu -> Games:
- Snake (
snake): steer with2/8/4/6or D-Pad; pause or restart with5/Return/#/*; quit withRight softkey/BackSpace/Escape. - Tetris (
tetris): move with4/6(Left/Right), rotate with2(Up), soft drop with8(Down), hard drop with0/5/Return, pause with#/*, and quit withRight softkey/BackSpace/Escape.
3.2 Multi-mode fcitx5-t9 keypad reference
- Short-press
#(when no character is in preedit): cycles through the 6 input modes (abc->Abc->ABC->Sym->Ctl->123->abc), showing a1500msmode banner at the bottom of the screen. - Auto-commit timeout:
1500msfor keys with<= 10candidates, or1800msfor keys with> 10candidates. Pressing a different key immediately commits the active candidate. - While a candidate is highlighted (
[item]) in preedit:- Press
#or D-PadUp: toggles letter case (a<->A) on the fly, or jumps forward+4candidates for non-alphabetic items. - Press D-Pad
Down: toggles letter case (a<->A) for alphabetic items, or jumps backward-4candidates for non-alphabetic items. - Press D-Pad
Left: steps backward 1 candidate on the same key. - Press D-Pad
Rightor CenterOK(Return): commits the highlighted candidate immediately. - Press
BackSpace: cancels the uncommitted preedit candidate without deleting already committed text.
- Press
- Long-press (
>= 550ms):- Hold
0–9: commits the digit (0–9) immediately in any mode. - Hold
*: in123mode, commits.(decimal point); in all other modes, toggles a one-shotCtrl+modifier latch (+^) so the next key is sent asCtrl+<key>. - Hold
#: commits a literal#character immediately in any mode.
- Hold
Modes 1–3: abc (lowercase), Abc (one-shot Shift), and ABC (Caps Lock)
(In Abc and ABC modes, uppercase letters precede the digit and lowercase letters on keys 2–9. In Abc mode, committing an alphabetic character automatically reverts to abc.)
| Key | Tap sequence (abc mode) |
|---|---|
1 |
. , - _ ! ? / @ : ; ' " + = * # $ % ^ & ( ) [ ] { } < > | \ ~ ` 1 |
2 |
a b c 2 A B C |
3 |
d e f 3 D E F |
4 |
g h i 4 G H I |
5 |
j k l 5 J K L |
6 |
m n o 6 M N O |
7 |
p q r s 7 P Q R S |
8 |
t u v 8 T U V |
9 |
w x y z 9 W X Y Z |
0 |
Space (SPC) 0 Ent (Return) Tab |
* |
* # + - = _ / \ | ~ ` @ $ % ^ & ( ) [ ] { } < > ' " . , ! ? : ; Tab Esc ^C ^D ^Z (hold 450ms for Ctrl+ latch) |
Mode 4: Sym (grouped ASCII punctuation, symbols, and special keys)
| Key | Symbols / keys |
|---|---|
1 |
. , ! ? : ; - _ 1 |
2 |
@ # $ % ^ & 2 |
3 |
( ) [ ] { } < > 3 |
4 |
+ - * / = _ 4 |
5 |
| \ ~ ` ' " 5 |
6 |
' " ` ~ ^ 6 |
7 |
/ \ | _ - + 7 |
8 |
< > ! = ? & 8 |
9 |
$ % ^ & * # @ 9 |
0 |
Space (SPC) 0 Tab Ent (Return) Esc |
* |
* # + - = _ / \ | ~ ` @ $ % ^ & ( ) [ ] { } < > ' " . , ! ? : ; |
Mode 5: Ctl (terminal control characters, navigation, and function keys)
- Direct D-Pad navigation (when no preedit candidate is active in
Ctlmode):- D-Pad
Up/Down: sendsPage_Up(PgUp) /Page_Down(PgDn) immediately. - D-Pad
Left/Right: sendsHome/Endimmediately.
- D-Pad
- Keypad multi-tap:
| Key | Control sequences / special keys |
|---|---|
1 |
Esc Tab Del Ins Bksp |
2 |
^C ^D ^Z ^X ^\ |
3 |
^A ^E ^U ^K ^W |
4 |
^R ^L ^P ^N ^G |
5 |
^S ^Q ^O ^T ^Y |
6 |
^B ^F ^V ^H ^[ ^] ^^ ^_ |
7 |
PgUp PgDn Home End ScrlUp ScrlDn |
8 |
Up Down Left Right |
9 |
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 |
0 |
Space (SPC) Tab Ent (Return) Esc |
* |
Esc Tab ^C ^D ^Z ^X ^L ^R ^W |
Mode 6: 123 (instant numeric entry)
| Key | Action |
|---|---|
0–9 |
Commits digit 0–9 immediately on single tap |
* |
Commits * immediately on single tap; hold 450ms to commit . (decimal point) |
# |
Short-press: cycle back to abc mode; hold 450ms: commit # |
4. Default credentials, USB SSH, and Bantam AI agent
- Username:
user - Password:
147147(doasandsudoenabled, with passwordlessdoasconfigured forwheelin/etc/doas.d/50-sxmo.conf) - USB networking SSH:
ssh user@172.16.42.1 - Bantam AI agent:
Launch Bantam directly from the System menu (
Left softkey -> Applications -> Bantam), or runbantamin any terminal (st) or over SSH. Configure your endpoint and API key via environment variables or~/.bantam.cfgwhen needed.
5. Command-line hardware reference
5.1 Taking photos from the CLI (bananarchy-photo and /dev/video0)
The msm8905-cam kernel module drives the rear 2MP GalaxyCore GC2395 sensor through MSM8909 CAMSS and registers /dev/video0 (800x600 24-bit RGB3).
- Using
bananarchy-photo:# Capture to ~/Pictures/photo-YYYYMMDD-HHMMSS.jpg and print path bananarchy-photo # Capture with rear LED flash enabled and open in imv bananarchy-photo -f -v # Capture to a custom JPEG or PNG file path bananarchy-photo ~/my-shot.png - Direct low-level capture (
v4l2-ctl+ffmpeg -f rawvideo):v4l2-ctl -d /dev/video0 \ --set-fmt-video=width=800,height=600,pixelformat=RGB3 \ --stream-mmap --stream-count=1 --stream-to=/tmp/frame.rgb && \ ffmpeg -hide_banner -loglevel error \ -f rawvideo -pixel_format rgb24 -video_size 800x600 \ -i /tmp/frame.rgb -frames:v 1 -y ~/photo.jpg && \ rm -f /tmp/frame.rgb
5.2 Audio routing, music playback, and microphone recording
Both the rear loudspeaker (Speaker, with boosted RX3 Digital Volume for loud, clear ringtones and media) and the front earpiece speaker (Earpiece, boosted by +6 dB), as well as the internal MEMS microphone (Mic1) and 3.5mm headset microphone (Mic2), are managed through PipeWire/WirePlumber and sxmo_audio.sh:
- Open an audio file, tracker module (
.mod,.xm,.it,.s3m), or folder in the native music player (xmusic):xmusic ~/Music/Bananarchy_Chip.mod - List available audio outputs (
Speaker,Earpiece,Headphones):sxmo_audio.sh out list - Switch active output to the rear loudspeaker or front earpiece:
sxmo_audio.sh out set "Speaker" sxmo_audio.sh out set "Earpiece" - Record from the internal MEMS microphone (
Mic1):pw-record --rate=48000 --channels=1 --format=s16 ~/recording.wav
5.3 Flashlight (white:torch), keypad backlight (white:kbd_backlight), and vibration (sxmo_vibrate)
- Turn rear flashlight on or off:
brightnessctl -d white:torch set 1 brightnessctl -d white:torch set 0 - Set keypad backlight brightness (
0–255):brightnessctl -d white:kbd_backlight set 255 - Trigger PM8909 vibration motor (
duration_ms [strength_1_to_3]):sxmo_vibrate 350 1 # light (1600 mV, 38% duty cycle) sxmo_vibrate 350 2 # medium (2100 mV, 67% duty cycle) sxmo_vibrate 350 3 # strong (3100 mV, 100% continuous)
5.4 Cellular modem, Dual-SIM, and QMI UIM helper
- Inspect Dual-SIM card status, PIN/PUK state, and active slot:
doas /usr/libexec/msm-modem-uim-selection status - Inspect ModemManager registration, operator, and signal quality:
mmcli -m any
