Commit Graph

212 Commits

Author SHA1 Message Date
vasilito 62e5cca2f7 Normalize KDE and AMD GPU status docs 2026-04-18 15:44:20 +01:00
vasilito f29e6408ac Mark Wayland and driver-compat docs as historical references 2026-04-18 15:43:46 +01:00
vasilito c4d4575ad6 Clarify linux-kpi build-order marker 2026-04-18 15:43:27 +01:00
vasilito 7d4fc737ed Ship redox-drm in Red Bear GPU profiles 2026-04-18 15:43:19 +01:00
vasilito 5518d85d99 Wire amdgpu into redox-drm packaging 2026-04-18 15:43:15 +01:00
vasilito 8968b9b574 Wire relibc patch bundle via recipe patches field 2026-04-18 11:21:19 +01:00
vasilito e1d04c7a6d Fix relibc strtold linkage for C++ consumers
Keep the relibc overlay consistent so the generated stdlib header preserves C linkage for strtold and the existing toolchain can still satisfy stale C++ callers while it is refreshed.
2026-04-18 10:36:46 +01:00
vasilito 12c5cffb04 Add Intel Alder Lake/Raptor Lake/Meteor Lake/Arrow Lake GPU IDs to ihdgd
Regenerate aggregate base patch to include ihdgd device ID additions
for modern Intel integrated GPUs (12th-14th Gen, Core Ultra, Arrow Lake).
This allows pcid-spawner to match and load ihdgd on current Intel laptops.
2026-04-18 07:06:00 +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 b9475fddf2 Use canonical source grub.cfg and document both install paths 2026-04-18 01:09:29 +01:00
vasilito 0063dff222 Optimize fat_tool.py with batch allocation and streaming copy 2026-04-18 01:09:13 +01:00
vasilito 5d7fffe2fc Add __pycache__/ to .gitignore 2026-04-18 01:09:03 +01:00
vasilito 7b6be4b69b Fix fat_tool.py out-of-bounds read in _alloc_cluster when FAT is smaller than data region 2026-04-18 01:02:07 +01:00
vasilito 4183d27593 Remove verbose comments from grub-install wrapper 2026-04-18 00:57:57 +01:00
vasilito 4248ad272d Remove AI slops: fix parenthetical plural, deduplicate install-grub.sh 2026-04-18 00:57:39 +01:00
vasilito 5a93015545 Add anti-pattern: never include AI attribution in commit messages 2026-04-18 00:51:27 +01:00
vasilito 70b935972c Update fat_tool helper script 2026-04-18 00:48:58 +01:00
vasilito 182952a5cf Add relibc syscall priority patch and clean up IOMMU recipe 2026-04-18 00:48:58 +01:00
vasilito 984f9fdb3e Add network check improvements and QEMU test script updates 2026-04-18 00:48:58 +01:00
vasilito 1656139991 Improve D-Bus desktop service daemons (polkit, sessiond, udisks, upower) 2026-04-18 00:48:58 +01:00
vasilito edacc89db8 Refresh GRUB scripts, config, and integration documentation 2026-04-18 00:48:58 +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 05a31de115 Add build system ISO generation and QEMU improvements 2026-04-18 00:48:58 +01:00
vasilito f205405ff0 Update base-initfs and base recipes for hardware detection 2026-04-18 00:48:58 +01:00
vasilito 2227b1e53f Update installer patch for GRUB bootloader and ext4 filesystem support 2026-04-18 00:48:58 +01:00
vasilito 7460bc8190 Refresh kernel ACPI and SMP patches for AMD bare metal support 2026-04-18 00:48:58 +01:00
vasilito 7b250db6e6 Add VFAT implementation plan and update AGENTS.md FAT documentation
916-line plan covering: workspace structure, implementation phases, API
design, build integration, success criteria, test results, and comprehensive
quality assessment (Section 12 with 12 subsections). AGENTS.md updated with
FAT workspace layout, tool verification status, and config integration details.
2026-04-18 00:13:46 +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 bf417316bd Fix grub-install BOOT_PATH, validate grub-mkconfig timeout, add fat_tool sync
Fix BOOT_PATH logic in grub-install: non-removable installs now use
EFI/${BOOTLOADER_ID} per UEFI spec instead of always EFI/BOOT.
Add timeout validation to grub-mkconfig (must be non-negative integer).
Add sync() method to fat_tool.py and call os.fsync after cp_in to
ensure data reaches disk. Fix misleading block-device error message.
2026-04-17 23:46:20 +01:00
vasilito 0a6c731f60 Add GRUB to top-level AGENTS.md and README
Update installer patch description in AGENTS.md to mention GRUB
alongside ext4. Add redbear-full-grub build target and GRUB CLI
section to README.
2026-04-17 23:35:03 +01:00
vasilito 76d3fa012e Add Linux-compatible grub-install and grub-mkconfig wrappers
Create grub-install and grub-mkconfig scripts in local/scripts/ that
match GNU GRUB CLI conventions for users migrating from Linux. Support
standard switches: --target, --efi-directory, --bootloader-id,
--removable, -o/--output, --verbose, --help, --version. Unsupported
Linux options are accepted and ignored for script compatibility.

Also fix ESP FAT type: force FAT32 in both with_whole_disk and
with_whole_disk_ext4 (UEFI spec requires FAT32, fatfs auto-selects
FAT16 for partitions under 32 MiB). Fix --write-bootloader to export
GRUB EFI in GRUB mode. Fix CLI example in GRUB plan. Update AGENTS.md
and GRUB-INTEGRATION-PLAN.md with Linux-compatible CLI docs.
2026-04-17 22:47:01 +01:00
vasilito f3cbc48bfd Add BLAKE3 hash to GRUB source, remove redundant chain module
Add blake3 checksum for grub-2.12.tar.xz for recipe integrity
verification. Remove the chain module from grub-mkimage — the
chainloader command is built-in in GRUB 2.12, no separate module
needed. Image shrinks from 540 KiB to 512 KiB. Update module table
and size estimate in GRUB integration plan.
2026-04-17 22:27:12 +01:00
vasilito 6c361066e2 Fix GRUB reassessment findings: clean-build gap, validation, robustness
- Add grub package to redbear-full-grub.toml so make all works from
  a clean tree (the installer needs grub.efi before it runs)
- Fix stat -f%z (macOS-only) to stat -c%s (Linux) in GRUB recipe
- Normalize bootloader config value to lowercase in install_inner so
  bootloader = "GRUB" from config files is accepted
- Add bad-cluster marker (0x0FFFFFF7) check in fat_tool.py
  _next_cluster to prevent potential infinite loops on degraded media
- Fix file handle leak in fat_tool.py if _read_bpb raises
- Clean up temp directory in fetch_bootloaders on error
- Update AGENTS.md with GRUB recipe and installer documentation
- Update GRUB plan with clean-build prerequisite note
2026-04-17 22:21:08 +01:00
vasilito 1341c9077a Regenerate installer patch with GRUB quality fixes 2026-04-17 22:03:27 +01:00
vasilito 4c6788f2f9 Harden GRUB recipe with error guards and host-tool verification
Add || exit 1 to all critical build steps (mkdir, cd, touch, configure,
make, grub-mkimage) so failures surface immediately instead of silently
continuing. Verify gcc/make/bison/flex are present before starting the
build. Update grub.cfg help text to reference fat_tool.py instead of
unavailable mtools.
2026-04-17 22:02:47 +01:00
vasilito f522c8fcff Fix WIP grub symlink path depth (3 levels, not 4)
The symlink from recipes/wip/services/grub was using ../../../../local/
which goes above the repo root. Fixed to ../../../local/ which correctly
resolves from recipes/wip/services/ to local/recipes/core/grub.
2026-04-17 21:49:39 +01:00
vasilito a03483c956 Fix GRUB bootloader lookup, eliminate duplicate recipe, harden recipe build
install-grub.sh now searches both recipes/core/bootloader/target and
local/recipes/core/bootloader/target for the Redox bootloader artifact.

The WIP grub recipe (recipes/wip/services/grub) is now a full directory
symlink to local/recipes/core/grub instead of just recipe.toml, ensuring
COOKBOOK_RECIPE resolves to a directory that contains grub.cfg. This also
eliminates the duplicate recipe warning from the cookbook.

The GRUB recipe now fails hard (exit 1) if grub.cfg is missing instead of
just warning.
2026-04-17 21:45:38 +01:00
vasilito a100fc32d5 Add GRUB recipe symlinks to apply-patches overlay script
Ensures recipes/core/grub and the WIP conflict redirect are created
by apply-patches.sh, so a fresh sync-upstream + apply-patches cycle
preserves the GRUB integration.
2026-04-17 21:37:23 +01:00
vasilito 950f8715cb Fix INSTALLER_OPTS clobbering warning in GRUB docs
INSTALLER_OPTS replaces the default --cookbook=. value, so the docs
now show the full invocation with --cookbook=. included and recommend
using the config file approach instead.
2026-04-17 21:37:11 +01:00
vasilito 5b651c4462 Fix install-grub.sh to source Redox bootloader from cookbook artifacts
The script now reads the Redox bootloader from the cookbook's bootloader
package output instead of extracting it from the ESP. This makes it
idempotent — previously, rerunning after GRUB install would copy GRUB
itself into EFI/REDBEAR/redbear.efi because ESP's BOOTX64.EFI was GRUB.
2026-04-17 21:36:59 +01:00
vasilito 1b7578132e Add fail-hard validation for GRUB bootloader mode in installer
When bootloader = "grub" is set, the installer now:
- Rejects unknown bootloader values (only "redox" and "grub" accepted)
- Enforces minimum efi_partition_size of 8 MiB for GRUB mode
- Fails with a clear error if grub.efi or grub.cfg are missing from
  the GRUB package output instead of silently falling back
2026-04-17 21:36:44 +01:00
vasilito c230776cc9 Update GRUB plan with Phase 2 testing instructions
Reorganized testing section to cover both Phase 1 (post-build script)
and Phase 2 (installer-native) workflows. Added unit test commands.
Removed mtools dependency from limitations.
2026-04-17 21:24:13 +01:00
vasilito 650a70a309 Update installer patch with GRUB help text and fix fstools build
Adds --bootloader and --filesystem to installer help text. Fixes
fstools host build by symlinking local/ directory alongside recipes/
so the ext4-blockdev path dependency resolves correctly.
2026-04-17 21:24:01 +01:00
vasilito e4b0fb8798 Add redbear-full-grub config with GRUB boot manager
Includes bootloader = "grub" and efi_partition_size = 16. Builds GRUB
as primary boot manager that chainloads the Redox bootloader.
2026-04-17 21:23:48 +01:00
vasilito 4a4a3e863d Update GRUB integration plan with Phase 2 implementation details
Documents the completed installer-native GRUB support: GeneralConfig
bootloader field, DiskOption GRUB extensions, fetch_bootloaders GRUB
package fetch, ESP layout conditional in with_whole_disk/ext4, CLI
--bootloader flag, and config usage examples.
2026-04-17 21:14:50 +01:00
vasilito 5c2c99b21f Add installer-native GRUB bootloader support
Extends the installer to write a GRUB chainload ESP layout when
bootloader = "grub" is set in config. Changes GeneralConfig, DiskOption,
fetch_bootloaders, with_whole_disk, with_whole_disk_ext4, and both CLI
binaries. When GRUB mode is active, the ESP contains GRUB as primary
(BOOTX64.EFI), grub.cfg, and the Redox bootloader as chainload target
(EFI/REDBEAR/redbear.efi).
2026-04-17 21:14:36 +01:00
vasilito 87270603ef Add GRUB integration plan and configure ESP size for GRUB boot
Documents the two-phase GRUB integration approach (post-build script
then installer-native), build notes for the three cookbook workarounds,
and measured artifact sizes. Sets efi_partition_size=16 in redbear-full
to accommodate GRUB plus Redox bootloader on the ESP.
2026-04-17 21:05:04 +01:00
vasilito 9b6ea8119f Add Python FAT32 tool and GRUB ESP install script
fat_tool.py provides zero-dependency FAT32 manipulation (ls, mkdir,
cp-in, cp-out) using only Python stdlib struct/os. install-grub.sh uses
it to extract the existing Redox bootloader from ESP, install GRUB as
the primary boot manager, and set up the chainload configuration.
2026-04-17 21:04:53 +01:00
vasilito b8af486e03 Add GRUB EFI build recipe and chainload configuration
Builds GRUB 2.12 for the host machine (not Redox target) using template=custom.
Produces a 540 KiB standalone PE32+ EFI binary with GPT, FAT, ext2,
chainloader, and utility modules. The grub.cfg chainloads the Redox
bootloader from EFI/REDBEAR/redbear.efi.
2026-04-17 21:04:39 +01:00
vasilito 5eea2a974f Register bootloader patch in recipe.toml
The redox.patch was present and symlinked but never listed in the [source] patches field, so the cookbook never applied it during builds.
2026-04-17 14:16:11 +01:00