How to use Linux
Log in, edit files, browse over HTTPS, move mail, manage the card, and compile small C programs on the board.
After flash, power the board from USB-C, connect HDMI, and attach a USB keyboard to the master's host path (Core 2 Proto has no USB-A host — use Core 2U for everyday keyboard use, or type through the harness).
Login #
FRANK Linux v1.00
frank login: root
There is no password on the bring-up image. The login shell is mksh (/bin/mksh), a NOMMU port with arrays, [[ ]], brace expansion and the rest that BusyBox hush lacks. BusyBox remains for the toolbox.
Consoles #
| Path | Role |
|---|---|
| HDMI (master) | Primary VT/ANSI console over the link |
| USB CDC (slave) | Debug serial — always available beside HDMI |
/dev/fb0 | 320×240 8-bit framebuffer; open switches the display, close returns the console |
The master is a terminal, not a framebuffer driver for Linux. Bytes go into a ring; core 1 of the slave fans them to CDC and across the link.
Storage #
| Mount | Backing | Notes |
|---|---|---|
/ | romfs in QSPI flash | Execute-in-place; root is read-only |
/mnt/sd | microSD on the master | Served over the link block driver |
/data | partition on the card | Persistent; journalled; repaired at boot if dirty |
/tmp, /run, /var | ramfs | No size cap — a runaway write can consume all 8 MB |
Programs too large for flash live under /data/apps with wrappers in /bin. Extra tools unpack to /data/opt and land on PATH via profile.d.
Networking #
There is no NIC on the Linux half. An ESP-01 on the master's UART0 appears as /dev/ttyESP0 over the link. Stock pppd brings up ppp0 against the module's lwIP PPP server + NAPT.
# once the ESP-01 is associated (see docs/networking.md in the repo)
pppd call esp
ip addr show ppp0Dropbear (client) is in the image for SSH out.
Everyday commands #
uname -a
free
ls /mnt/sd
mc # Midnight Commander (may load from the card)
lynx https://… # TLS via wolfSSL
mutt # IMAP/POP when the net is up
nano file.c
tcc -run hello.c # compile and run in memory (no FDPIC ELF write yet)
frankman # Pac-Man clone: board builds it with tccLimits worth remembering #
- No
fork()—vfork+execve/posix_spawnonly; subshells re-exec - No single allocation above ~512 kB is reliable (NOMMU contiguity)
- Framebuffer is 320×240; larger would not scan out
/tmpis unbounded ramfs
Deep dives live in the repository under docs/ (networking.md, storage.md, shell-nommu.md, graphics.md).