Skip to content

build 3ds rootfs

build 3ds rootfs #15

Workflow file for this run

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