update doc structure

This commit is contained in:
2026-09-24 13:54:28 +08:00
parent 0d42dc5acc
commit 685b4135df
93 changed files with 190 additions and 12735 deletions
+18 -73
View File
@@ -1,78 +1,23 @@
# 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.
FDS/OS is a cartridge-based Linux system for the Felis FP-85: Raspberry Pi 5,
twelve USB cartridge bays and a Dasung Paperlike 13K display. It uses Void Linux
packages, native s6 services and static Rust system tools. The Dasung daemon is
included in the base system; WindowMaker is an optional desktop.
## How the system fits together
The **[Gitea wiki](http://gitea.home.arpa/felis/fds-os/wiki/Home)** is the complete,
authoritative manual:
| 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 |
- [Project overview](http://gitea.home.arpa/felis/fds-os/wiki/Overview)
- [Run on real hardware, including HDMI + USB wiring](http://gitea.home.arpa/felis/fds-os/wiki/Hardware-Setup)
- [Build the OS and start the emulator](http://gitea.home.arpa/felis/fds-os/wiki/Getting-Started)
- [Build software cartridges and use workstation tools](http://gitea.home.arpa/felis/fds-os/wiki/Workstation)
- [Use cartridges](http://gitea.home.arpa/felis/fds-os/wiki/Cartridges), [DATA](http://gitea.home.arpa/felis/fds-os/wiki/Data) and [the desktop](http://gitea.home.arpa/felis/fds-os/wiki/Desktop)
- [Developer guide and acceptance records](http://gitea.home.arpa/felis/fds-os/wiki/Developer-Guide)
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
- **Run on your Raspberry Pi 5:** follow [the real-hardware setup guide](docs/hardware-setup.md), including HDMI-plus-USB Dasung wiring, disk installation and first boot.
- **Build and try the emulator:** 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.
The same pages live in the `fds-os.wiki` Git submodule. Initialize it in an existing
checkout with `git submodule update --init fds-os.wiki`, or clone this repository
with `--recurse-submodules`. Edit those pages directly; there is no separate manual
to synchronize or export. See [Editing the wiki](http://gitea.home.arpa/felis/fds-os/wiki/Gitea-Wiki)
for the Git workflow and page conventions. `make wiki-check` checks local links;
`make help` lists build commands.