English | 中文
Build scripts, patches, kernel config, DTS files, tools, and firmware for Linux images targeting the Huawei MateBook E Go 2023 (codename gaokun3) based on Qualcomm Snapdragon 8cx Gen3 (SC8280XP).
The image pipeline now uses systemd-boot by default and can optionally build a second EL2 kernel variant with CONFIG_LOCALVERSION="-gaokun3-el2".
patches/: kernel patches and device support changesdefconfig/: local kernel configuration used by CI/manual buildsdrivers/: local mirrors of the patched driver sources kept in the patch seriesdts/: local mirrors of the patched device tree sources kept in the patch seriesdocs/: bilingual usage/build guides and platform notesfirmware/: minimal firmware bundle used by the image buildpackaging/: distro kernel and firmware package templates and metadatatools/: device-specific helper scripts, service files, and EL2 EFI payloadsscripts/ci/: workflow build, image creation, and packaging scriptsscripts/local/: some useful scripts that can be run on the local device
The package pipeline builds and installs dedicated package sets:
- Fedora (RPM):
kernel-gaokun3,kernel-modules-gaokun3,kernel-devel-gaokun3,linux-firmware-gaokun3 - Ubuntu (DEB):
linux-image-gaokun3,linux-modules-gaokun3,linux-headers-gaokun3,linux-firmware-gaokun3 - Optional EL2 variants:
*-gaokun3-el2package set for the second EL2 kernel build - Ubuntu kernel image packages run
update-initramfsduring install/upgrade, which in turn refreshes the BLS entry through the distrosystemd-boothook. - Fedora kernel RPMs now ship a matching
dracut.conf.dsnippet and rundracut+kernel-install addin%posttrans, so installing or upgrading the package refreshes the initramfs and BLS entry automatically.
- Fedora and Ubuntu image releases contain compressed installable images.
- Gaokun RPM and DEB releases contain the standalone kernel and firmware package sets used by the image workflows.
upstream/*andothers/0017: adapted from right-0903/linux-gaokun for the base SC8280XP / gaokun3 enablement, display bring-up, EC suspend/resume, ADSP FastRPC, and DSI stability workothers/0001: adapted from whitelewi1-ctrl/matebook-e-go-linux to avoid settingUSE_BDADDR_PROPERTYwhen the adapter address is invalidothers/0002: local change in this repository to enable DSC and allow 60 Hz / 120 Hz switchingothers/0003: adapted from chiyuki0325/EGoTouchRev-Linux to add the Himax HX83121A SPI touchscreen driverothers/0004: adapted from TheUnknownThing/linux-gaokun to improve UCSI handling and module wiring for the Type-C pathmedia/*: adapted from the jhovold/linux to add SC8280XP Venus support0099: local patch in this repository to import the current DTS files andgaokun3_defconfig- [Optional]
el2/*: adapted from TravMurav/linux for the EL2 boot path, including SMP2P handover, remoteproc attach/restart flow, SCM/SHM owner handling, and related rpmsg/QRTR/pmic_glink stability fixes
tools/audio,tools/bluetooth, andtools/touchpad: adapted from whitelewi1-ctrl/matebook-e-go-linuxtools/el2/qebspilaa64.efi: sourced from stephan-gh/qebspiltools/el2/slbounceaa64.efi: sourced from TravMurav/slbouncetools/touchscreen-tuner: adapted from chiyuki0325/EGoTouchRev-Linux, with GTK4 GUI improvements in this repository
The image and local-install workflows now follow the standard kernel-install + BLS flow instead of hand-writing systemd-boot entries.
- BLS entry names and entry directories are generated by
kernel-install. With the default--entry-token=machine-id, filenames are tied to/etc/machine-id, e.g.loader/entries/<machine-id>-<kernel-release>.conf. - Kernel, initrd/initramfs, and DTB files copied into the ESP are also placed under the matching
<entry-token>/<kernel-release>/directory automatically by the distro hook. - A compatibility copy of the DTB is also kept in
/bootso users can switch to GRUB more easily later. - Ubuntu DTBs are installed in
/usr/lib/linux-image-<kernel-release>/qcom/forkernel-install, plus/boot/dtb-<kernel-release>as a compatibility copy. - Fedora DTBs are installed in
/usr/lib/modules/<kernel-release>/dtb/qcom/forkernel-install, plus/boot/dtb-<kernel-release>/qcom/as a compatibility copy. - The Gaokun3 image scripts provide
/etc/kernel/cmdlineand/etc/kernel/devicetree, then callkernel-install addto populate the final BLS entry.
- Release: https://github.com/KawaiiHachimi/linux-gaokun-build/releases
- Dual-boot guide: English | 中文
- EL2 implementation notes: English | 中文
- Awesome Gaokun3: English | 中文
- Build guide – Fedora 44: English | 中文
- Build guide – Ubuntu 26.04: English | 中文
For an overview of hardware support status on the device, see right-0903/linux-gaokun ## Feature Support.
- right-0903/linux-gaokun : The main source of the kernel patches and device support work, with detailed commit messages and explanations.
- TheUnknownThing/linux-gaokun : Another fork of the kernel patches and device support work, with some unique commits and explanations for Touchscreen and EC.
- whitelewi1-ctrl/matebook-e-go-linux : The earliest repo to fix panel backlight problem, with some additional resources and modifications for Gaokun3 Linux support.
- gaokun on AUR : Several AUR packages built for Gaokun3, including kernel and firmware packages.
- chenxuecong2/firmware-huawei-gaokun3 : A firmware bundle repository for Gaokun3.
- chiyuki0325/EGoTouchRev-Linux : The upstream source for the directly integrated Himax HX83121A Linux touchscreen driver and tuning algorithm in this repository.
- awarson2233/EGoTouchRev : The original Windows-side touchscreen algorithm project referenced by EGoTouchRev-Linux, and an important upstream reference for the Gaokun3 touchscreen tuning pipeline.
- TravMurav/slbounce : A UEFI application that enables EL2 support and Secure Launch on Gaokun3.
- TravMurav/linux : A Linux kernel tree with some useful patches for EL2 support on sc8280xp platforms.
- stephan-gh/qebspil : A UEFI application that pre-launches the DSP firmware on Qualcomm platforms, which can be used in the boot chain before launching Linux.