commit
ca2e5495ef
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
|||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
tag_name: v${{ github.run_number }}
|
tag_name: v${{ github.run_number }}
|
||||||
release_name: Build Number\:\ ${{ github.run_number }}
|
release_name: "Build Number: ${{ github.run_number }}"
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
- name: Upload release asset
|
- name: Upload release asset
|
||||||
@ -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
|
||||||
|
|||||||
25
.github/workflows/test.yml
vendored
Normal file
25
.github/workflows/test.yml
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
name: Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- feature
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- opened
|
||||||
|
- reopened
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Run build
|
||||||
|
run: ./build.bash
|
||||||
50
build.bash
50
build.bash
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. config/config.bash
|
. config.bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@ -22,40 +22,46 @@ sudo apt-get install -y\
|
|||||||
libtool\
|
libtool\
|
||||||
libpng-dev\
|
libpng-dev\
|
||||||
libfreetype-dev\
|
libfreetype-dev\
|
||||||
git
|
git\
|
||||||
|
grub-common\
|
||||||
|
mtools
|
||||||
|
|
||||||
# Create the dist directory
|
# Create the directory structure
|
||||||
mkdir -p dist/boot
|
mkdir -p iso/boot/grub
|
||||||
|
mkdir -p initramfs/{bin,sbin,etc,dev,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_VERSION}.tar.xz
|
||||||
tar -xf linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}.tar.xz
|
tar -xf linux-${LINUX_VERSION}.tar.xz
|
||||||
cd linux-${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}
|
cd linux-${LINUX_VERSION}
|
||||||
|
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
|
||||||
wget https://busybox.net/downloads/busybox-${BUSYBOX_MAJOR}.${BUSYBOX_MINOR}.${BUSYBOX_PATCH}.tar.bz2
|
wget https://busybox.net/downloads/busybox-${BUSYBOX_VERSION}.tar.bz2
|
||||||
tar -xf busybox-${BUSYBOX_MAJOR}.${BUSYBOX_MINOR}.${BUSYBOX_PATCH}.tar.bz2
|
tar -xf busybox-${BUSYBOX_VERSION}.tar.bz2
|
||||||
cd busybox-${BUSYBOX_MAJOR}.${BUSYBOX_MINOR}.${BUSYBOX_PATCH}
|
cd busybox-${BUSYBOX_VERSION}
|
||||||
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
|
||||||
|
cd initramfs
|
||||||
|
rm linuxrc # We'll be using a init sciprt instead
|
||||||
|
cp ../scripts/init.sh init
|
||||||
|
find . | cpio -H newc -o > ../iso/boot/initramfs.cpio
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# 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 " ___ ___ ___ ";
|
||||||
|
|||||||
12
config.bash
Normal file
12
config.bash
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
LINUX_MAJOR=6
|
||||||
|
LINUX_MINOR=7
|
||||||
|
LINUX_PATCH=4
|
||||||
|
|
||||||
|
BUSYBOX_MAJOR=1
|
||||||
|
BUSYBOX_MINOR=36
|
||||||
|
BUSYBOX_PATCH=1
|
||||||
|
|
||||||
|
LINUX_VERSION=${LINUX_MAJOR}.${LINUX_MINOR}.${LINUX_PATCH}
|
||||||
|
BUSYBOX_VERSION=${BUSYBOX_MAJOR}.${BUSYBOX_MINOR}.${BUSYBOX_PATCH}
|
||||||
@ -1,9 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
LINUX_MAJOR=6
|
|
||||||
LINUX_MINOR=7
|
|
||||||
LINUX_PATCH=4
|
|
||||||
|
|
||||||
BUSYBOX_MAJOR=1
|
|
||||||
BUSYBOX_MINOR=36
|
|
||||||
BUSYBOX_PATCH=1
|
|
||||||
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
|
||||||
|
}
|
||||||
15
scripts/init.sh
Normal file
15
scripts/init.sh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Disable Kernel Messages
|
||||||
|
dmesg -n 1
|
||||||
|
|
||||||
|
# Mount the file system
|
||||||
|
mount -t devtmpfs none /dev
|
||||||
|
mount -t proc none /dev
|
||||||
|
mount -t sysfs none /sys
|
||||||
|
|
||||||
|
# Start shell
|
||||||
|
/bin/sh
|
||||||
|
|
||||||
|
# Shutdown the machine when shell is exited
|
||||||
|
poweroff -f
|
||||||
Loading…
x
Reference in New Issue
Block a user