diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f730a3b..28440f2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -187,6 +187,14 @@ jobs: scripts/ubuntu_debootstrap.sh jammy ${{ matrix.arch }} SUDO=1 ROOTFS_DIR=./rootfs/ubuntu-jammy-${{ matrix.arch }} CPIO_FILE=ubuntu-jammy-${{ matrix.arch }}.cpio.gz make rootfs-overlay + scripts/ubuntu_rootfs.sh 22.04 ${{ matrix.arch }} + ROOTFS_DIR=./rootfs/ubuntu-22.04-${{ matrix.arch }} CPIO_FILE=ubuntu-22.04-${{ matrix.arch }}.cpio.gz make cpio + rm -rf ./rootfs/ubuntu-22.04-${{ matrix.arch }} + + scripts/ubuntu_rootfs.sh 22.04 ${{ matrix.arch }} + ROOTFS_DIR=./rootfs/ubuntu-22.04-${{ matrix.arch }} ROOTFS=${ROOTFS_DIR}.img CPIO_FILE=ubuntu-22.04-${{ matrix.arch }}.cpio.gz make rootfs-overlay + rm -rf ./rootfs/ubuntu-22.04-${{ matrix.arch }} + - name: Setup shared/init.sh run: | mkdir shared @@ -196,10 +204,11 @@ jobs: - name: Run kernel run: | QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME make run - QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME ROOTFS=./rootfs/ubuntu-jammy-${{ matrix.arch }}.img make run + QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME ROOTFS=./rootfs-${{ matrix.arch }} make run + QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME ROOTFS=./rootfs/ubuntu-22.04-${{ matrix.arch }}.img make run QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME INITRD=1 make run - QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME INITRD=./ubuntu-jammy-${{ matrix.arch }}.cpio.gz make run - QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME CPU=2 MEM=2048M QEMU_EXTRA_ARGS="" QEMU_EXTRA_KERNEL_CMDLINE="nokaslr" ROOTFS=./alpine-${{ matrix.arch }}.img make run + QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME INITRD=./ubuntu-22.04-${{ matrix.arch }}.cpio.gz make run + QEMU_KERNEL_IMAGE=./kernel-image/$IMAGE_NAME CPU=2 MEM=2048M QEMU_EXTRA_ARGS="" QEMU_EXTRA_KERNEL_CMDLINE="nokaslr" make run - name: Upload rootfs artifact uses: actions/upload-artifact@v3 diff --git a/.gitignore b/.gitignore index 58dcc52..a00fa18 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /rootfs/*.cpio.gz /rootfs/alpine-*/ /rootfs/ubuntu-*/ +/rootfs/ubuntu-*.tar.gz /toolchain /shared diff --git a/scripts/ubuntu_rootfs.sh b/scripts/ubuntu_rootfs.sh new file mode 100755 index 0000000..14855a7 --- /dev/null +++ b/scripts/ubuntu_rootfs.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -o errexit + +CWD=$(dirname -- "$0") +ROOT_DIR="$(realpath ${CWD}/..)" + +version="${1:-22.04}" +arch="${2:-x86_64}" +orig_arch="$arch" + +if [[ "$arch" == x86_64 ]]; then + arch=amd64 +elif [[ "$arch" != arm64 ]]; then + echo "usage: $0 VERSION [x86_64 | arm64]" + exit 1 +fi + +URL="https://cdimage.ubuntu.com/ubuntu-base/releases/$%7Bversion%7D/release" +FILEPATH="${ROOT_DIR}/rootfs/ubuntu-base-${version}-base-${arch}.tar.gz" +DIR="${ROOT_DIR}/rootfs/ubuntu-${version}-${orig_arch}" + +wget --no-verbose --show-progress "$URL/ubuntu-base-${version}-base-${arch}.tar.gz" -O "$FILEPATH" +mkdir -p "$DIR" +tar -xf "$FILEPATH" -C "$DIR" + +echo "Ubuntu ${version} rootfs extracted to ${DIR}"