Skip to content

psacal/linux-gaokun-buildbot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 中文

linux-gaokun-buildbot

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".

What is included

Repository layout

  • patches/: kernel patches and device support changes
  • defconfig/: local kernel configuration used by CI/manual builds
  • drivers/: local mirrors of the patched driver sources kept in the patch series
  • dts/: local mirrors of the patched device tree sources kept in the patch series
  • docs/: bilingual usage/build guides and platform notes
  • firmware/: minimal firmware bundle used by the image build
  • packaging/: distro kernel and firmware package templates and metadata
  • tools/: device-specific helper scripts, service files, and EL2 EFI payloads
  • scripts/ci/: workflow build, image creation, and packaging scripts
  • scripts/local/: some useful scripts that can be run on the local device

Package outputs

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-el2 package set for the second EL2 kernel build
  • Ubuntu kernel image packages run update-initramfs during install/upgrade, which in turn refreshes the BLS entry through the distro systemd-boot hook.
  • Fedora kernel RPMs now ship a matching dracut.conf.d snippet and run dracut + kernel-install add in %posttrans, so installing or upgrading the package refreshes the initramfs and BLS entry automatically.

Releases

  • 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.

Patch Sources

  • upstream/* and others/0017: adapted from right-0903/linux-gaokun for the base SC8280XP / gaokun3 enablement, display bring-up, EC suspend/resume, ADSP FastRPC, and DSI stability work
  • others/0001: adapted from whitelewi1-ctrl/matebook-e-go-linux to avoid setting USE_BDADDR_PROPERTY when the adapter address is invalid
  • others/0002: local change in this repository to enable DSC and allow 60 Hz / 120 Hz switching
  • others/0003: adapted from chiyuki0325/EGoTouchRev-Linux to add the Himax HX83121A SPI touchscreen driver
  • others/0004: adapted from TheUnknownThing/linux-gaokun to improve UCSI handling and module wiring for the Type-C path
  • media/*: adapted from the jhovold/linux to add SC8280XP Venus support
  • 0099: local patch in this repository to import the current DTS files and gaokun3_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

Tool Sources

Boot artifact layout

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 /boot so users can switch to GRUB more easily later.
  • Ubuntu DTBs are installed in /usr/lib/linux-image-<kernel-release>/qcom/ for kernel-install, plus /boot/dtb-<kernel-release> as a compatibility copy.
  • Fedora DTBs are installed in /usr/lib/modules/<kernel-release>/dtb/qcom/ for kernel-install, plus /boot/dtb-<kernel-release>/qcom/ as a compatibility copy.
  • The Gaokun3 image scripts provide /etc/kernel/cmdline and /etc/kernel/devicetree, then call kernel-install add to populate the final BLS entry.

Getting started

Feature Support

For an overview of hardware support status on the device, see right-0903/linux-gaokun ## Feature Support.

References

  • 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.

About

CI-built Linux distro images for Huawei MateBook E Go 2023 (gaokun3)

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 70.4%
  • Shell 17.5%
  • Python 12.1%