From dc9b0f067bd0b2bd5637841253e0b115c6aa8646 Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Tue, 21 Nov 2023 22:27:40 +0100 Subject: Initial commit --- Makefile | 27 +++++++++++++++++++++++++++ Makefile.busybox | 13 +++++++++++++ Makefile.linux | 14 ++++++++++++++ Makefile.syslinux | 22 ++++++++++++++++++++++ qemu64.sh | 3 +++ 5 files changed, 79 insertions(+) create mode 100644 Makefile create mode 100644 Makefile.busybox create mode 100644 Makefile.linux create mode 100644 Makefile.syslinux create mode 100755 qemu64.sh diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ddf7c36 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +KERNEL_VERSION = 5.11.6 +BUSYBOX_VERSION = 1.33.0 +SYSLINUX_VERSION = 6.03 + +all: busybox linux initrd + +initrd: + @mkdir -p $@ + @cp -R busybox-${BUSYBOX_VERSION}/_install/* initrd/ + @rm initrd/linuxrc + @mkdir initrd/dev initrd/proc initrd/sys + @echo '#!/bin/sh' > initrd/init + @echo 'dmesg -n 1' >> initrd/init + @echo 'mount -t devtmpfs none /dev' >> initrd/init + @echo 'mount -t proc none /proc' >> initrd/init + @echo 'mount -t sysfs none /sys' >> initrd/init + @echo 'setsid cttyhack /bin/sh' >> initrd/init + @chmod +x initrd/init + @cd initrd && find . | cpio -R root:root -H newc -o | gzip > ../rootfs.gz + @echo initrd: creation is completed. + +clean: + rm -rf busybox* kernel* linux* live* *.iso syslinux* initrd* rootfs.gz + +include Makefile.busybox +include Makefile.linux +include Makefile.syslinux diff --git a/Makefile.busybox b/Makefile.busybox new file mode 100644 index 0000000..e137077 --- /dev/null +++ b/Makefile.busybox @@ -0,0 +1,13 @@ +busybox: busybox-${BUSYBOX_VERSION}/_install + @echo Busybox: build is completed. + +busybox-${BUSYBOX_VERSION}/_install: busybox-${BUSYBOX_VERSION} + cd busybox-${BUSYBOX_VERSION} && make distclean defconfig + sed -i 's|.*CONFIG_STATIC[^_].*|CONFIG_STATIC=y|' busybox-1.33.0/.config + cd busybox-${BUSYBOX_VERSION} && make busybox install + +busybox-${BUSYBOX_VERSION}: busybox.tar.bz2 + tar xvf busybox.tar.bz2 + +busybox.tar.bz2: + wget -O busybox.tar.bz2 http://busybox.net/downloads/busybox-${BUSYBOX_VERSION}.tar.bz2 diff --git a/Makefile.linux b/Makefile.linux new file mode 100644 index 0000000..55f68b4 --- /dev/null +++ b/Makefile.linux @@ -0,0 +1,14 @@ +linux: kernel.gz + @echo Linux: build is completed. + +linux-${KERNEL_VERSION}/arch/x86/boot/bzImage: linux-${KERNEL_VERSION} + @cd linux-${KERNEL_VERSION} && make HOSTCC=gcc-11 CC=gcc-11 mrproper defconfig bzImage + +kernel.gz: linux-${KERNEL_VERSION}/arch/x86/boot/bzImage + @cp linux-${KERNEL_VERSION}/arch/x86/boot/bzImage $@ + +linux-${KERNEL_VERSION}: kernel.tar.xz + tar xvf kernel.tar.xz + +kernel.tar.xz: + wget -O kernel.tar.xz http://kernel.org/pub/linux/kernel/v5.x/linux-${KERNEL_VERSION}.tar.xz diff --git a/Makefile.syslinux b/Makefile.syslinux new file mode 100644 index 0000000..05b4f23 --- /dev/null +++ b/Makefile.syslinux @@ -0,0 +1,22 @@ +live-cd: syslinux-${SYSLINUX_VERSION} + mkdir -p live-cd + cp syslinux-${SYSLINUX_VERSION}/bios/core/isolinux.bin $@/ + cp syslinux-${SYSLINUX_VERSION}/bios/com32/elflink/ldlinux/ldlinux.c32 $@/ + echo 'default kernel.gz initrd=rootfs.gz' > $@/isolinux.cfg + cp kernel.gz $@/ + cp rootfs.gz $@/ + cd $@ && xorriso \ + -as mkisofs \ + -o ../alex_live.iso \ + -b isolinux.bin \ + -c boot.cat \ + -no-emul-boot \ + -boot-load-size 4 \ + -boot-info-table \ + ./ + +syslinux-${SYSLINUX_VERSION}: syslinux.tar.xz + tar xvf syslinux.tar.xz + +syslinux.tar.xz: + wget -O syslinux.tar.xz http://kernel.org/pub/linux/utils/boot/syslinux/syslinux-${SYSLINUX_VERSION}.tar.xz diff --git a/qemu64.sh b/qemu64.sh new file mode 100755 index 0000000..c876a1d --- /dev/null +++ b/qemu64.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +qemu-system-x86_64 -m 128M -cdrom alex_live.iso -boot d -vga std \ No newline at end of file -- cgit v1.2.3