9front and Android

There is drawterm for android but here I’m gonna write down the steps to build and run plain 9front’s drawterm on your aarch64 Android phone without ever touching a PC.

This is weird


Install termux and run there:

pkg install unstable-repo && apt upgrade
pkg install x11-repo build-essential libx11 libxt xorgproto git binutils
git clone git://git.9front.org/plan9front/drawterm
cd drawterm
make CONF=unix -j4

At this point you have a functional ./drawterm that you can run with -G to skip graphics.

Running in graphics mode

If you really want to run rio, install xserver-xsdl, run it and go to “Configuration”. In “Downloads” check “additional fonts”, go back. There are useful settings to configure your mouse emulation and remap physical keys, but that’s up to you to figure out, I’m using a USB keyboard with a trackpoint instead. Check out video settings as well (DON’T enable 24-bit display).

After you’re done configuring, leave the settings and once a black screen appears tap fast once, choose your desired resolution and zoom, press “OK” and a blue screen should appear. Notice the “display” number (usually it’s just 0).

Now go back to termux and run:

export DISPLAY=:0
pkg install xorg-twm
twm &

Switch to xserver-xsdl, now position the window and start working with your drawterm.


Chording is hard without a proper mouse. Maybe drawterm -G is all one needs.

/mnt/term is all wrong? 2020-07-01 sirjofri : sigrid: from termux/drawterm you can access phone files at /mnt/term/root/data/data/com.termux/ directly (no ls before this path)


If you want to access files on Android from 9front (although in read-only and non-encrypted mode for now) you can do this:

pkg install git socat
git clone https://git.sr.ht/~ft/9pro
cd 9pro
termux-setup-storage    ### click Allow
ifconfig | grep 'inet ' ### notice your phone's IP address
socat TCP4-LISTEN:5640 EXEC:"./9pex -e $HOME/storage"

In 9front run 9fs tcp!phoneIPaddress!5640 /n/phone && ls /n/phone.

Last update: April 06, 2023 10:05PM

Leave a comment. Email addresses are not stored.