diff options
author | lns <matzeton@googlemail.com> | 2018-08-25 01:51:34 +0200 |
---|---|---|
committer | lns <matzeton@googlemail.com> | 2018-08-25 01:51:34 +0200 |
commit | 7057069e6e6171b217717329e494ea63a82e48e9 (patch) | |
tree | 813d088c103ea368a26ac51128d233cf011b8b49 | |
parent | 8e35dc34d91b786ad5913b65a287122fef9028fb (diff) |
make oldconfig [+] make qemu [+] basic /init script
Signed-off-by: lns <matzeton@googlemail.com>
-rw-r--r-- | Makefile | 12 | ||||
-rw-r--r-- | scripts/init.rootfs | 23 |
2 files changed, 33 insertions, 2 deletions
@@ -30,7 +30,7 @@ BUSYBOX_DL_URL=$(BUSYBOX_DL_PREFIX)/$(BUSYBOX_DL_BASENAME)-$(BUSYBOX_DL_VERSION) BUSYBOX_DL_FILE=$(DL_DIR)/$(BUSYBOX_DL_BASENAME)-$(BUSYBOX_DL_VERSION).$(BUSYBOX_DL_SUFFIX) BUSYBOX_BUILD_DIR=$(BUILD_DIR)/$(BUSYBOX_DL_BASENAME)-$(BUSYBOX_DL_VERSION) -all: pre dl extract build +all: pre dl extract build image $(DL_DIR): mkdir -p '$@' @@ -71,7 +71,8 @@ extract: dl $(LINUX_BUILD_DIR)/Makefile $(MUSL_BUILD_DIR)/Makefile $(BUSYBOX_BUI $(LINUX_BUILD_DIR)/vmlinux: cp -v '$(CFG_DIR)/linux.config' '$(LINUX_BUILD_DIR)/.config' - make -C '$(LINUX_BUILD_DIR)' -j$(BUILDJOBS) ARCH=$(shell uname -m) + make -C '$(LINUX_BUILD_DIR)' oldconfig + make -C '$(LINUX_BUILD_DIR)' -j$(BUILDJOBS) ARCH=$(shell uname -m) bzImage make -C '$(LINUX_BUILD_DIR)' -j$(BUILDJOBS) ARCH='$(shell uname -m)' INSTALL_HDR_PATH='$(ROOTFS_DIR)/usr' headers_install $(MUSL_BUILD_DIR)/lib/libc.so: @@ -85,7 +86,14 @@ $(BUSYBOX_BUILD_DIR)/busybox: sed -i 's|^.*\(CONFIG_PREFIX\).*|\1="$(ROOTFS_DIR)"|g' '$(BUSYBOX_BUILD_DIR)/.config' sed -i 's|^.*\(CONFIG_EXTRA_CFLAGS\).*|\1="-I$(ROOTFS_DIR)/usr/include -nostdinc -Wno-parentheses -Wno-strict-prototypes -Wno-undef"|g' '$(BUSYBOX_BUILD_DIR)/.config' sed -i 's|^.*\(CONFIG_EXTRA_LDFLAGS\).*|\1="-L$(ROOTFS_DIR)/usr/lib -dynamic-linker=$(ROOTFS_DIR)/lib/ld-musl-$(shell uname -m).so.1 -nostdlib"|g' '$(BUSYBOX_BUILD_DIR)/.config' + make -C '$(BUSYBOX_BUILD_DIR)' oldconfig make -C '$(BUSYBOX_BUILD_DIR)' -j$(BUILDJOBS) ARCH=$(shell uname -m) V=1 all make -C '$(BUSYBOX_BUILD_DIR)' -j$(BUILDJOBS) ARCH=$(shell uname -m) install build: extract $(LINUX_BUILD_DIR)/vmlinux $(MUSL_BUILD_DIR)/lib/libc.so $(BUSYBOX_BUILD_DIR)/busybox + +image: build + cd '$(ROOTFS_DIR)' && find . -print0 | cpio --null -ov --format=newc | gzip -9 > '$(THIS_DIR)/initramfs.cpio.gz' + +qemu: + qemu-system-x86_64 -kernel '$(LINUX_BUILD_DIR)/arch/x86_64/boot/bzImage' -initrd '$(THIS_DIR)/initramfs.cpio.gz' -nographic -append "console=ttyAMA0" -enable-kvm -D ./qemu.log diff --git a/scripts/init.rootfs b/scripts/init.rootfs new file mode 100644 index 0000000..460866b --- /dev/null +++ b/scripts/init.rootfs @@ -0,0 +1,23 @@ +#!/bin/sh + +mkdir -p /proc /sys +mount -t proc none /proc +mount -t sysfs none /sys + +cat <<! + + +Boot took $(cut -d' ' -f1 /proc/uptime) seconds + + _ _ __ _ + /\/\ (_)_ __ (_) / /(_)_ __ _ ___ __ + / \| | '_ \| | / / | | '_ \| | | \ \/ / +/ /\/\ \ | | | | | / /__| | | | | |_| |> < +\/ \/_|_| |_|_| \____/_|_| |_|\__,_/_/\_\ + + +Welcome to mini_linux + + +! +exec /bin/sh |