Skip to content

Stable Release Build linux-wsl-stable-6.8.4 #70

Stable Release Build linux-wsl-stable-6.8.4

Stable Release Build linux-wsl-stable-6.8.4 #70

Workflow file for this run

name: Stable Kernel CI
on:
push:
tags:
- 'linux-wsl-stable-6.8.[0-9]+'
run-name: Stable Release Build ${{ github.ref_name }}
jobs:
build:
runs-on: ubuntu-latest
container: nevuly/nevuly-dev-base:arch
strategy:
matrix:
include:
- arch: x86
image-name: bzImage-x86_64
- arch: arm64
image-name: Image-arm64
env:
TAG_VERSION: '${{ github.ref_name }}'
steps:
- name: Trust this directory
run: git config --global --add safe.directory /__w/WSL2-Linux-Kernel-Rolling/WSL2-Linux-Kernel-Rolling
- uses: actions/checkout@main
- name: Download WSL2 stable kernel
run: |
git clone https://github.com/Nevuly/WSL2-Linux-Kernel-Rolling.git --depth 1 -b $TAG_VERSION linux
- name: Build WSL2 stable kernel
run: |
cd linux
if [ ${{ matrix.arch }} == "x86" ]
then
make KCONFIG_CONFIG=arch/x86/configs/config-wsl-x86 -j$(echo `nproc` + 1 | bc)
cp arch/x86/boot/bzImage ../${{ matrix.image-name }}
else
export ARCH=arm64 && export CROSS_COMPILE=aarch64-linux-gnu-
make KCONFIG_CONFIG=arch/arm64/configs/config-wsl-arm64 -j$(echo `nproc` + 1 | bc)
cp arch/arm64/boot/Image ../${{ matrix.image-name }}
fi
echo "Done"
- name: Generate kernel modules package
run: |
echo "Check kernel version"
IFS=- read -r var1 var2 var3 version <<< ${{ env.TAG_VERSION }}
echo "Kernel verison: $version"
cd linux
echo "Download kernel modules package installer script"
wget https://gist.githubusercontent.com/Nevuly/cf1d17db72cdfde6ed149461eef0215c/raw/b1cfb4382e1dcf58c9728b39865942cdf587f63c/modules-install.sh
chmod 775 modules-install.sh
echo "Generate kernel modules tarball"
mkdir -p ${{ matrix.image-name }}-modules_install && make modules_install INSTALL_MOD_PATH=${{ matrix.image-name }}-modules_install
cp modules-install.sh ${{ matrix.image-name }}-modules_install/
rm -rf ${{ matrix.image-name }}-modules_install/lib/modules/$version-WSL2-STABLE+/build
echo "$version" >> ${{ matrix.image-name }}-modules_install/kernel_version.txt
tar -czf ${{ matrix.image-name }}-modules_install.tar.gz ${{ matrix.image-name }}-modules_install && mv ${{ matrix.image-name }}-modules_install.tar.gz ../
echo "Done"
- name: Generate kernel optional package (headers, docs)
run: |
echo "Check kernel version"
IFS=- read -r var1 var2 var3 version <<< ${{ env.TAG_VERSION }}
echo "Kernel verison: $version"
cd linux
echo "Download kernel optionals package installer script"
wget https://gist.githubusercontent.com/Nevuly/b203682442ba2c6cf4cad3b35afb6f4b/raw/72cffc2e83a6c9298667a79c91cfe53bbcfcc6e1/optionals-install.sh
chmod 775 optionals-install.sh
echo "Generate kernel headers tarball"
mkdir -p ${{ matrix.image-name }}-optional_install/build
export optional_path=${{ matrix.image-name }}-optional_install/build
install -Dt "$optional_path" -m644 Makefile Module.symvers System.map vmlinux
install -Dt "$optional_path/kernel" -m644 kernel/Makefile
if [ ${{ matrix.arch }} == "x86" ]
then
install -Dt "$optional_path/arch/x86" -m644 arch/x86/Makefile
else
install -Dt "$optional_path/arch/arm64" -m644 arch/arm64/Makefile
fi
cp -t "$optional_path" -a scripts
if [ ${{ matrix.arch }} == "x86" ]
then
install -Dt "$optional_path/tools/objtool" tools/objtool/objtool
fi
cp -t "$optional_path" -a include
if [ ${{ matrix.arch }} == "x86" ]
then
cp -t "$optional_path/arch/x86" -a arch/x86/include
install -Dt "$optional_path/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
else
cp -t "$optional_path/arch/arm64" -a arch/arm64/include
install -Dt "$optional_path/arch/arm64/kernel" -m644 arch/arm64/kernel/asm-offsets.s
mkdir -p "$optional_path/arch/arm"
cp -t "$optional_path/arch/arm" -a arch/arm/include
fi
install -Dt "$optional_path/drivers/md" -m644 drivers/md/*.h
install -Dt "$optional_path/net/mac80211" -m644 net/mac80211/*.h
install -Dt "$optional_path/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
install -Dt "$optional_path/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
install -Dt "$optional_path/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
install -Dt "$optional_path/drivers/media/tuners" -m644 drivers/media/tuners/*.h
install -Dt "$optional_path/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
find . -name 'Kconfig*' -exec install -Dm644 {} "$optional_path/{}" \;
export arch
if [ ${{ matrix.arch }} == "x86" ]
then
for arch in "$optional_path"/arch/*/; do
[[ $arch = */x86/ ]] && continue
echo "Removing $(basename "$arch")"
rm -r "$arch"
done
else
for arch in "$optional_path"/arch/*/; do
[[ $arch = */arm64/ ]] && continue
echo "Removing $(basename "$arch")"
rm -r "$arch"
done
fi
rm -r $optional_path/Documentation
find -L "$optional_path" -type l -printf 'Removing %P\n' -delete
find -L "$optional_path" -type f -name '*.o' -printf 'Removing %P\n' -delete
export file
export STRIP_SHARED
export STRIP_STATIC
export STRIP_BINARIES
while read -rd '' $file; do
case "$(file -Sib "$file")" in
application/x-sharedlib\;*)
strip -v $STRIP_SHARED $file ;;
application/x-archive\;*)
strip -v $STRIP_STATIC $file ;;
application/x-executable\;*)
strip -v $STRIP_BINARIES $file ;;
application/x-pie-executable\;*)
strip -v $STRIP_SHARED $file ;;
esac
done < <(find "$optional_path" -type f -perm -u+x ! -name vmlinux -print0)
if [ ${{ matrix.arch }} == "x86" ]
then
strip -v $STRIP_STATIC "$optional_path/vmlinux"
fi
echo "Generate kernel documentations tarball"
cp -r Documentation $optional_path/Documentation
cp optionals-install.sh ${{ matrix.image-name }}-optional_install/
echo "$version" >> ${{ matrix.image-name }}-optional_install/kernel_version.txt
tar -czf ${{ matrix.image-name }}-optional_install.tar.gz ${{ matrix.image-name }}-optional_install && mv ${{ matrix.image-name }}-optional_install.tar.gz ../
echo "Done"
- name: Generate sha256 Checksum
run: |
sha256sum ${{ matrix.image-name }} > ${{ matrix.image-name }}.sha256
sha256sum ${{ matrix.image-name }}-modules_install.tar.gz > ${{ matrix.image-name }}-modules_install.sha256
sha256sum ${{ matrix.image-name }}-optional_install.tar.gz > ${{ matrix.image-name }}-optional_install.sha256
- name: Upload kernel Images
uses: actions/upload-artifact@main
with:
name: ${{ matrix.image-name }}
path: |
${{ matrix.image-name }}
${{ matrix.image-name }}.sha256
${{ matrix.image-name }}-modules_install.tar.gz
${{ matrix.image-name }}-modules_install.sha256
${{ matrix.image-name }}-optional_install.tar.gz
${{ matrix.image-name }}-optional_install.sha256
release:
runs-on: ubuntu-latest
needs: build
env:
TAG_VERSION: '${{ github.ref_name }}'
steps:
- uses: actions/checkout@main
- uses: actions/download-artifact@main
with:
path: release_images/
- name: Release Kernel
uses: softprops/action-gh-release@master
with:
name: ${{ env.TAG_VERSION }}
tag_name: ${{ env.TAG_VERSION }}
body: |
**NOTICE**
ARM64 kernel has not been tested. If you have any issues, please leave an issue on the Issues tab!
**How to apply this kernel?**
Before you try to apply this kernel, You **MUST** shutdown your WSL. (wsl --shutdown)
Check this [document](https://learn.microsoft.com/en-us/windows/wsl/wsl-config).
**How to install kernel module package in WSL2?**
The installation script is already contained within the kernel module package tarball.
You can run **modules-install.sh** file with root.
**How to install kernel optionals package in WSL2? (Optional)**
The installation script is already contained within the kernel optionals package tarball.
It included kernel headers and kernel documentations.
You can run **optionals-install.sh** file with root.
**This kernel built on ArchLinux.**
files: |
release_images/*/*
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
fail_on_unmatched_files: true