diff options
author | Mateja <mail@matejamaric.com> | 2021-01-18 17:35:25 +0100 |
---|---|---|
committer | Mateja <mail@matejamaric.com> | 2021-01-18 17:35:25 +0100 |
commit | d92c1916c3b063f17007d8d6fa78bd35721e21d6 (patch) | |
tree | cfe3f84494a0912c8785faee0e350ede3e7c2ced /create | |
parent | 633ef240b881e4e6617f411c8780e6009e0c3c6f (diff) | |
download | distro-d92c1916c3b063f17007d8d6fa78bd35721e21d6.tar.gz distro-d92c1916c3b063f17007d8d6fa78bd35721e21d6.zip |
Diffstat (limited to 'create')
-rwxr-xr-x | create | 132 |
1 files changed, 0 insertions, 132 deletions
@@ -1,132 +0,0 @@ -#!/bin/bash -echo "Make sure you have build-essentials, musl, kernel-headers-musl, grub, libisoburn(xorriso), cpio and wget installed!" - -KERNEL_VERSION=5.8.2 -KERNEL_DIRECTORY=linux-$KERNEL_VERSION -KERNEL_ARCHIVE=$KERNEL_DIRECTORY.tar.xz -KERNEL_URL=https://www.kernel.org/pub/linux/kernel/v5.x/$KERNEL_ARCHIVE - -BUSYBOX_VERSION=1.32.0 -BUSYBOX_DIRECTORY=busybox-$BUSYBOX_VERSION -BUSYBOX_ARCHIVE=$BUSYBOX_DIRECTORY.tar.bz2 -BUSYBOX_URL=https://busybox.net/downloads/$BUSYBOX_ARCHIVE - -[[ ! -d ml-src ]] && mkdir ml-src -cd ml-src - -#DOWNLOAD SOURCE -[[ ! -f $KERNEL_ARCHIVE ]] && wget $KERNEL_URL -[[ ! -f $BUSYBOX_ARCHIVE ]] && wget $BUSYBOX_URL - -[[ ! -d $KERNEL_DIRECTORY ]] && tar xf $KERNEL_ARCHIVE -[[ ! -d $BUSYBOX_DIRECTORY ]] && tar xf $BUSYBOX_ARCHIVE - -#COMPILING -cd $KERNEL_DIRECTORY -[[ ! -f .config ]] && make defconfig -#Set OS name -sed -i "s/CONFIG_DEFAULT_HOSTNAME=\"(none)\"/CONFIG_DEFAULT_HOSTNAME=\"MatejaOS\"/" .config -make -j`nproc` -cp ./arch/x86/boot/bzImage ../vmlinux -cd .. - -cd $BUSYBOX_DIRECTORY -[[ ! -f .config ]] && make defconfig -#BusyBox static linking -sed -i "s/# CONFIG_STATIC is not set/CONFIG_STATIC=y/" .config -sed -i "s/gcc/musl-gcc/" Makefile -make -j`nproc` -cp busybox .. -cd .. - -#INITRAMFS -[[ ! -d initramfs-root ]] && mkdir initramfs-root -cd initramfs-root - -#Filesystem Hierarchy Standard -mkdir -p ./{bin,boot,dev,etc/{opt,sgml,X11,xml},home,lib,media,mnt,opt,sbin,srv,tmp,usr/{bin,include,lib,local,sbin,share,src},proc,root,run,sys,var/{cache,lib,lock,log,mail,opt,run,spool/mail,tmp}} - -#Basic Initramfs Directory Structure -#mkdir --parents ./{bin,dev,etc,lib,lib64,mnt/root,proc,root,sbin,sys} - -#Link tools to busybox -cd bin -cp ../../busybox . -for i in `./busybox --list` -do - ln -s busybox $i -done -cd .. - -#initramfs init script -cat > ./init << EOF -#!/bin/sh - -mount -t proc proc /proc -mount -t sysfs sysfs /sys - -#Disable kernel messages -echo 0 > /proc/sys/kernel/printk - -#Dynamic devices -mdev -s - -echo 1 > /proc/sys/kernel/sysrq - -echo "Welcome to MatejaOS!" - -echo "You can turn off the system using SysRq." -echo "echo s > /proc/sysrq-trigger" -echo "echo o > /proc/sysrq-trigger" - -while true -do - #Job control for BusyBox shell - setsid cttyhack sh - sleep 1 -done - -##FOR FUTURE USE (SWITCH ROOT TO HARD DRIVE) -#mkdir /mnt/root -#rescue_shell() { -# echo "Something went wrong. Dropping to a shell." -# exec sh -#} -#cmdline() { -# local value -# value=" $(cat /proc/cmdline) " -# value="${value##* ${1}=}" -# value="${value%% *}" -# [ "${value}" != "" ] && echo "${value}" -#} -## Mount the root filesystem. -#mount -o ro $(findfs $(cmdline root)) /mnt/root || rescue_shell -## Clean up. -#umount /proc -#umount /sys -## Switch to hard drive -#exec switch_root /mnt/root /sbin/init -EOF -chmod +x init - -#create initramfs -find . | cpio --create --format=newc > ../initramfs - -cd .. - -#CREATE ISO -mkdir -p iso-dir/boot/grub -cp vmlinux initramfs iso-dir/boot/ -cat > iso-dir/boot/grub/grub.cfg << EOF -set timeout=3 -set default=0 -menuentry 'MatejaOS' { - linux /boot/vmlinux - initrd /boot/initramfs -} -EOF -grub-mkrescue -o ../ml.iso iso-dir - -echo "Finished!" -echo "You can boot the iso file with command:" -echo "qemu-system-x86_64 -m 512 -cdrom ml.iso -boot d" |