Skip to content

feat: th1520main: add powervr upstream driver firmware #259

feat: th1520main: add powervr upstream driver firmware

feat: th1520main: add powervr upstream driver firmware #259

Workflow file for this run

name: mkimg-th1520-ci
on:
push:
tags:
- '*'
branches:
- '*'
pull_request:
workflow_dispatch:
env:
wget_alias: 'wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0'
ARCH: riscv
TZ: Asia/Shanghai
jobs:
prepare:
runs-on: ubuntu-22.04
env:
CREATE_TARBALL: common_revyos_rootfs.tar
steps:
- name: Install Software
run: |
sudo apt update && \
sudo apt install -y gdisk dosfstools build-essential autoconf automake autotools-dev ninja-build make \
libncurses-dev gawk flex bison openssl libssl-dev tree \
gcc-riscv64-linux-gnu gfortran-riscv64-linux-gnu libgomp1-riscv64-cross \
qemu-user-static binfmt-support mmdebstrap
${wget_alias} https://fast-mirror.isrc.ac.cn/revyos/revyos-addons/pool/main/r/revyos-keyring/revyos-keyring_2025.03.28_all.deb
sudo apt install ./revyos-keyring_2025.03.28_all.deb
- name: Checkout qemu
uses: actions/checkout@v6
with:
repository: revyos/qemu
path: qemu
ref: 222729c7455784dd855216d7a2bec4bd8f2a6800 # revyos-xuantie-9.0
- name: build qemu
run: |
pushd qemu
./configure \
--prefix=$HOME/qemu-install \
--static \
--target-list=riscv64-linux-user \
--disable-system \
--disable-pie \
--interp-prefix=/etc/qemu-binfmt/%M
make -j$(nproc)
make install
sudo cp -fv $HOME/qemu-install/bin/qemu-riscv64 /usr/bin/qemu-riscv64-static
popd
ls -al /usr/bin/qemu-riscv64-static
sudo dpkg-reconfigure binfmt-support
- uses: actions/upload-artifact@v7
with:
name: qemu-riscv64-static-ci
path: /usr/bin/qemu-riscv64-static
- name: Checkout Repo
uses: actions/checkout@v6
with:
path: 'mkimg-th1520' # TODO: make this name a global variable
- name: Make rootfs tarball
run: |
pushd mkimg-th1520
sudo -E ./mkrootfs.sh
mv ${CREATE_TARBALL} ../
popd
- uses: actions/upload-artifact@v7
with:
name: common_revyos_rootfs
path: ${{ env.CREATE_TARBALL }}
mkrootfs:
needs: prepare
strategy:
fail-fast: false
matrix:
model: [lpi4a, ahead, console, laptop, th1520main, meles]
runs-on: ubuntu-22.04
env:
BOARD: ${{ matrix.model }}
steps:
- name: Free Disk Space
uses: endersonmenezes/free-disk-space@v3 # Use @main for latest, @v3 for stable
with:
remove_android: true
remove_dotnet: true
remove_haskell: true
remove_tool_cache: true
remove_swap: true
remove_packages: "azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-*"
remove_packages_one_command: true
remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/lib/node_modules /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/local/aws-sam-cli /usr/share/gradle"
rm_cmd: "rm" # Use 'rmz' for faster deletion (default: 'rm')
rmz_version: "3.1.1" # Required when rm_cmd is 'rmz'
testing: false
- name: Run Configuration Commands
run: |
DATESTAMP="$(date --utc '+%Y.%m.%d')"
echo "Version: ${DATESTAMP}"
# Setup Artifacts Directory
ARTIFACTS_DIR="/opt/artifacts/"
mkdir -p $ARTIFACTS_DIR
# Setup environment variables
echo "DATESTAMP=${DATESTAMP}" >> $GITHUB_ENV
echo "ARTIFACTS_DIR=${ARTIFACTS_DIR}" >> $GITHUB_ENV
shell: bash
- name: Create Timestamp
run: |
echo "BUILD_ID=$(date +%Y%m%d_%H%M%S)" >> $GITHUB_ENV
echo "BUILD_DATE=$(date +%Y%m%d)" >> $GITHUB_ENV
- name: Install Software
run: |
sudo apt update && \
sudo apt install -y gdisk dosfstools build-essential autoconf automake autotools-dev ninja-build make \
libncurses-dev gawk flex bison openssl libssl-dev tree \
gcc-riscv64-linux-gnu gfortran-riscv64-linux-gnu libgomp1-riscv64-cross \
qemu-user-static binfmt-support mmdebstrap libconfuse-dev mtools rsync
wget https://mirror.iscas.ac.cn/revyos/revyos-addons/pool/main/r/revyos-keyring/revyos-keyring_2025.03.28_all.deb
sudo apt install ./revyos-keyring_2025.03.28_all.deb
- name: Download Built Artifacts
uses: actions/download-artifact@v8
with:
path: ${{ env.ARTIFACTS_DIR }}
- name: Configure QEMU
run: |
tree ${ARTIFACTS_DIR}/
sudo cp -vf ${ARTIFACTS_DIR}/qemu-riscv64-static-ci/qemu-riscv64-static /usr/bin/qemu-riscv64-static
sudo chmod a+x /usr/bin/qemu-riscv64-static
ls -al /usr/bin/qemu-riscv64-static
sudo dpkg-reconfigure binfmt-support
echo "USE_TARBALL=${ARTIFACTS_DIR}/common_revyos_rootfs/common_revyos_rootfs.tar" >> $GITHUB_ENV
- name: Checkout genimage
uses: actions/checkout@v6
with:
repository: pengutronix/genimage
path: genimage
ref: v18
- name: build genimage
run: |
pushd genimage
./autogen.sh
./configure
make -j$(nproc)
sudo make install
popd
- name: Checkout Repo
uses: actions/checkout@v6
with:
path: 'mkimg-th1520' # TODO: make this name a global variable
- name: Make Image
run: |
# make revyos-release on CI
pushd mkimg-th1520
echo "BUILD_ID=${{ env.BUILD_ID }}" >> revyos-release
echo "BUILD_DATE=${{ env.BUILD_DATE }}" >> revyos-release
echo "BOARD_NAME=${{ env.BOARD }}" >> revyos-release
echo "RELEASE_ID=${{ github.ref_name }}" >> revyos-release
echo "COMMIT_ID=${{ github.sha }}" >> revyos-release
echo "RUNNER_ID=${{ github.run_id }}" >> revyos-release
sudo -E ./mkrootfs.sh
popd
- name: Make Checksum file & Compress files
run: |
pushd mkimg-th1520
zstd *.ext4
zstd *.img
sha256sum *.zst > SHA256SUMS
sha512sum *.zst > SHA512SUMS
popd
- name: 'Upload Artifact EMMC'
uses: actions/upload-artifact@v7
with:
retention-days: 30
name: th1520-${{ env.BOARD }}-${{ env.BUILD_ID }}
path: |
mkimg-th1520/*.ext4.zst
mkimg-th1520/SHA256SUMS
mkimg-th1520/SHA512SUMS
- name: 'Upload Artifact SDCARD'
uses: actions/upload-artifact@v7
with:
retention-days: 30
name: th1520-sdcard-${{ env.BOARD }}-${{ env.BUILD_ID }}
path: |
mkimg-th1520/*.img.zst
mkimg-th1520/SHA256SUMS
mkimg-th1520/SHA512SUMS
- name: 'Upload Release'
uses: softprops/action-gh-release@v3
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
mkimg-th1520/*.zst
token: ${{ secrets.GITHUB_TOKEN }}
upload_checksum:
needs: mkrootfs
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-22.04
steps:
- name: Free Disk Space
uses: endersonmenezes/free-disk-space@v3 # Use @main for latest, @v3 for stable
with:
remove_android: true
remove_dotnet: true
remove_haskell: true
remove_tool_cache: true
remove_swap: true
remove_packages: "azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-*"
remove_packages_one_command: true
remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/lib/node_modules /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/local/aws-sam-cli /usr/share/gradle"
rm_cmd: "rm" # Use 'rmz' for faster deletion (default: 'rm')
rmz_version: "3.1.1" # Required when rm_cmd is 'rmz'
testing: false
- name: Download Built Artifacts
uses: actions/download-artifact@v8
- name: Make Checksum file
run: |
find . -name "*.zst" | xargs -I{} mv -v {} .
sha256sum *.zst > SHA256SUMS
sha512sum *.zst > SHA512SUMS
- name: 'Upload checksum'
uses: softprops/action-gh-release@v3
with:
files: |
SHA256SUMS
SHA512SUMS
token: ${{ secrets.GITHUB_TOKEN }}