build 3ds rootfs #15
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build 3ds rootfs | |
on: | |
workflow_dispatch: | |
jobs: | |
build-3ds-rootfs: | |
runs-on: ubuntu-20.04 | |
permissions: | |
contents: write | |
steps: | |
- name: "Checkout Repo" | |
uses: actions/checkout@v4 | |
# Cleanup The Actions Workspace Using Custom Composite Run Actions | |
- name: Cleanup | |
uses: rokibhasansagar/slimhub_actions@main | |
# That's it! Now use your normal steps | |
- name: Get Buildroot source | |
run: | | |
git clone https://github.com/linux-3ds/buildroot.git --depth=1 | |
- name: Set Swap Space | |
uses: pierotofy/set-swap-space@master | |
with: | |
swap-size-gb: 8 | |
- run: | | |
sudo apt-get install -y binutils build-essential git flex bison libssl-dev bc libgmp-dev subversion libmpc-dev | |
- run: cp 3ds_defconfig buildroot/configs/nintendo3ds_defconfig | |
- name: Build | |
run: | | |
cd buildroot | |
make nintendo3ds_defconfig | |
make all -j4 | |
- name: Upload rootfs to Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "3ds-rootfs" | |
path: buildroot/output/images/rootfs.cpio.gz | |
build-arm9linuxfw: | |
runs-on: ubuntu-20.04 | |
permissions: | |
contents: write | |
steps: | |
- name: "Pull Repo" | |
run: git clone https://github.com/linux-3ds/arm9linuxfw | |
- name: "Install Packages" | |
run: sudo apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi | |
- name: Build | |
run: make -C arm9linuxfw -j4 | |
- name: Upload arm9linuxfw to Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "arm9linuxfw" | |
path: arm9linuxfw/arm9linuxfw.bin | |
build-kernel: | |
needs: build-3ds-rootfs | |
runs-on: ubuntu-20.04 | |
permissions: | |
contents: write | |
steps: | |
- name: "Pull Repo" | |
run: git clone https://github.com/linux-3ds/linux --depth=1 | |
- name: Download Rootfs | |
uses: actions/download-artifact@v3 | |
with: | |
name: 3ds-rootfs | |
path: linux/ | |
- name: "Install Packages" | |
run: sudo apt-get install -y gcc-arm-linux-gnueabi binutils build-essential git flex bison libssl-dev bc axel libgmp-dev libmpc-dev jq | |
- name: Build | |
env: | |
ARCH: "arm" | |
CROSS_COMPILE: "arm-linux-gnueabi-" | |
run: | | |
make -C linux nintendo3ds_defconfig all -j4 | |
mkdir -p -v out | |
cp linux/arch/arm/boot/zImage out -v | |
cp linux/arch/arm/boot/dts/nintendo3ds_ctr.dtb out -v | |
cp linux/arch/arm/boot/dts/nintendo3ds_ktr.dtb out -v | |
- name: Upload rootfs to Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "3ds-kernel" | |
path: out/* | |
build-firm: | |
runs-on: ubuntu-20.04 | |
permissions: | |
contents: write | |
steps: | |
- name: "Install Packages" | |
run: | | |
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi build-essential git python3-pip | |
pip3 install -U git+https://github.com/TuxSH/firmtool.git | |
- name: Pull Repo | |
run: git clone https://github.com/linux-3ds/firm_linux_loader/ | |
- name: Build | |
run: make -C firm_linux_loader -j4 | |
env: | |
CC: "arm-none-eabi-gcc" | |
- name: Upload firm to Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "firm_linux_loader" | |
path: firm_linux_loader/firm_linux_loader.firm | |