name: revyos-kernel-build on: push: pull_request: workflow_dispatch: schedule: - cron: "0 2 * * *" env: xuetie_toolchain: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1663142514282 toolchain_file_name: Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1-20220906.tar.gz toolchain_tripe: riscv64-unknown-linux-gnu- ARCH: riscv jobs: kernel: runs-on: ubuntu-22.04 steps: - name: Install software run: | sudo apt update && \ sudo apt install -y gdisk dosfstools g++-12-riscv64-linux-gnu build-essential \ libncurses-dev gawk flex bison openssl libssl-dev tree \ dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf device-tree-compiler sudo update-alternatives --install \ /usr/bin/riscv64-linux-gnu-gcc riscv64-gcc /usr/bin/riscv64-linux-gnu-gcc-12 10 sudo update-alternatives --install \ /usr/bin/riscv64-linux-gnu-g++ riscv64-g++ /usr/bin/riscv64-linux-gnu-g++-12 10 - name: Checkout kernel uses: actions/checkout@v3 with: path: 'kernel' - name: Checkout img uses: actions/checkout@v3 with: repository: 'revyos/gpu_bxm_4_64-kernel' ref: 'master' path: 'img_module' - name: Configure toolchains run: | mkdir rootfs && mkdir rootfs/boot wget ${xuetie_toolchain}/${toolchain_file_name} tar -xvf ${toolchain_file_name} -C /opt - name: Compile Kernel && Install run: | export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1/bin:$PATH" pushd kernel make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} revyos_defconfig make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc) make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc) dtbs if [ x"$(cat .config | grep CONFIG_MODULES=y)" = x"CONFIG_MODULES=y" ]; then sudo make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} INSTALL_MOD_PATH=${GITHUB_WORKSPACE}/rootfs/ modules_install -j$(nproc) fi sudo make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} INSTALL_PATH=${GITHUB_WORKSPACE}/rootfs/boot zinstall -j$(nproc) # Install Kernel sudo cp -v arch/riscv/boot/Image ${GITHUB_WORKSPACE}/rootfs/boot/ # sudo cp -v arch/riscv/boot/Image.gz ${GITHUB_WORKSPACE}/rootfs/boot/ # Install DTB sudo cp -v arch/riscv/boot/dts/thead/*.dtb ${GITHUB_WORKSPACE}/rootfs/boot/ popd - name: IMG_MODULE compile run: | export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1/bin:$PATH" export PVR_BUILD_DIR=thead_linux export PVR_ARCH=rogue export RGX_BVNC=36.52.104.182 export RGX_BNC=36.52.104.182 export CROSS_COMPILE=${toolchain_tripe} pushd img_module/rogue_km export KERNELDIR=${GITHUB_WORKSPACE}/kernel/ make for kernel_version in $(ls ${GITHUB_WORKSPACE}/rootfs/lib/modules/); do sudo install -D -p -m 644 binary_thead_linux_wayland_release/target_riscv64/kbuild/drm_nulldisp.ko \ "${GITHUB_WORKSPACE}/rootfs/lib/modules/${kernel_version}/extra/drm_nulldisp.ko" sudo install -D -p -m 644 binary_thead_linux_wayland_release/target_riscv64/kbuild/pvrsrvkm.ko \ "${GITHUB_WORKSPACE}/rootfs/lib/modules/${kernel_version}/extra/pvrsrvkm.ko" sudo depmod -a -b "${GITHUB_WORKSPACE}/rootfs" "${kernel_version}" done # cp -vr output/lib/firmware ${GITHUB_WORKSPACE}/rootfs/ popd tree ${GITHUB_WORKSPACE}/rootfs - name: compress run: tar -zcvf kernel.tar.gz rootfs - name: 'Upload Artifact' uses: actions/upload-artifact@v3 with: name: kernel.tar.gz path: kernel.tar.gz retention-days: 30