From eb2b5cd458996401b9812000e70c8749a6214cfe Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Wed, 20 Nov 2024 21:52:56 -0800 Subject: [PATCH] linux-postmarketos-qcom-laptop: new aport (MR 5837) This is a generic kernel for qcom laptops (sc8280xp & x1e), meant to replace the lenovo-21bx kernel for the x13s. - Uses johan_defconfig as base, and includes Minecrell's pmos.config - Adds some extra kconfig for supporting virtualization --- CODEOWNERS | 1 + .../linux-postmarketos-qcom-laptop/APKBUILD | 87 +++++ .../misc.config | 5 + .../pmos.config | 302 ++++++++++++++++++ 4 files changed, 395 insertions(+) create mode 100644 device/community/linux-postmarketos-qcom-laptop/APKBUILD create mode 100644 device/community/linux-postmarketos-qcom-laptop/misc.config create mode 100644 device/community/linux-postmarketos-qcom-laptop/pmos.config diff --git a/CODEOWNERS b/CODEOWNERS index c2e5a28eb..28315dc77 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -115,6 +115,7 @@ device/*/linux-postmarketos-marvell-dove/ @longnoserob device/*/linux-postmarketos-mediatek-mt8173/ @jenneron @adamthiede device/*/linux-postmarketos-mediatek-mt8183/ @jenneron @binarycraft device/*/linux-postmarketos-omap/ @MightyM17 @Sicelo +device/*/linux-postmarketos-qcom-laptop/ @craftyguy @calebccff device/*/linux-postmarketos-qcom-msm8939/ @Newbyte device/*/linux-postmarketos-qcom-msm8953/ @M0Rf30 @Ultra-azu @barni2000 device/*/linux-postmarketos-qcom-msm8996/ @Tooniis diff --git a/device/community/linux-postmarketos-qcom-laptop/APKBUILD b/device/community/linux-postmarketos-qcom-laptop/APKBUILD new file mode 100644 index 000000000..03a9cb5ed --- /dev/null +++ b/device/community/linux-postmarketos-qcom-laptop/APKBUILD @@ -0,0 +1,87 @@ +# Maintainer: Clayton Craft +# Co-Maintainer: Caleb Connolly +pkgname=linux-postmarketos-qcom-laptop +pkgver=6.12 +pkgrel=0 +# Commit from branch @ https://github.com/jhovold/linux/tree/wip/x1e80100-$pkgver +_commit="93bd777d19aa0e8b58dee1eb837a16acf56035b0" +pkgdesc="Generic kernel for Qualcomm laptops" +arch="aarch64" +_carch="arm64" +_flavor="postmarketos-qcom-laptop" +url="https://kernel.org" +license="GPL-2.0-only" +options="!strip + !check + !tracedeps + pmb:cross-native + pmb:kconfigcheck-community + pmb:kconfigcheck-containers + pmb:kconfigcheck-uefi +" +makedepends=" + bash + bc + bison + devicepkg-dev + findutils + flex + git + openssl-dev + perl + python3 + zstd +" +replaces="linux-lenovo-21bx" + +# Source +_repository="linux" +source=" + $pkgname-$_commit.tar.gz::https://github.com/jhovold/$_repository/archive/$_commit.tar.gz + misc.config + pmos.config +" +builddir="$srcdir/linux-$_commit" +_outdir="out" +_defconfig="johan_defconfig" + +prepare() { + default_prepare + cp "$srcdir/pmos.config" "$builddir"/arch/"$_carch"/configs/ + cp "$srcdir/misc.config" "$builddir"/arch/"$_carch"/configs/ + + # Generate .config + unset LDFLAGS + make ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor" \ + "$_defconfig" pmos.config misc.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 + + 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=" +af20b0d7e46e31de152a01e6c811c691f3866add856d4b8cc3e665fde2f10d0fa4ccb401cf3583e4975c0ccb281369fc019825ad274c4edad49f0e8069c154fc linux-postmarketos-qcom-laptop-93bd777d19aa0e8b58dee1eb837a16acf56035b0.tar.gz +c343baeb03f91a16994fd53e7cf1be0590be591c3a02e583d897f6b84ee9b33662cac513f84e1756fed58ab283c16471492bf227a1adb00f5bdd660ea4631ef1 misc.config +e3238b32255fba51bf9364a0c9f70d35a95e07d51704dfcd999045fa84a08251707d4da95bb09d8b86502838b8d6d6187b968f33c54c8c7eea883a02096bc6a8 pmos.config +" diff --git a/device/community/linux-postmarketos-qcom-laptop/misc.config b/device/community/linux-postmarketos-qcom-laptop/misc.config new file mode 100644 index 000000000..0054c2539 --- /dev/null +++ b/device/community/linux-postmarketos-qcom-laptop/misc.config @@ -0,0 +1,5 @@ +CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_MQ=y +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +CONFIG_USB_SERIAL_PL2303=m diff --git a/device/community/linux-postmarketos-qcom-laptop/pmos.config b/device/community/linux-postmarketos-qcom-laptop/pmos.config new file mode 100644 index 000000000..0ced36f6d --- /dev/null +++ b/device/community/linux-postmarketos-qcom-laptop/pmos.config @@ -0,0 +1,302 @@ +# 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 + +# 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_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 + +# 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_INPUT_UINPUT=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +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