feat: add the initramfs and install grub
This commit is contained in:
parent
e07c4a68a9
commit
b5ec106b16
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -37,6 +37,6 @@ jobs:
|
|||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||||
asset_path: ./dist/boot/boot.img
|
asset_path: ./egos.iso
|
||||||
asset_name: egos-v${{ github.run_number }}.img
|
asset_name: egos-v${{ github.run_number }}.img
|
||||||
asset_content_type: application/octet-stream
|
asset_content_type: application/octet-stream
|
||||||
|
|||||||
36
build.bash
36
build.bash
@ -22,19 +22,22 @@ sudo apt-get install -y\
|
|||||||
libtool\
|
libtool\
|
||||||
libpng-dev\
|
libpng-dev\
|
||||||
libfreetype-dev\
|
libfreetype-dev\
|
||||||
git
|
git\
|
||||||
|
grub-common
|
||||||
|
|
||||||
# Create the dist directory
|
# Create the directory structure
|
||||||
mkdir -p dist/boot
|
mkdir -p iso/boot/grub
|
||||||
|
mkdir -p initramfs/{bin,sbin,etc,proc,sys,usr/{bin,sbin}}
|
||||||
|
|
||||||
# Download the kernel source
|
# Download the kernel source
|
||||||
wget https://www.kernel.org/pub/linux/kernel/v${LINUX_MAJOR}.x/linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}.tar.xz
|
wget https://www.kernel.org/pub/linux/kernel/v${LINUX_MAJOR}.x/linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}.tar.xz
|
||||||
tar -xf linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}.tar.xz
|
tar -xf linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}.tar.xz
|
||||||
cd linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}
|
cd linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}
|
||||||
|
make -j$(nproc) x86_64_defconfig
|
||||||
cp ../config/linux.config .config
|
cp ../config/linux.config .config
|
||||||
make -j$(nproc)
|
make -j$(nproc) bzImage
|
||||||
echo $PWD
|
echo $PWD
|
||||||
cp arch/x86/boot/bzImage ../dist/boot/.
|
cp arch/x86/boot/bzImage ../iso/boot/.
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# Download the busybox source
|
# Download the busybox source
|
||||||
@ -43,19 +46,22 @@ tar -xf busybox-${BUSYBOX_MAJOR}.${BUSYBOX_MINOR}.${BUSYBOX_PATCH}.tar.bz2
|
|||||||
cd busybox-${BUSYBOX_MAJOR}.${BUSYBOX_MINOR}.${BUSYBOX_PATCH}
|
cd busybox-${BUSYBOX_MAJOR}.${BUSYBOX_MINOR}.${BUSYBOX_PATCH}
|
||||||
cp ../config/busybox.config .config
|
cp ../config/busybox.config .config
|
||||||
make -j$(nproc)
|
make -j$(nproc)
|
||||||
make CONFIG_PREFIX=../dist install
|
make CONFIG_PREFIX=../initramfs install
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
# Create the initramfs
|
||||||
|
sudo mount -t proc /proc initramfs/proc
|
||||||
|
sudo mount -t sysfs /sys initramfs/sys
|
||||||
|
sudo mount -o bind /dev initramfs/dev
|
||||||
|
sudo mount -o bind /dev/pts initramfs/dev/pts
|
||||||
|
cd initramfs
|
||||||
|
find . | cpio -H newc -o > ../iso/boot/initramfs.cpio
|
||||||
|
|
||||||
|
# Install GRUB
|
||||||
|
cp config/grub.cfg iso/boot/grub/grub.cfg
|
||||||
|
|
||||||
# Create the bootable image
|
# Create the bootable image
|
||||||
dd if=/dev/zero of=dist/boot/boot.img bs=1M count=256
|
grub-mkrescue -o egos.iso iso
|
||||||
mkfs.ext4 dist/boot/boot.img
|
|
||||||
mkdir -p dist/mnt
|
|
||||||
sudo mount dist/boot/boot.img dist/mnt
|
|
||||||
set +e
|
|
||||||
sudo cp -r dist/* dist/mnt/.
|
|
||||||
set -e
|
|
||||||
sudo umount dist/mnt
|
|
||||||
sudo rmdir dist/mnt
|
|
||||||
|
|
||||||
# The image is ready to be used
|
# The image is ready to be used
|
||||||
echo " ___ ___ ___ ";
|
echo " ___ ___ ___ ";
|
||||||
|
|||||||
17
config/grub.cfg
Normal file
17
config/grub.cfg
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
set default=0
|
||||||
|
set timeout=10
|
||||||
|
insmod efi_gop
|
||||||
|
insmod font
|
||||||
|
if loadfont /boot/grub/fonts/unicode.pf2
|
||||||
|
then
|
||||||
|
insmod gfxterm
|
||||||
|
set gfxmode-auto
|
||||||
|
set gfxpayload=keep
|
||||||
|
terminal_output gfxterm
|
||||||
|
fi
|
||||||
|
menuentry 'EgOS LINUX' --class os {
|
||||||
|
insmod gzio
|
||||||
|
insmod part_msdos
|
||||||
|
linux /boot/bzImage
|
||||||
|
initrd /boot/initramfs.cpio
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user