mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-07-12 18:19:42 -07:00
Arch-ification 2.6 + 2.7: identity files and archr(7) man page
scripts/image: rewrite /etc/os-release block to the freedesktop layout expected by third-party tools. ID_LIKE=arch is the change that makes ArchR detect-cleanly as Arch family across distros, package managers and analytics. PRETTY_NAME, ANSI_COLOR, LOGO, DOCUMENTATION_URL, SUPPORT_URL and BUG_REPORT_URL added on top, with sensible fallbacks from GIT_ORGANIZATION/GIT_REPO when the user has not overridden them in distributions/ArchR/options. Drop the empty /etc/archr-release sentinel file alongside os-release. Arch ships /etc/arch-release the same way (empty by convention) for tools that detect distro family by file presence rather than by parsing os-release. distributions/ArchR/options: fix typo HOME_URL "arc-r.io" -> "arch-r.io". projects/ArchR/packages/archr: ship archr(7) under /usr/share/man/man7. First man page of the distro, covers the public command surface (archr-update, archr-config, archr-systems, etc.), the file locations that matter (/etc/os-release, /etc/archr-release, /storage layout) and the architectural decision recorded today (LibreELEC-style read-only rootfs + storage overlay is by design, not technical debt; SteamOS validates the model). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
DESCRIPTION="Arch R - Gaming OS for R36S"
|
||||
|
||||
# Distribution Home URL
|
||||
HOME_URL="https://arc-r.io"
|
||||
HOME_URL="https://arch-r.io"
|
||||
|
||||
# Documentation URL
|
||||
WIKI_URL="https://arch-r.io/docs/guide/"
|
||||
|
||||
@@ -71,6 +71,16 @@ EOF
|
||||
cp ${PKG_DIR}/sources/scripts/* ${INSTALL}/usr/bin
|
||||
chmod 0755 ${INSTALL}/usr/bin/* 2>/dev/null ||:
|
||||
|
||||
### Install man pages
|
||||
if [ -d "${PKG_DIR}/sources/man" ]; then
|
||||
for page in ${PKG_DIR}/sources/man/*.[1-9]; do
|
||||
[ -f "${page}" ] || continue
|
||||
section=${page##*.}
|
||||
mkdir -p ${INSTALL}/usr/share/man/man${section}
|
||||
cp ${page} ${INSTALL}/usr/share/man/man${section}/
|
||||
done
|
||||
fi
|
||||
|
||||
### Fix and migrate to autostart package
|
||||
enable_service archr-autostart.service
|
||||
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
.TH ARCHR 7 "2026-06-23" "ArchR" "ArchR Manual"
|
||||
.SH NAME
|
||||
archr \- overview of the ArchR distribution
|
||||
.SH DESCRIPTION
|
||||
.B ArchR
|
||||
is a Linux distribution targeted at the Rockchip RK3326 handheld console family
|
||||
(R36S, K36, MagicX XU10, Soysauce/Y3506 and clones).
|
||||
It boots from a microSD card, exposes EmulationStation as the default front end,
|
||||
and ships a curated catalogue of emulators, RetroAchievements integration,
|
||||
PortMaster compatibility and panel auto-detection via DTBO overlays.
|
||||
.PP
|
||||
ArchR follows the Arch Linux family conventions (
|
||||
.BR ID_LIKE =arch
|
||||
in
|
||||
.IR /etc/os-release ", "
|
||||
empty sentinel file at
|
||||
.IR /etc/archr-release )
|
||||
while keeping the LibreELEC-inherited boot model: read-only squashfs rootfs
|
||||
plus a read-write overlay at
|
||||
.IR /storage .
|
||||
This combination is shared with SteamOS and chosen for its resilience to
|
||||
power-loss during gameplay and for atomic system updates.
|
||||
.SH COMMANDS
|
||||
The following helpers are installed under
|
||||
.IR /usr/bin
|
||||
and are the public interface of the distro:
|
||||
.TP
|
||||
.B archr-update
|
||||
Check for and apply an OS update. Pulls a signed image from
|
||||
.IR https://update.arch-r.io ;
|
||||
during a future release, this will become a wrapper around
|
||||
.BR pacman -Syu .
|
||||
.TP
|
||||
.B archr-config
|
||||
Read or write a runtime setting persisted in
|
||||
.IR /storage/.config/system/configs/system.cfg .
|
||||
Used by every emulator launcher and by EmulationStation.
|
||||
.TP
|
||||
.B archr-settings
|
||||
Top-level settings UI dispatcher consumed by EmulationStation menus.
|
||||
.TP
|
||||
.B archr-systems
|
||||
List supported emulator systems and their associated cores.
|
||||
.TP
|
||||
.B archr-scraper
|
||||
Scrape metadata and box art for the games library.
|
||||
.TP
|
||||
.B archr-info
|
||||
Show device, firmware, kernel, panel overlay and GPU driver in use.
|
||||
.TP
|
||||
.B archr-keyboard
|
||||
Toggle the on-screen virtual keyboard.
|
||||
.TP
|
||||
.B archr-bluetooth ", " archr-bluetooth-agent
|
||||
Manage Bluetooth devices and the agent that pairs them headlessly.
|
||||
.TP
|
||||
.B archr-memory-manager
|
||||
Configure zram, swappiness and the OOM behaviour. Started as a service at boot.
|
||||
.TP
|
||||
.B archr-report-stats
|
||||
Send anonymized telemetry when the user opts in.
|
||||
.TP
|
||||
.B archr-retroachievements-info
|
||||
Display RetroAchievements account state and recent unlocks.
|
||||
.SH FILES
|
||||
.TP
|
||||
.I /etc/os-release
|
||||
Distribution identity (NAME, ID, ID_LIKE, VERSION_ID).
|
||||
.TP
|
||||
.I /etc/archr-release
|
||||
Empty sentinel file. Detected by third-party tools to recognize ArchR as Arch
|
||||
family. Equivalent to
|
||||
.IR /etc/arch-release
|
||||
on Arch Linux.
|
||||
.TP
|
||||
.I /storage/.config
|
||||
User-writable configuration root for emulators, EmulationStation, system
|
||||
preferences and saved settings.
|
||||
.TP
|
||||
.I /storage/roms
|
||||
Default ROM library root, expected layout matches EmulationStation conventions.
|
||||
.TP
|
||||
.I /usr/share/bootloader
|
||||
Boot files installed by mkimage: kernel, DTB, overlay catalogue, update script.
|
||||
.TP
|
||||
.I /usr/lib/systemd/system/archr.target
|
||||
Default systemd target. Symlinks
|
||||
.IR default.target
|
||||
into it during build.
|
||||
.SH SEE ALSO
|
||||
.BR systemd (1),
|
||||
.BR pacman (8),
|
||||
.BR archr-update (1)
|
||||
.PP
|
||||
Full documentation:
|
||||
.UR https://arch-r.io
|
||||
.UE
|
||||
.PP
|
||||
Bug reports:
|
||||
.UR https://github.com/archr-linux/Arch-R/issues
|
||||
.UE
|
||||
.SH AUTHORS
|
||||
Douglas Teles and contributors. Built on the shoulders of LibreELEC, JELOS and
|
||||
ROCKNIX, all GPL-2.0-or-later.
|
||||
+13
-1
@@ -163,14 +163,22 @@ echo "${TARGET_VERSION}" >${INSTALL}/etc/release
|
||||
# Create /etc/os-release
|
||||
cat <<EOF >${INSTALL}/etc/os-release
|
||||
NAME="${DISTRONAME}"
|
||||
PRETTY_NAME="${DISTRONAME} ${OS_VERSION}"
|
||||
ID="${OSNAME}"
|
||||
ID_LIKE="arch"
|
||||
VERSION_ID="${OS_VERSION}"
|
||||
VERSION="${OS_VERSION}"
|
||||
ANSI_COLOR="38;2;23;147;209"
|
||||
LOGO="archr"
|
||||
HOME_URL="${HOME_URL}"
|
||||
DOCUMENTATION_URL="${WIKI_URL:-${HOME_URL}}"
|
||||
SUPPORT_URL="${SUPPORT_URL:-https://github.com/${GIT_ORGANIZATION}/${GIT_REPO}/discussions}"
|
||||
BUG_REPORT_URL="${BUG_REPORT_URL:-https://github.com/${GIT_ORGANIZATION}/${GIT_REPO}/issues}"
|
||||
OS_NAME="${DISTRONAME}"
|
||||
OS_VERSION="${OS_VERSION}"
|
||||
OS_BUILD="${OS_BUILD}"
|
||||
GIT_ORGANIZATION="${GIT_ORGANIZATION}"
|
||||
GIT_REPO="${GIT_REPO}"
|
||||
HOME_URL="${HOME_URL}"
|
||||
BUILD_ID="${GIT_HASH}"
|
||||
BUILD_BRANCH="$(git branch --show-current)"
|
||||
BUILD_DATE="${BUILD_DATE}"
|
||||
@@ -178,6 +186,10 @@ HW_DEVICE="${DEVICE}"
|
||||
HW_ARCH="${ARCH}"
|
||||
EOF
|
||||
|
||||
# Arch Linux family sentinel file (empty by convention, see /etc/arch-release on Arch)
|
||||
# Allows third-party tools that detect Arch via this file to recognize ArchR.
|
||||
: >${INSTALL}/etc/archr-release
|
||||
|
||||
if [ -n "${HW_CPU}" ]
|
||||
then
|
||||
cat <<EOF >>${INSTALL}/etc/os-release
|
||||
|
||||
Reference in New Issue
Block a user