From eddbe346c9090da0072dbaacd3005f69febbade6 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Fri, 12 Sep 2025 10:09:01 -0700 Subject: [PATCH] linux-postmarketos-asahi: new aport Alpine's linux-asahi kernel is missing some config for booting on the macbook M2, and is missing config for supporting other pmOS features / kconfig checks. It's easier to maintain this kernel downstream for now so changes can be made easily to support this hardware and functionality we need. Part-of: --- .../testing/linux-postmarketos-asahi/APKBUILD | 102 ++++ .../linux-postmarketos-asahi/device.config | 176 +++++++ .../linux-postmarketos-asahi/misc.config | 28 ++ .../linux-postmarketos-asahi/pmos.config | 437 ++++++++++++++++++ 4 files changed, 743 insertions(+) create mode 100644 device/testing/linux-postmarketos-asahi/APKBUILD create mode 100644 device/testing/linux-postmarketos-asahi/device.config create mode 100644 device/testing/linux-postmarketos-asahi/misc.config create mode 100644 device/testing/linux-postmarketos-asahi/pmos.config diff --git a/device/testing/linux-postmarketos-asahi/APKBUILD b/device/testing/linux-postmarketos-asahi/APKBUILD new file mode 100644 index 000000000..d75b366c4 --- /dev/null +++ b/device/testing/linux-postmarketos-asahi/APKBUILD @@ -0,0 +1,102 @@ +# Maintainer: Clayton Craft +pkgname=linux-postmarketos-asahi +pkgver=6.16.8_p1 +pkgrel=0 +_rel=${pkgver#*_p} +_kver=${pkgver%_p*} +_kver=${_kver//_/-} +_asahiver=$_kver-$_rel +pkgdesc="Kernel for Apple M-series devices" +arch="aarch64" +_carch="arm64" +_flavor="postmarketos-asahi" +url="https://kernel.org" +license="GPL-2.0-only" +options="!strip + !check + !tracedeps + pmb:cross-native + pmb:kconfigcheck-community + pmb:kconfigcheck-uefi + pmb:kconfigcheck-virt +" +makedepends=" + bash + bc + bison + clang20-libclang + devicepkg-dev + diffutils + elfutils-dev + findutils + flex + git + linux-headers + openssl-dev + pahole + perl + python3 + rust + rust-bindgen + rust-src + rustfmt + sed + zstd +" + +# Source +_repository="linux" +source=" + $pkgname-$_asahiver.tar.gz::https://github.com/AsahiLinux/linux/archive/refs/tags/asahi-$_asahiver.tar.gz + device.config + misc.config + pmos.config +" +builddir="$srcdir/linux-asahi-$_asahiver" +# Use the default arm defconfig +_defconfig="defconfig" + +prepare() { + default_prepare + mkdir -p "$builddir"/arch/"$_carch"/configs + local _config + for _config in "$srcdir"/*.config; do + cp "$_config" "$builddir"/arch/"$_carch"/configs/ + done + + # Generate .config + unset LDFLAGS + make ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor" \ + "$_defconfig" device.config misc.config pmos.config +} + +build() { + unset LDFLAGS + make ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor" +} + +package() { + install -Dm644 "$builddir/arch/$_carch/boot/vmlinuz.efi" \ + "$pkgdir/boot/linux.efi" + + make modules_install dtbs_install \ + ARCH="$_carch" \ + INSTALL_PATH="$pkgdir"/boot/ \ + INSTALL_MOD_PATH="$pkgdir" \ + INSTALL_MOD_STRIP=1 \ + INSTALL_DTBS_PATH="$pkgdir"/boot/dtbs-asahi + + rm -f "$pkgdir"/lib/modules/*/build "$pkgdir"/lib/modules/*/source + + install -D "$builddir"/include/config/kernel.release \ + "$pkgdir"/usr/share/kernel/$_flavor/kernel.release +} + +sha512sums=" +bd5d3c29282e1b55d045dad4a894cfa7a7d2ea991a3bdf372323d0df25e0059092439b2987d8ed05e1db17d92319ed613711ee29a3031f70620f63aecadc5c25 linux-postmarketos-asahi-6.16.8-1.tar.gz +860a7fbf519b09c194e79a0c54f827048a6dd4c52d13532d92c5d040743c9af58c2ffa37f36ae66781a919abd49cad766b2e5b8768273b5ec3de66ac59efb682 device.config +e7a651b3780b1cfa68ca65b9e62f77db4273cf5b9162514318c347790d961b4668d0c6eb51604aaaf15a15c9f370fe03b4b977163293af379fda9a08d5f7e73d misc.config +a3ca72c9ecc41684b958aad9a77d99f759ff56664eeac048d5ca715ce946b27ef3b6db6f1b65aa9e616131501afa50b0acda4d0a7c2b880530151cdfa9d236da pmos.config +" diff --git a/device/testing/linux-postmarketos-asahi/device.config b/device/testing/linux-postmarketos-asahi/device.config new file mode 100644 index 000000000..236df493c --- /dev/null +++ b/device/testing/linux-postmarketos-asahi/device.config @@ -0,0 +1,176 @@ +# FROM: https://github.com/chadmed/asahi-overlay/tree/main/sys-kernel/asahi-kernel/files +# CONFIG_GCC_PLUGINS is not set +CONFIG_APPLE_ADMAC=y +CONFIG_APPLE_AIC=y +CONFIG_APPLE_AOP=y +CONFIG_APPLE_DART=y +CONFIG_APPLE_DOCKCHANNEL=y +CONFIG_APPLE_M1_CPU_PMU=y +CONFIG_APPLE_MAILBOX=y +CONFIG_APPLE_MBOX=y +CONFIG_APPLE_MFI_FASTCHARGE=m +CONFIG_APPLE_PLATFORMS=y +CONFIG_APPLE_PMGR_MISC=y +CONFIG_APPLE_PMGR_PWRSTATE=y +CONFIG_APPLE_RTKIT=y +CONFIG_APPLE_RTKIT_HELPER=y +CONFIG_APPLE_SART=y +CONFIG_APPLE_SEP=y +CONFIG_APPLE_SIO=m +CONFIG_APPLE_SMC=y +CONFIG_APPLE_SMC_RTKIT=y +CONFIG_APPLE_WATCHDOG=y +CONFIG_AQTION=m +CONFIG_ARCH_APPLE=y +# CONFIG_ARCH_ACTIONS is not set +# CONFIG_ARCH_AIROHA is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_BCM is not set +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_BCM_IPROC is not set +# CONFIG_ARCH_BCMBCA is not set +# CONFIG_ARCH_BRCMSTB is not set +# CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_BITMAIN is not set +# CONFIG_ARCH_BLAIZE is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SPARX5 is not set +# CONFIG_ARCH_K3 is not set +# CONFIG_ARCH_LG1K is not set +# CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_KEEMBAY is not set +# CONFIG_ARCH_MEDIATEK is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_NXP is not set +# CONFIG_ARCH_LAYERSCAPE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_S32 is not set +# CONFIG_ARCH_MA35 is not set +# CONFIG_ARCH_NPCM is not set +# CONFIG_ARCH_PENSANDO is not set +# CONFIG_ARCH_QCOM is not set +# CONFIG_ARCH_REALTEK is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SEATTLE is not set +# CONFIG_ARCH_INTEL_SOCFPGA is not set +# CONFIG_ARCH_STM32 is not set +# CONFIG_ARCH_SYNQUACER is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_SPRD is not set +# CONFIG_ARCH_THUNDER is not set +# CONFIG_ARCH_THUNDER2 is not set +# CONFIG_ARCH_UNIPHIER is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_VISCONTI is not set +# CONFIG_ARCH_XGENE is not set +# CONFIG_ARCH_ZYNQMP is not set +# CONFIG_ARM64_4K_PAGES is not set +CONFIG_ARM64_16K_PAGES=y +# CONFIG_ARM64_64K_PAGES is not set +CONFIG_ARM64_ACTLR_STATE=y +CONFIG_ARM64_MEMORY_MODEL_CONTROL=y +CONFIG_ARM_APPLE_CPUIDLE=y +CONFIG_ARM_APPLE_SOC_CPUFREQ=y +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_PCIE=y +CONFIG_BRCMFMAC_PROTO_BCDC=y +CONFIG_BRCMFMAC_PROTO_MSGBUF=y +CONFIG_BRCMFMAC_USB=y +CONFIG_BT=m +CONFIG_BT_BNEP=m +CONFIG_BT_BREDR=y +CONFIG_BT_HCIBCM4377=m +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HIDP=m +CONFIG_BT_HS=y +CONFIG_BT_LE=y +CONFIG_BT_RFCOMM=m +CONFIG_CFG80211=m +CONFIG_CHARGER_MACSMC=y +CONFIG_COMMON_CLK_APPLE_NCO=y +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_DRM=y +CONFIG_DRM_ADP=m +# CONFIG_DRM_AMDGPU is not set +# CONFIG_DRM_AMDGPU_SI is not set +# CONFIG_DRM_AMDGPU_CIK is not set +# CONFIG_DRM_AMDGPU_USERPTR is not set +# CONFIG_DRM_AMDGPU_WERROR is not set +CONFIG_DRM_APPLE=m +CONFIG_DRM_APPLE_AUDIO=y +CONFIG_DRM_ASAHI=m +# CONFIG_DRM_ASAHI_DEBUG_ALLOCATOR is not set +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_GEM_SHMEM_HELPER=y +CONFIG_DRM_SCHED=y +CONFIG_DRM_SIMPLEDRM=y +# CONFIG_DRM_VGEM is not set +CONFIG_ENERGY_MODEL=y +CONFIG_GPIO_MACSMC=y +# CONFIG_HIBERNATION is not set +CONFIG_HID_APPLE=m +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HID_DOCKCHANNEL=m +CONFIG_HID_MAGICMOUSE=m +CONFIG_I2C_APPLE=y +CONFIG_IIO_AOP_SENSOR_ALS=m +CONFIG_IIO_AOP_SENSOR_LAS=m +CONFIG_INPUT_LEDS=y +CONFIG_INPUT_MACSMC_HID=y +CONFIG_LEDS_PWM=y +CONFIG_MFD_APPLE_SPMI_PMU=y +CONFIG_MMC_CQHCI=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MUX_APPLE_DPXBAR=m +CONFIG_NET_VENDOR_AQUANTIA=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_NVMEM_APPLE_EFUSES=y +CONFIG_NVMEM_APPLE_SPMI=m +CONFIG_NVMEM_SPMI_MFD=y +CONFIG_NVME_APPLE=y +CONFIG_PCIE_APPLE=y +CONFIG_PHY_APPLE_ATC=m +CONFIG_PHY_APPLE_DPTX=m +CONFIG_PINCTRL_APPLE_GPIO=y +CONFIG_POWER_RESET_MACSMC=y +CONFIG_PWM_APPLE=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_RTC_DRV_MACSMC=y +CONFIG_RUST=y +CONFIG_RUST_APPLE_RTKIT=y +# CONFIG_RUST_BUILD_ASSERT_ALLOW is not set +# CONFIG_RUST_DEBUG_ASSERTIONS is not set +CONFIG_RUST_OVERFLOW_CHECKS=y +CONFIG_SENSORS_MACSMC=m +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +CONFIG_SND_SOC_APPLE_AOP_AUDIO=m +CONFIG_SND_SOC_APPLE_MACAUDIO=m +CONFIG_SND_SOC_APPLE_MCA=m +CONFIG_SND_SOC_CS42L83=m +CONFIG_SND_SOC_CS42L84=m +CONFIG_SND_SOC_TAS2764=m +CONFIG_SND_SOC_TAS2770=m +CONFIG_SPI_APPLE=y +CONFIG_SPI_HID_APPLE_CORE=y +CONFIG_SPI_HID_APPLE_OF=y +CONFIG_SPMI_APPLE=y +CONFIG_SUSPEND=y +CONFIG_TIGON3=m +CONFIG_TOUCHSCREEN_APPLE_Z2=m +CONFIG_TYPEC_TPS6598X=m +CONFIG_UCLAMP_TASK=y +CONFIG_UCLAMP_TASK_GROUP=y +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_DUAL_ROLE=y +CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_PCI_ASMEDIA=y +CONFIG_USB_XHCI_PCI_RENESAS=y +CONFIG_VIDEO_APPLE_ISP=m +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WLAN_VENDOR_BROADCOM=y diff --git a/device/testing/linux-postmarketos-asahi/misc.config b/device/testing/linux-postmarketos-asahi/misc.config new file mode 100644 index 000000000..649696af5 --- /dev/null +++ b/device/testing/linux-postmarketos-asahi/misc.config @@ -0,0 +1,28 @@ +CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_MQ=y +CONFIG_CONNECTOR=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_PROC_EVENTS=y +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_BOOT_PRINTK_DELAY=y +# systemd +CONFIG_BPF_LSM=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_BTF=y +CONFIG_DEBUG_INFO_BTF_MODULES=y +CONFIG_DEBUG_INFO_DWARF5=y +CONFIG_KPROBES=y +CONFIG_KPROBE_EVENTS=y +CONFIG_SECURITYFS=y + +# VSOCK for mkosi vm +CONFIG_VSOCKETS=m +CONFIG_VSOCKETS_DIAG=m +CONFIG_VSOCKETS_LOOPBACK=m +CONFIG_VIRTIO_VSOCKETS_COMMON=m +CONFIG_VHOST_IOTLB=m +CONFIG_VHOST_TASK=y +CONFIG_VHOST=m +CONFIG_VHOST_MENU=y +CONFIG_VHOST_VSOCK=m diff --git a/device/testing/linux-postmarketos-asahi/pmos.config b/device/testing/linux-postmarketos-asahi/pmos.config new file mode 100644 index 000000000..bad8c2389 --- /dev/null +++ b/device/testing/linux-postmarketos-asahi/pmos.config @@ -0,0 +1,437 @@ +# CONFIG_LOCALVERSION_AUTO is not set + +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_CGROUPS=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_XTS=y +CONFIG_DEVTMPFS=y +CONFIG_DM_CRYPT=m +CONFIG_EXT4_FS=y +CONFIG_INPUT_EVDEV=y +CONFIG_MD=y +CONFIG_SYSVIPC=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_UEVENT_HELPER=y +CONFIG_USER_NS=y +CONFIG_VT=y +CONFIG_FW_LOADER_COMPRESS=y +CONFIG_FW_LOADER_COMPRESS_ZSTD=y +CONFIG_NULL_TTY=y + +# Anbox / Waydroid +CONFIG_ANDROID_BINDER_IPC=y +# CONFIG_ANDROID_BINDERFS is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BPF_SYSCALL=y +CONFIG_BRIDGE=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_CGROUP_BPF=y +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_FUSE_FS=m +CONFIG_IP_NF_MANGLE=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_PSI=y +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +CONFIG_TMPFS_XATTR=y +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_VLAN_8021Q=m + +# iwd +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_KEYS=y +CONFIG_KEY_DH_OPERATIONS=y +CONFIG_PKCS7_MESSAGE_PARSER=y +CONFIG_PKCS8_PRIVATE_KEY_PARSER=m +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_RFKILL=y + +# nftables +CONFIG_NETFILTER=y +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_REJECT_IPV4=m +CONFIG_NF_REJECT_IPV6=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_CT=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_LOG=m +CONFIG_NFT_MASQ=m +CONFIG_NFT_NAT=m +CONFIG_NFT_REJECT=m +CONFIG_NFT_COMPAT=m + +# /usr/share/docker/contrib/check-config.sh (from Gentoo) +# Missing dependency? +CONFIG_NET_SCHED=y + +# Generally Necessary: +CONFIG_NAMESPACES=y +CONFIG_NET_NS=y +CONFIG_PID_NS=y +CONFIG_IPC_NS=y +CONFIG_UTS_NS=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_SCHED=y +CONFIG_CPUSETS=y +CONFIG_KEYS=y +CONFIG_VETH=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_NETFILTER=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MARK=m +CONFIG_IP_NF_NAT=m +CONFIG_NF_NAT=m +CONFIG_POSIX_MQUEUE=y + +# Optional Features: +CONFIG_USER_NS=y +CONFIG_SECCOMP=y +CONFIG_CGROUP_PIDS=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_DEV_THROTTLING=y +CONFIG_CGROUP_PERF=y +CONFIG_NET_CLS_CGROUP=m +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_VS=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_VXLAN=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_IPVLAN=m +CONFIG_MACVLAN=m +CONFIG_DUMMY=m +CONFIG_BLK_DEV_DM=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_OVERLAY_FS=m + +# lxc +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_IP6_NF_TARGET_MASQUERADE=m + +# ZRAM +CONFIG_CRYPTO_LZ4=y +CONFIG_CRYPTO_ZSTD=y +CONFIG_SWAP=y +CONFIG_ZRAM=m +CONFIG_ZRAM_BACKEND_LZ4=y +CONFIG_ZRAM_BACKEND_ZSTD=y +CONFIG_ZRAM_DEF_COMP_ZSTD=y + +# netboot +CONFIG_BLK_DEV_NBD=m + +# WireGuard +CONFIG_WIREGUARD=m +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_CT=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NFT_FIB_IPV6=m +CONFIG_NF_CONNTRACK_MARK=y + +# File systems +CONFIG_BTRFS_FS=m +CONFIG_EXFAT_FS=m +CONFIG_EXT4_FS=y +CONFIG_F2FS_FS=m +CONFIG_F2FS_FS_COMPRESSION=y +CONFIG_UDF_FS=m +CONFIG_XFS_FS=m +CONFIG_NTFS3_FS=m + +# Community +CONFIG_BINFMT_MISC=m +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_CIFS=m +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_UCLAMP_TASK=y +CONFIG_UCLAMP_TASK_GROUP=y +CONFIG_DM_INTEGRITY=m + +# Input +CONFIG_HIDRAW=y +CONFIG_HID_A4TECH=m +CONFIG_HID_ACCUTOUCH=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_ACRUX=m +CONFIG_HID_ALPS=m +CONFIG_HID_APPLEIR=m +CONFIG_HID_APPLE=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HID_BELKIN=m +CONFIG_HID_BETOP_FF=m +CONFIG_HID_BIGBEN_FF=m +CONFIG_HID_BPF=y +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CMEDIA=m +CONFIG_HID_CORSAIR=m +CONFIG_HID_COUGAR=m +CONFIG_HID_CP2112=m +CONFIG_HID_CREATIVE_SB0540=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_ELAN=m +CONFIG_HID_ELECOM=m +CONFIG_HID_ELO=m +CONFIG_HID_EMS_FF=m +CONFIG_HID_EVISION=m +CONFIG_HID_EZKEY=m +CONFIG_HID_FT260=m +CONFIG_HID_GEMBIRD=m +CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=m +CONFIG_HID_GOODIX_SPI=m +CONFIG_HID_GOOGLE_STADIA_FF=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GT683R=m +CONFIG_HID_GYRATION=m +CONFIG_HID_HOLTEK=m +CONFIG_HID_ICADE=m +CONFIG_HID_ITE=m +CONFIG_HID_JABRA=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LED=m +CONFIG_ACPI=y # needed for HID_LENOVO +CONFIG_HID_LENOVO=m +CONFIG_HID_LETSKETCH=m +CONFIG_HID_LOGITECH_DJ=m +CONFIG_HID_LOGITECH_HIDPP=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_MACALLY=m +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MALTRON=m +CONFIG_HID_MAYFLASH=m +CONFIG_HID_MCP2221=m +CONFIG_HID_MEGAWORLD_FF=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_NINTENDO=m +CONFIG_HID_NTI=m +CONFIG_HID_NTRIG=m +CONFIG_HID_NVIDIA_SHIELD=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_HID_PENMOUNT=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PICOLCD=m +CONFIG_HID_PID=y +CONFIG_HID_PLANTRONICS=m +CONFIG_HID_PLAYSTATION=m +CONFIG_HID_PRIMAX=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_PXRC=m +CONFIG_HID_RAZER=m +CONFIG_HID_RETRODE=m +CONFIG_HID_RMI=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SEMITEK=m +CONFIG_HID_SENSOR_ACCEL_3D=m +CONFIG_HID_SENSOR_ALS=m +CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=m +CONFIG_HID_SENSOR_DEVICE_ROTATION=m +CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_HID_SENSOR_HUB=m +CONFIG_HID_SENSOR_HUMIDITY=m +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +CONFIG_HID_SENSOR_INCLINOMETER_3D=m +CONFIG_HID_SENSOR_MAGNETOMETER_3D=m +CONFIG_HID_SENSOR_TEMP=m +CONFIG_HID_SIGMAMICRO=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEAM=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TIVO=m +CONFIG_HID_TOPRE=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_U2FZERO=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_UDRAW_PS3=m +CONFIG_HID_VIEWSONIC=m +CONFIG_HID_VIVALDI=m +CONFIG_HID_WACOM=m +CONFIG_HID_WALTOP=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_WINWING=m +CONFIG_HID_XIAOMI=m +CONFIG_HID_XINMO=m +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_UINPUT=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_UHID=m +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_PRINTER=m + +# USB +CONFIG_DRM_UDL=m +CONFIG_SND_USB_AUDIO=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_STORAGE=y +CONFIG_USB_RTL8152=m +CONFIG_USB_USBNET=m + +# USB Gadget +CONFIG_U_SERIAL_CONSOLE=y +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_MIDI=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_CONFIGFS_F_UVC=y +CONFIG_USB_CONFIGFS_F_PRINTER=y + +# USB net +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_ACM=m +CONFIG_USB_WDM=m + +# LED triggers +CONFIG_LEDS_TRIGGER_ACTIVITY=m +CONFIG_LEDS_TRIGGER_AUDIO=m +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CAMERA=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_NETDEV=m +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_PATTERN=m +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_TRIGGER_TTY=m + +# Bluetooth devices +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# EFI +CONFIG_EFI=y +CONFIG_EFI_ZBOOT=y +CONFIG_FB_EFI=y +CONFIG_VFAT_FS=y +CONFIG_NLS_ASCII=y +CONFIG_PSTORE=y +CONFIG_EFI_VARS_PSTORE=y +CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y + +# libcamera +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_HEAPS_CMA=y +CONFIG_DMABUF_HEAPS_SYSTEM=y +CONFIG_UDMABUF=y + +# enable uvcvideo for basic USB webcam/HDMI-dongle support +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y + +# Debug +CONFIG_DYNAMIC_DEBUG=y +CONFIG_FTRACE=y +CONFIG_FUNCTION_TRACER=y +CONFIG_DYNAMIC_FTRACE=y + +# Virtualization +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_KVM=y +CONFIG_VIRTUALIZATION=y + +# Immutable +CONFIG_DM_VERITY=m +CONFIG_EFIVAR_FS=m +CONFIG_EROFS_FS=m +CONFIG_EROFS_FS_ZIP=y +CONFIG_EROFS_FS_ZIP_LZMA=y