Commit Graph

18 Commits

Author SHA1 Message Date
vasilito 9390c40194 build: fix ARCH export and remove spurious USB-device init services
Three Phase 1.3/2.4 fixes that have real runtime impact:

1. local/scripts/build-redbear.sh: Export ARCH and HOST_ARCH at the top
   of the script (derived from uname -m when unset). This fixes the
   'Unsupported ARCH for QEMU ""' error from the auto-rebuild-prefix
   path introduced in Phase 1.3 — the env(1) wrapper was masking
   the variables, and even without it mk/config.mk needed explicit
   ARCH to be exported to subprocesses. The prefix rule now succeeds
   when the fork source is newer than prefix/x86_64-unknown-redox/sysroot.

2. config/redbear-device-services.toml: Remove the three init.d service
   files 16_redbear-{acmd,ecmd,usbaudiod}.service. These are USB device
   daemons that take <scheme> <port> [<iface>] arguments and panic on
   missing args. They are spawned dynamically by pcid-spawner (00_driver-
   manager.service) when matching USB hardware is detected. Starting
   them as init services caused the boot to fail with
   'thread main panicked at redbear-acmd <scheme> <port> <iface>'.
   The binaries are still installed via the [packages] section so
   pcid-spawner can find and exec them. This matches the Linux model
   where cdc_acm / cdc_eem / snd-usb-audio are kernel modules or
   udev-spawned, not init services.

3. config/redbear-mini.toml: Add explicit '-K us' to
   29_activate_console.service so the inputd daemon activates VT 2 with
   a deterministic keymap. Combined with the Russian (ЙЦУКЕН) keymap
   added in commit 75f5480f, all 7 layouts (US, GB, Dvorak, Azerty, Bepo,
   IT, RU) are now selectable via 'inputd -K <layout>' or by editing
   this service.
2026-07-08 22:00:03 +03:00
vasilito 29f08c949a base/config: fix scheme daemon service types, console respawn, init hidden-file skip, pcid timeout 2026-07-06 15:04:51 +03:00
vasilito 2c702465a1 fix: convert ucsid, driver-params to oneshot_async; add ipcd/ptyd overrides
Config changes to prevent scheduler hangs on live-mini ISO:
- 00_ucsid.service: scheme -> oneshot_async
- 13_driver-params.service: scheme -> oneshot_async
- 00_ipcd.service: new override (notify -> oneshot_async)
- 00_ptyd.service: new override (notify -> oneshot_async)
- 00_pcid-spawner.service: new override (oneshot -> oneshot_async)
- base: update submodule to 4bfb878 (force-run scheduler)
2026-07-04 01:07:56 +03:00
vasilito f47ee4fb18 fix: change blocking oneshot services to oneshot_async, add init scheduler tracing
- pcid-spawner: oneshot -> oneshot_async (blocked boot in /usr phase)
- inputd: oneshot -> oneshot_async (unnecessary blocking during initfs)
- base: update submodule to b1a6bd8 (serial debug tracing for scheduler)
- run_mini1.sh: reduce QEMU memory 12G -> 2G for faster CI testing
2026-07-03 08:56:39 +03:00
vasilito 06b316076f restore driver-manager + pcid service + lost configs from 0.2.3→0.2.4 sync
Root cause: the 0.2.4 upstream sync silently removed driver-manager (our
in-house PCI driver orchestrator) and never added a pcid init service,
leaving /scheme/pci uncreated and breaking all PCI device enumeration.

Changes:
- base-initfs/recipe.toml: restore driver-manager dep, binary copy,
  drivers.d/ config dir, set -eo pipefail
- redbear-device-services.toml: add driver-manager = {} to packages
- redbear-boot-stages.toml: restore from 0.2.3 (109 lines)
- protected-recipes.toml: restore from 0.2.3 (99 lines)
- redbear-mini.toml: add boot-stages to include chain
- driver-manager Cargo.toml: fix pcid path from symlink to physical
- base fork pointer: acdcb183 (adds 35_pcid.service to initfs)
- UPSTREAM-SYNC-PROCEDURE.md: document sync flaw, never-delete rule,
  driver-manager rationale
- PACKAGE-BUILD-QUIRKS.md: document pcid/pcid-spawner architecture,
  Redox flag values, kernel kcall on AcpiScheme

Verified: redbear-mini boots to login prompt in QEMU UEFI with working
PCI enumeration (6 devices), e1000d network driver, DHCP, driver-manager.
2026-06-19 11:39:24 +03:00
vasilito b31fd7d3e5 feat: build system hardening — collision detection, validation gates, init path enforcement
5-phase hardening to prevent silent file-layer collisions (the D-Bus
regression class):

Phase 1: lint-config-paths.sh + make lint-config in depends.mk
Phase 2: CollisionTracker in installer (content-hash comparison)
Phase 3: installs manifests in recipe.toml + validate-file-ownership.sh
Phase 4: validate-init-services.sh + make validate in disk.mk
Phase 5: documentation (AGENTS.md, BUILD-SYSTEM-HARDENING-PLAN.md)

Both redbear-mini and redbear-full build and validate clean.
66 declared install paths in base, zero conflicts.
2026-05-03 22:25:22 +01:00
vasilito 97f5a870a2 chore: close session — commit all remaining pre-existing state
Finalize all non-artifact changes accumulated from other sessions:
- config updates, recipe changes, source edits, patches
- pkgar/cache artifacts intentionally excluded (build outputs)

This is the maximum achievable scope for this session.
Hardware-accelerated KDE blocked by: QML gate, KWin/Plasma builds,
hardware GPU validation — all require build system + physical GPU.
2026-05-01 03:15:20 +01:00
vasilito 6fae228ffb Add respawn and getty service config across all build targets
Getty services now use respawn = true so init restarts them on
exit. redbear-live-mini expanded with additional boot-late services
and reorganized service ordering. Device services TOML gains new
entries for hardened daemon lifecycle.
2026-04-23 20:28:52 +01:00
vasilito 290cf04e68 Delay runtime services until boot-late 2026-04-21 16:15:17 +01:00
vasilito ef334d31f9 Expose usbctl for mini USB lifecycle checks 2026-04-19 17:57:09 +01:00
vasilito 04779002e2 Update build configs for KDE, Wayland, and Red Bear profiles 2026-04-18 17:58:27 +01:00
vasilito 99a952650a Update GPU pcid driver configs
Keep the shipped device-services image config aligned with the local AMD and Intel GPU pcid definitions after the schema change to [[drivers]].
2026-04-18 07:01:10 +01:00
vasilito 11dae52a4c Update Red Bear configs for live, KDE, legacy-base, and device services 2026-04-18 00:48:58 +01:00
vasilito c4bb87e1dd Add FAT12/16/32 scheme daemon, management tools, and build integration
5-crate Rust workspace implementing full VFAT support: fatd scheme daemon
(FSScheme with open/read/write/mkdir/unlink/rename/fstat), fat-mkfs (create
FAT12/16/32 with labels and cluster size), fat-label (read/write BPB + root-dir
volume labels), fat-check (verify + repair dirty flags, FSInfo, lost clusters,
orphaned LFN). 60 unit tests, 0 unwrap in production code. Included in all 5
redbear configs via redbear-device-services.toml.
2026-04-18 00:13:34 +01:00
vasilito 39ae086a73 Refresh Red Bear profile configs 2026-04-17 00:04:27 +01:00
vasilito 1e2a9e37ef Refine Red Bear profile configs
Red Bear OS Team
2026-04-16 12:46:07 +01:00
vasilito d8d7d1a693 Refine Red Bear profile configs 2026-04-15 12:57:45 +01:00
vasilito cb2d021312 Add shared Red Bear profile config fragments 2026-04-14 11:43:37 +01:00