Red Bear OS — microkernel OS in Rust, based on Redox
Derivative of Redox OS (https://www.redox-os.org) adding: - AMD GPU driver (amdgpu) via LinuxKPI compat layer - ext4 filesystem support (ext4d scheme daemon) - ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG) - Custom branding (hostname, os-release, boot identity) Build system is full upstream Redox with RBOS overlay in local/. Patches for kernel, base, and relibc are symlinked from local/patches/ and protected from make clean/distclean. Custom recipes live in local/recipes/ with symlinks into the recipes/ search path. Build: make all CONFIG_NAME=redbear-full Sync: ./local/scripts/sync-upstream.sh
This commit is contained in:
+101
@@ -0,0 +1,101 @@
|
||||
# Configuration file with the commands configuration of the Red Bear OS image
|
||||
|
||||
$(BUILD)/harddrive.img: $(FSTOOLS) $(REPO_TAG)
|
||||
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
mkdir -p $(BUILD)
|
||||
-$(FUMOUNT) $(MOUNT_DIR) || true
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
rm -rf $@ $@.partial $(MOUNT_DIR)
|
||||
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
|
||||
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
|
||||
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
||||
fi && \
|
||||
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
||||
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $@.partial
|
||||
mv $@.partial $@
|
||||
endif
|
||||
|
||||
$(BUILD)/rbos-live.iso: $(FSTOOLS) $(REPO_TAG) rbos.ipxe
|
||||
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
mkdir -p $(BUILD)
|
||||
rm -rf $@ $@.partial
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
|
||||
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
|
||||
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
||||
fi && \
|
||||
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
||||
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) --write-bootloader="$(BUILD)/bootloader-live.efi" --live $@.partial
|
||||
mv $@.partial $@
|
||||
cp rbos.ipxe $(BUILD)/rbos.ipxe
|
||||
endif
|
||||
|
||||
$(BUILD)/filesystem.img: $(FSTOOLS) $(REPO_TAG)
|
||||
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
mkdir -p $(BUILD)
|
||||
-$(FUMOUNT) $(MOUNT_DIR) || true
|
||||
rm -rf $@ $@.partial $(MOUNT_DIR)
|
||||
-$(FUMOUNT) /tmp/redox_installer || true
|
||||
FILESYSTEM_SIZE=$(FILESYSTEM_SIZE) && \
|
||||
if [ -z "$$FILESYSTEM_SIZE" ] ; then \
|
||||
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
|
||||
fi && \
|
||||
truncate -s "$$FILESYSTEM_SIZE"m $@.partial
|
||||
$(REDOXFS_MKFS) $(REDOXFS_MKFS_FLAGS) $@.partial
|
||||
mkdir -p $(MOUNT_DIR)
|
||||
$(REDOXFS) $@.partial $(MOUNT_DIR)
|
||||
sleep 1
|
||||
pgrep redoxfs
|
||||
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(MOUNT_DIR)
|
||||
sync
|
||||
-$(FUMOUNT) $(MOUNT_DIR) || true
|
||||
rm -rf $(MOUNT_DIR)
|
||||
mv $@.partial $@
|
||||
endif
|
||||
|
||||
mount: $(FSTOOLS) FORCE
|
||||
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@mkdir -p $(MOUNT_DIR)
|
||||
$(REDOXFS) $(BUILD)/harddrive.img $(MOUNT_DIR)
|
||||
@sleep 2
|
||||
@echo "\033[1;36;49mharddrive.img mounted ($$(pgrep redoxfs))\033[0m"
|
||||
endif
|
||||
|
||||
mount_extra: $(FSTOOLS) FORCE
|
||||
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@mkdir -p $(MOUNT_DIR)
|
||||
$(REDOXFS) $(BUILD)/extra.img $(MOUNT_DIR)
|
||||
@sleep 2
|
||||
@echo "\033[1;36;49mextra.img mounted ($$(pgrep redoxfs))\033[0m"
|
||||
endif
|
||||
|
||||
mount_live: $(FSTOOLS) FORCE
|
||||
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@mkdir -p $(MOUNT_DIR)
|
||||
$(REDOXFS) $(BUILD)/rbos-live.iso $(MOUNT_DIR)
|
||||
@sleep 2
|
||||
@echo "\033[1;36;49mrbos-live.iso mounted ($$(pgrep redoxfs))\033[0m"
|
||||
endif
|
||||
|
||||
unmount: FORCE
|
||||
ifeq ($(FSTOOLS_IN_PODMAN),1)
|
||||
$(PODMAN_RUN) make $@
|
||||
else
|
||||
@sync
|
||||
-$(FUMOUNT) $(MOUNT_DIR)
|
||||
@rm -rf $(MOUNT_DIR)
|
||||
@-$(FUMOUNT) /tmp/redox_installer 2>/dev/null || true
|
||||
@echo "\033[1;36;49mFilesystem unmounted\033[0m"
|
||||
endif
|
||||
Reference in New Issue
Block a user