Skip to content

meta: remove accidental conflict marker #107

meta: remove accidental conflict marker

meta: remove accidental conflict marker #107

Workflow file for this run

name: VisionFive 2 kernel build
on: [workflow_dispatch, push]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
build:
# https://github.com/actions/virtual-environments
runs-on: ubuntu-22.04
defaults:
run:
shell: sh
env:
CROSS_COMPILE: 'riscv64-linux-gnu-'
ARCH: 'riscv'
steps:
- name: Setup tmpfs
run: sudo mount -t tmpfs -o "noatime,lazytime,uid=$(id -u),size=3G" tmpfs "$GITHUB_WORKSPACE"
- uses: actions/checkout@v3
- name: Build init
run: |
sudo apt-get -q update
sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq dist-upgrade
sudo DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -qq install make gcc libc6-dev flex bison gcc-riscv64-linux-gnu bc libssl-dev
rm -Rf linux-image-visionfive2
mkdir -p linux-image-visionfive2/DEBIAN linux-image-visionfive2/boot/extlinux
- name: Build Linux
run: |
> .scmversion # Avoid Git commit version suffix
mv dietpi_visionfive2_defconfig arch/riscv/configs/
make dietpi_visionfive2_defconfig
make -j$(nproc)
make install INSTALL_PATH='linux-image-visionfive2/boot'
make dtbs_install INSTALL_DTBS_PATH='linux-image-visionfive2/usr/lib/linux-image-visionfive2'
find linux-image-visionfive2/usr/lib/linux-image-visionfive2 -mindepth 1 -regextype egrep \( ! -regex '.*/(starfive|vf2-overlay.*|jh7110-starfive-visionfive-2-.*\.dtb)' -o -regex '.*/jh7110-starfive-visionfive-2-A1[01].dtb' \) -exec rm -Rf {} +
make modules_install INSTALL_MOD_PATH='linux-image-visionfive2'
rm linux-image-visionfive2/lib/modules/*/build linux-image-visionfive2/lib/modules/*/source
# WiFi/BT firmware: https://github.com/starfive-tech/buildroot/blob/JH7110_VisionFive2_devel/package/starfive/starfive-firmware/starfive-firmware.mk
mkdir -p linux-image-visionfive2/lib/firmware
curl -fLO https://github.com/starfive-tech/buildroot/archive/JH7110_VisionFive2_devel.tar.gz
tar xf JH7110_VisionFive2_devel.tar.gz
rm JH7110_VisionFive2_devel.tar.gz
cp -Rv buildroot-JH7110_VisionFive2_devel/package/starfive/starfive-firmware/*/* linux-image-visionfive2/lib/firmware/
rm -R buildroot-JH7110_VisionFive2_devel
# StarFive DRI library
curl -sSfO 'https://raw.githubusercontent.com/starfive-tech/Debian/20221225T084846Z/gpu/DDK1.19-binary-xorg/IMG_GPU-xorg.tar.gz'
tar xf IMG_GPU-xorg.tar.gz
rm IMG_GPU-xorg.tar.gz
mkdir -p linux-image-visionfive2/usr/lib/riscv64-linux-gnu/dri
cp IMG_GPU-xorg/usr/local/lib/dri/starfive_dri.so linux-image-visionfive2/usr/lib/riscv64-linux-gnu/dri/
rm -R IMG_GPU-xorg
# Permissions
find linux-image-visionfive2 -type f -exec chmod 0644 {} +
find linux-image-visionfive2 -type d -exec chmod 0755 {} +
- name: Build package
run: |
kernelversion=$(make kernelversion)
#curl -fO 'https://dietpi.com/downloads/binaries/linux-image-visionfive2.deb'
#cur_version=$(dpkg-deb -f linux-image-visionfive2.deb Version)
#rm linux-image-visionfive2.deb
#cur_suffix=${cur_version#*-dietpi}
#echo "Current package version is: $cur_version"
echo "New kernel version is: $kernelversion"
#[ "$kernelversion-dietpi$cur_suffix" = "$cur_version" ] && version="$kernelversion-dietpi$((cur_suffix+1))" || version="$kernelversion-dietpi1"
version="$kernelversion-dietpi1"
echo "New package version will be: $version"
cat << _EOF_ > linux-image-visionfive2/boot/extlinux/extlinux.conf
label DietPi
linux /boot/vmlinuz-$kernelversion
fdt /usr/lib/linux-image-visionfive2/starfive/jh7110-starfive-visionfive-2-v1.3b.dtb
append root=/dev/mmcblk1p1 rootfstype=ext4 rootwait earlycon=sbi console=ttyS0,115200 console=tty1 consoleblank=0 net.ifnames=0
_EOF_
echo '/boot/extlinux/extlinux.conf' > linux-image-visionfive2/DEBIAN/conffiles
cat << _EOF_ > linux-image-visionfive2/DEBIAN/postinst
#!/bin/dash
set -e
export DEB_MAINT_PARAMS=\$* INITRD=Yes
[ -d '/etc/kernel/postinst.d' ] && run-parts --arg='$kernelversion' --arg='/boot/vmlinuz-$kernelversion' /etc/kernel/postinst.d
sed -Ei '/^[[:blank:]]*(linux|kernel)/c\linux /boot/vmlinuz-$kernelversion' /boot/extlinux/extlinux.conf
# Post-5.15.158-dietpi1 extlinux.conf migration, due to changed device tree names: https://github.com/starfive-tech/linux/commit/daba99e
dpkg --compare-versions "$2" gt '5.15.158-dietpi1' || sed -i -e 's/jh7110-visionfive-v2/jh7110-starfive-visionfive-2/g' -e 's/jh7110-starfive-visionfive-2\.dtb/jh7110-starfive-visionfive-2-v1.3b\.dtb/g' /boot/extlinux/extlinux.conf
exit 0
_EOF_
cp linux-image-visionfive2/DEBIAN/postinst linux-image-visionfive2/DEBIAN/preinst
sed -i -e '/extlinux/d' -e 's/postinst/preinst/g' linux-image-visionfive2/DEBIAN/preinst
cp linux-image-visionfive2/DEBIAN/postinst linux-image-visionfive2/DEBIAN/postrm
sed -i -e '/extlinux/d' -e 's/postinst/postrm/g' linux-image-visionfive2/DEBIAN/postrm
cp linux-image-visionfive2/DEBIAN/postinst linux-image-visionfive2/DEBIAN/prerm
sed -i -e '/extlinux/d' -e 's/postinst/prerm/g' linux-image-visionfive2/DEBIAN/prerm
chmod +x linux-image-visionfive2/DEBIAN/p*
find linux-image-visionfive2 ! \( -path linux-image-visionfive2/DEBIAN -prune \) -type f -exec md5sum {} + | sed 's|linux-image-visionfive2/||' > linux-image-visionfive2/DEBIAN/md5sums
cat << _EOF_ > linux-image-visionfive2/DEBIAN/control
Package: linux-image-visionfive2
Version: $version
Architecture: riscv64
Maintainer: MichaIng <[email protected]>
Date: $(date -u '+%a, %d %b %Y %T %z')
Standards-Version: 4.6.2.0
Installed-Size: $(du -sk 'linux-image-visionfive2' | mawk '{print $1}')
Section: kernel
Priority: optional
Homepage: https://github.com/MichaIng/linux
Vcs-Git: https://github.com/MichaIng/linux.git
Vcs-Browser: https://github.com/MichaIng/linux
Description: Linux kernel for RISC-V StarFive VisionFive 2
_EOF_
sed -i "/^Installed-Size:/c\Installed-Size: $(du -sk 'linux-image-visionfive2' | mawk '{print $1}')" linux-image-visionfive2/DEBIAN/control
sudo chown -R 0:0 linux-image-visionfive2
dpkg-deb -b -Zxz -z9 -Sextreme linux-image-visionfive2
sudo rm -R linux-image-visionfive2
# - name: Upload
# run: |
# [ -d ~/.ssh ] || mkdir ~/.ssh
# umask 377
# echo '${{ secrets.KNOWN_HOSTS }}' > ~/.ssh/known_hosts
# echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ed25519
# curl -T 'linux-image-visionfive2.deb' --key ~/.ssh/id_ed25519 '${{ secrets.UPLOAD_URL }}all/'
# curl 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE }}/purge_cache' -H 'Authorization: Bearer ${{ secrets.CF_TOKEN }}' -H 'Content-Type: application/json' \
# --data '{"files":["https://dietpi.com/downloads/binaries/testing/","https://dietpi.com/downloads/binaries/testing/linux-image-visionfive2.deb"]}'