78 lines
3.7 KiB
Markdown
78 lines
3.7 KiB
Markdown
# FDS/OS
|
|
|
|
FDS/OS is a Linux operating system for the Felis FP-85, a Raspberry Pi 5 computer
|
|
with twelve USB cartridge bays and a Dasung Paperlike 13K display. It combines
|
|
Void Linux packages, native s6 services and static Rust system tools with a
|
|
simple cartridge workflow: insert software, run it, and eject it when finished.
|
|
|
|
## How the system fits together
|
|
|
|
| Component | Purpose |
|
|
| --- | --- |
|
|
| Internal NVMe | Holds boot files, recovery and persistent machine settings |
|
|
| SYSTEM cartridge | Supplies the read-only operating system; swapping it changes the OS |
|
|
| PROGRAM cartridge | Supplies applications and their dependencies, ready to execute |
|
|
| DATA cartridge | Stores writable files at `/data` |
|
|
| ENVIRONMENT cartridge | Selects an installed environment, such as WindowMaker |
|
|
|
|
The default interface is a console. WindowMaker provides an optional grayscale
|
|
retro desktop and an FDS Control panel for inspecting bays, launching programs
|
|
and ejecting cartridges. The same theme is used on ordinary screens and E-Ink.
|
|
The Dasung controller is part of the base system and starts independently of
|
|
the desktop or any ENVIRONMENT cartridge.
|
|
|
|
## Choose a starting point
|
|
|
|
- **Build and try FDS:** follow [Build and start FDS](docs/getting-started.md).
|
|
- **Build an application cartridge:** use the [software and emulator walkthrough](docs/workstation.md).
|
|
- **Use the computer:** read [Using cartridges](docs/cartridges.md), [DATA](docs/data.md), and [the desktop guide](docs/desktop.md).
|
|
- **Install or maintain a machine:** see [internal storage](docs/internal-storage.md), [release verification](docs/releases.md), and [recovery](docs/recovery.md).
|
|
- **Free build space:** run `make clean-preview`, then `make clean`; see [cleanup](docs/cleanup.md).
|
|
|
|
The [user manual](docs/README.md) is organized around tasks. Build internals,
|
|
design decisions, hardware procedures and validation records live separately in
|
|
[developer notes](docs/developer/README.md).
|
|
|
|
## A typical software session
|
|
|
|
These commands run on FDS after inserting the example PROGRAM cartridge in bay 1:
|
|
|
|
```sh
|
|
fds bays
|
|
fds bay 01
|
|
hello 'Hello from FDS'
|
|
fds run 01 -- demo.report:report
|
|
fds eject 01
|
|
```
|
|
|
|
`hello` runs in your current terminal. `fds run` starts a managed background
|
|
command. Both forms are tracked for eject. Wait for **SAFE** before removing
|
|
media; use `fds poweroff` to shut down the whole computer.
|
|
|
|
## Build tools
|
|
|
|
Run these from the repository root:
|
|
|
|
| Command | Result |
|
|
| --- | --- |
|
|
| `make workstation` | Arch `fds-tools` package containing both workstation commands |
|
|
| `make workstation-install` | Install that package using pacman |
|
|
| `make workstation-binaries` | Native commands for other Linux distributions |
|
|
| `make bootstrap` | Prepares the complete OS build environment on x86_64 Arch Linux |
|
|
| `make rootfs PROFILE=cli` | Builds the ARM base filesystem and its packages |
|
|
| `make system-card PROFILE=cli` | Creates a whole-disk SYSTEM cartridge image |
|
|
| `make initramfs` | Creates early boot userspace |
|
|
| `make all` | Builds the complete CLI/development, recovery and internal image set |
|
|
| `make clean` | Removes obsolete generated workspaces and Rust build output |
|
|
|
|
New software cartridges are built from metadata and Void source packages using
|
|
`xbps-src` on a Linux workstation. Their EROFS partitions contain installed
|
|
programs and dependencies directly. FDS does not extract those programs at launch.
|
|
|
|
The workstation walkthrough includes prerequisites, complete example commands,
|
|
expected outputs, emulator lifecycle and the confirmed USB-writing workflow.
|
|
Append `--help` to either native tool for its command reference; run `make help`
|
|
for the complete build target list.
|
|
|
|
Build identities come from Git release tags. See [versioning](docs/developer/versioning.md) for release, development and source-export behavior.
|