working baseline local emulation target with busybox shell
This commit is contained in:
parent
1cb4d565f8
commit
49bfc9dcd1
|
@ -10,4 +10,8 @@ RUN apt update && \
|
|||
bison \
|
||||
libncurses-dev \
|
||||
bc \
|
||||
libelf-dev
|
||||
libelf-dev \
|
||||
libarchive-tools \
|
||||
libssl-dev \
|
||||
fakeroot \
|
||||
cpio
|
||||
|
|
47
Makefile
47
Makefile
|
@ -1,11 +1,13 @@
|
|||
NAME := qos
|
||||
DEBUG := false
|
||||
DEBUG := true
|
||||
OUT_DIR := out
|
||||
KEY_DIR := keys
|
||||
TARGET := local
|
||||
CACHE_DIR := cache
|
||||
CONFIG_DIR := targets/$(TARGET)
|
||||
SCRIPTS_DIR := scripts
|
||||
CPUS := $(shell nproc)
|
||||
ARCH := x86_64
|
||||
|
||||
include $(PWD)/config.env
|
||||
include $(PWD)/make/keys.mk
|
||||
|
@ -19,7 +21,7 @@ default: $(OUT_DIR)/bzImage
|
|||
$(CONFIG_DIR)/busybox.config:
|
||||
$(toolchain) " \
|
||||
cd /cache/busybox-$(BUSYBOX_VERSION) && \
|
||||
make menuconfig && \
|
||||
KCONFIG_NOTIMESTAMP=1 make menuconfig && \
|
||||
cp .config /config/busybox.config; \
|
||||
"
|
||||
|
||||
|
@ -29,6 +31,34 @@ $(CONFIG_DIR)/linux.config:
|
|||
make menuconfig && \
|
||||
cp .config /config/linux.config; \
|
||||
"
|
||||
|
||||
$(OUT_DIR)/rootfs.cpio: $(OUT_DIR)/busybox
|
||||
mkdir -p $(CACHE_DIR)/rootfs/bin
|
||||
ifdef DEBUG
|
||||
cp $(OUT_DIR)/busybox $(CACHE_DIR)/rootfs/bin;
|
||||
cp $(SCRIPTS_DIR)/busybox_init $(CACHE_DIR)/rootfs/init;
|
||||
chmod +x $(CACHE_DIR)/rootfs/init;
|
||||
endif
|
||||
$(toolchain) " \
|
||||
cd /cache/rootfs \
|
||||
&& find . \
|
||||
| cpio -o -H newc \
|
||||
| gzip -f - > /out/rootfs.cpio \
|
||||
"
|
||||
|
||||
# Currently broken determinism attempt
|
||||
# $(toolchain) " \
|
||||
# cd /cache/rootfs \
|
||||
# && mkdir -p dev \
|
||||
# && fakeroot mknod -m 0622 dev/console c 5 1 \
|
||||
# && find . -mindepth 1 -execdir touch -hcd "@0" "{}" + \
|
||||
# && find . -mindepth 1 -printf '%P\0' \
|
||||
# | sort -z \
|
||||
# | LANG=C bsdtar --uid 0 --gid 0 --null -cnf - -T - \
|
||||
# | LANG=C bsdtar --null -cf - --format=newc @- \
|
||||
# " > $@
|
||||
|
||||
|
||||
$(OUT_DIR)/busybox: extract
|
||||
$(toolchain) " \
|
||||
cd /cache/busybox-$(BUSYBOX_VERSION) && \
|
||||
|
@ -37,10 +67,19 @@ $(OUT_DIR)/busybox: extract
|
|||
cp busybox /out/; \
|
||||
"
|
||||
|
||||
$(OUT_DIR)/bzImage: extract $(OUT_DIR)/busybox
|
||||
$(OUT_DIR)/bzImage: extract $(OUT_DIR)/rootfs.cpio
|
||||
$(toolchain) " \
|
||||
cd /cache/linux-$(LINUX_VERSION) && \
|
||||
cp /config/linux.config .config && \
|
||||
make -j$(CPUS) bzImage && \
|
||||
make olddefconfig && \
|
||||
make -j$(CPUS) ARCH=$(ARCH) bzImage && \
|
||||
cp arch/x86_64/boot/bzImage /out/; \
|
||||
"
|
||||
|
||||
.PHONY: run
|
||||
run:
|
||||
qemu-system-x86_64 \
|
||||
-m 512M \
|
||||
-nographic \
|
||||
-initrd $(OUT_DIR)/rootfs.cpio \
|
||||
-kernel $(OUT_DIR)/bzImage
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.PHONY: toolchain-shell
|
||||
build-shell: toolchain
|
||||
docker run -it local/$(NAME)-build bash
|
||||
$(toolchain)
|
||||
|
||||
.PHONY: toolchain
|
||||
toolchain:
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
#!/bin/busybox sh
|
||||
|
||||
echo "booted"
|
||||
|
||||
/bin/busybox --install
|
||||
|
||||
function halt {
|
||||
echo "Something failed: $1"
|
||||
echo "Will reboot in 10 seconds"
|
||||
umount /eos
|
||||
umount /main
|
||||
umount /boot
|
||||
umount /extra
|
||||
sleep 10
|
||||
reboot -f
|
||||
}
|
||||
|
||||
/usr/bin/busybox --install
|
||||
|
||||
mount -t proc none /proc
|
||||
mount -t devtmpfs none /dev
|
||||
mount -t sysfs none /sys
|
||||
mount -t securityfs none /sys/kernel/security
|
||||
mkdir /dev/pts
|
||||
mount -t devpts none /dev/pts
|
||||
|
||||
echo -n 3 > /proc/sys/kernel/yama/ptrace_scope
|
||||
|
||||
echo -n 2 > /proc/sys/kernel/kptr_restrict
|
||||
|
||||
touch /etc/hosts
|
||||
touch /etc/fstab
|
||||
|
||||
|
||||
/bin/busybox sh
|
|
@ -1,14 +1,13 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Busybox version: 1.33.2
|
||||
# Fri Jun 24 04:18:01 2022
|
||||
#
|
||||
CONFIG_HAVE_DOT_CONFIG=y
|
||||
|
||||
#
|
||||
# Settings
|
||||
#
|
||||
CONFIG_DESKTOP=y
|
||||
# CONFIG_DESKTOP is not set
|
||||
# CONFIG_EXTRA_COMPAT is not set
|
||||
# CONFIG_FEDORA_COMPAT is not set
|
||||
CONFIG_INCLUDE_SUSv2=y
|
||||
|
@ -40,7 +39,7 @@ CONFIG_FEATURE_SYSLOG=y
|
|||
#
|
||||
# Build Options
|
||||
#
|
||||
# CONFIG_STATIC is not set
|
||||
CONFIG_STATIC=y
|
||||
# CONFIG_PIE is not set
|
||||
# CONFIG_NOMMU is not set
|
||||
# CONFIG_BUILD_LIBBUSYBOX is not set
|
||||
|
@ -189,9 +188,9 @@ CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
|
|||
# CONFIG_FEATURE_TAR_SELINUX is not set
|
||||
CONFIG_UNZIP=y
|
||||
CONFIG_FEATURE_UNZIP_CDF=y
|
||||
CONFIG_FEATURE_UNZIP_BZIP2=y
|
||||
CONFIG_FEATURE_UNZIP_LZMA=y
|
||||
CONFIG_FEATURE_UNZIP_XZ=y
|
||||
# CONFIG_FEATURE_UNZIP_BZIP2 is not set
|
||||
# CONFIG_FEATURE_UNZIP_LZMA is not set
|
||||
# CONFIG_FEATURE_UNZIP_XZ is not set
|
||||
# CONFIG_FEATURE_LZMA_FAST is not set
|
||||
|
||||
#
|
||||
|
@ -1047,11 +1046,11 @@ CONFIG_PMAP=y
|
|||
CONFIG_POWERTOP=y
|
||||
CONFIG_FEATURE_POWERTOP_INTERACTIVE=y
|
||||
CONFIG_PS=y
|
||||
# CONFIG_FEATURE_PS_WIDE is not set
|
||||
# CONFIG_FEATURE_PS_LONG is not set
|
||||
CONFIG_FEATURE_PS_TIME=y
|
||||
CONFIG_FEATURE_PS_WIDE=y
|
||||
CONFIG_FEATURE_PS_LONG=y
|
||||
# CONFIG_FEATURE_PS_TIME is not set
|
||||
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
|
||||
CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y
|
||||
# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
|
||||
CONFIG_PSTREE=y
|
||||
CONFIG_PWDX=y
|
||||
CONFIG_SMEMCAP=y
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue