Fix live filesystem by using a different initfs

This commit is contained in:
Jeremy Soller 2017-10-01 14:25:07 -06:00
parent 79572c168f
commit 49cd5866ac
5 changed files with 39 additions and 6 deletions

27
initfs_live.toml Normal file
View file

@ -0,0 +1,27 @@
# This is the default configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
drivers = {}
init = {}
redoxfs = {}
[[files]]
path="/etc/init.rc"
data="""
export PATH /bin
export TMPDIR /tmp
vesad T T G
stdio display:1
ps2d
pcid /etc/pcid/initfs.toml
redoxfs disk/live: file
cd file:
export PATH file:/bin
run.d /etc/init.d
"""

2
kernel

@ -1 +1 @@
Subproject commit 0794926493a26a1384063e792e7df3de88faa373 Subproject commit 808447cbfbd8d52d5383d22d25f806cefe3bed2a

View file

@ -24,7 +24,6 @@ endif
# Automatic variables # Automatic variables
ROOT=$(PWD) ROOT=$(PWD)
export INITFS_FOLDER=$(ROOT)/build/initfs
export RUST_TARGET_PATH=$(ROOT)/kernel/targets export RUST_TARGET_PATH=$(ROOT)/kernel/targets
export XARGO_HOME=$(ROOT)/build/xargo export XARGO_HOME=$(ROOT)/build/xargo
export XARGO_RUST_SRC=$(ROOT)/rust/src export XARGO_RUST_SRC=$(ROOT)/rust/src

View file

@ -4,3 +4,10 @@ build/initfs.tag: initfs.toml
mkdir -p build/initfs mkdir -p build/initfs
cargo run --manifest-path installer/Cargo.toml -- $(INSTALLER_FLAGS) -c $< build/initfs/ cargo run --manifest-path installer/Cargo.toml -- $(INSTALLER_FLAGS) -c $< build/initfs/
touch $@ touch $@
build/initfs_live.tag: initfs_live.toml
cd kernel && xargo clean
rm -rf build/initfs_live
mkdir -p build/initfs_live
cargo run --manifest-path installer/Cargo.toml -- $(INSTALLER_FLAGS) -c $< build/initfs_live/
touch $@

View file

@ -1,13 +1,13 @@
build/libkernel.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs.tag build/libkernel.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs.tag
# Temporary fix for https://github.com/redox-os/redox/issues/963 allowing to build on macOS # Temporary fix for https://github.com/redox-os/redox/issues/963 allowing to build on macOS
ifeq ($(UNAME),Darwin) ifeq ($(UNAME),Darwin)
cd kernel && CC=$(ARCH)-elf-gcc AR=$(ARCH)-elf-ar CFLAGS=-ffreestanding xargo rustc --lib --target $(KTARGET) --release -- -C soft-float --emit link=../$@ cd kernel && CC=$(ARCH)-elf-gcc AR=$(ARCH)-elf-ar CFLAGS=-ffreestanding xargo INITFS_FOLDER=$(ROOT)/build/initfs rustc --lib --target $(KTARGET) --release -- -C soft-float --emit link=../$@
else else
cd kernel && xargo rustc --lib --target $(KTARGET) --release -- -C soft-float --emit link=../$@ cd kernel && INITFS_FOLDER=$(ROOT)/build/initfs xargo rustc --lib --target $(KTARGET) --release -- -C soft-float --emit link=../$@
endif endif
build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs.tag build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* build/initfs_live.tag
cd kernel && xargo rustc --lib --features live --target $(KTARGET) --release -- -C soft-float --emit link=../$@ cd kernel && INITFS_FOLDER=$(ROOT)/build/initfs_live xargo rustc --lib --features live --target $(KTARGET) --release -- -C soft-float --emit link=../$@
build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel.a $(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel.a