Commit Graph

22 Commits

Author SHA1 Message Date
vasilito b338760111 config: driver-manager cutover — retire pcid-spawner from the boot path
Operator-ratified cutover (the D5/C-phase gate):

- redbear-device-services.toml: driver-manager added to [packages]
  (was 'intentionally not included'); /lib/drivers.d/70-wifi.toml
  staged (redbear-iwlwifi --daemon); stale pre-cutover comments
  replaced with the single-spawner invariant for driver-manager.
- redbear-mini.toml: /etc/init.d override now stages
  00_driver-manager.service (--hotplug, gated !disabled) instead of
  00_pcid-spawner.service; all requires_weak references switched to
  00_driver-manager.service.
- redbear-full.toml, redbear-greeter-services.toml: same requires_weak
  switch for iommu, greeter, SDDM.
- base submodule bump (c72d4247): init.d/init.initfs.d service gates —
  pcid-spawner services start only when
  /etc/driver-manager.d/disabled exists (operator fallback, never
  deleted); driver-manager services run by default.

make lint-config: OK — no init service path violations.
2026-07-23 17:53:20 +09:00
vasilito b050b28598 lg-gram-16z90tp: review-fix round — firmware op-mode honesty + docs
Base submodule bump (6db0f481): hardware-correct DesignWare engine
(disable/program/enable ordering, abort-first polling, corrected SCL
timing, recovery, validation) and proper Intel LPSS PCI bring-up.

- iwlwifi candidate tables: remove the c-prefixed iwlmld series from
  the current Mini-MVM candidate lists — the MVM transport cannot
  drive MLD firmware, and selecting it would fail firmware boot
  instead of falling back to a compatible image (review MAJOR). c-series
  returns with the MLD op-mode (Phase 6/W). Fallback TOML chains no
  longer mix MLD and MVM series.
- redbear-iwlwifi + redbear-wifictl candidate detection now probes
  both the flat /lib/firmware/iwlwifi-* and the post-2026
  /lib/firmware/intel/iwlwifi/ layouts (review MAJOR).
- plan doc: review-fix round recorded; precision fixes — amd-mp2-i2cd
  remains registration-only until its mailbox engine lands, and the
  system-quirk flags parse but have no consumers until Phase 5.

Validation: iwlwifi 8 + wifictl 21 tests pass, base cooks for
x86_64-unknown-redox.
2026-07-21 12:06:21 +09:00
vasilito 8060a9640b lg-gram-16z90tp: Phase 0 — collision fixes, quirks pipeline, firmware tables
Host: LG Gram 16Z90TP-G.AL89C (Arrow Lake-H, Core Ultra 7 255H).
Plan: local/docs/LG-GRAM-16Z90TP-COMPATIBILITY-PLAN.md

- drivers.d: scope e1000d + rtl8168d matches to subclass 0 (Ethernet);
  the vendor+class wildcard also claimed Intel/Realtek Wi-Fi (subclass
  0x80) and collided with redbear-iwlwifi (e.g. BE201 8086:7740)
- xhci_table: add universal SPURIOUS_SUCCESS rule for hci_version > 0x96
  (Linux xhci.c:5477); LG Gram 8086:7ec0/777d now get exactly Linux's
  flag set (0x200009810); flag-parity test added
- quirks: repair system-quirk pipeline — dmi_system_quirk entries with
  flags like force_s2idle silently parsed to empty sets. Add
  SystemQuirkFlags (4 flags), DmiSystemQuirkRule, dual-namespace TOML
  parsing, quirks::system_quirks() consumer API, and the LG 16Z90TP
  DMI anchor (board_name match)
- firmware: iwlwifi candidate tables prefer the c-prefixed iwlmld
  series (c106..c101) for BE201/CNVi; gf-a0 capped at 100 per
  host/linux-firmware evidence; fallback chains updated
- firmware-loader: map flat iwlwifi-* requests into the post-2026
  linux-firmware intel/iwlwifi/ layout (builtins + TOML fallbacks)

Tests: redox-driver-sys 72, firmware-loader 11, redbear-iwlwifi 8,
redbear-wifictl 21 all pass; all four components cook for
x86_64-unknown-redox; make lint-config clean.
2026-07-20 23:41:18 +09:00
vasilito 49d356ad6e config: consolidate PCI driver spawning on pcid-spawner (drop driver-manager stub)
Root cause of the duplication: a stalled migration. driver-manager (new
Red Bear framework) was written and packaged, but never wired in — its
00_driver-manager.service ran cmd="pcid-spawner" (the legacy binary),
and redbear-mini.toml already notes it is 'not yet ready'. Meanwhile the
base recipe's 00_pcid-spawner.service (oneshot_async) is the live
spawner. Both services ran pcid-spawner async, so pcid-spawner launched
TWICE in mini/full, racing to spawn the same drivers.

Consolidation (user directive: consolidate on pcid-spawner for now,
revisit driver-manager later):
- drop the unused driver-manager = {} package (source recipe kept for
  the future migration),
- remove the duplicate 00_driver-manager.service,
- point 13_driver-params.service requires_weak at the real
  00_pcid-spawner.service,
- base recipe's oneshot_async pcid-spawner is now the sole PCI driver
  spawner — no more double launch.
driver-manager is intentionally left out of configs until its driver
config migration is completed (documented in the file).
2026-07-20 00:03:42 +09:00
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