diff --git a/CODEOWNERS b/CODEOWNERS index c2f35d386..141842e22 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -92,6 +92,7 @@ device/*/kobo-epdc-extractor/ @akemnade device/*/linux-google-nyan/ @jenneron device/*/linux-google-veyron/ @jenneron device/*/linux-huawei-plank/ @gtrxAC +device/*/linux-next/ @calebccff device/*/linux-postmarketos-allwinner/ @Arnavion @PsychoGame device/*/linux-postmarketos-amlogic/ @funderscore @exkc device/*/linux-postmarketos-exynos4/ @Newbyte @ThiagaoPlusPlus diff --git a/device/testing/linux-next/APKBUILD b/device/testing/linux-next/APKBUILD new file mode 100644 index 000000000..1a76b45ab --- /dev/null +++ b/device/testing/linux-next/APKBUILD @@ -0,0 +1,73 @@ +# Reference: +# Kernel config based on: arch/arm64/configs/defconfig + +pkgname=linux-next +pkgver=6.9_git20240325 +pkgrel=0 +_nextver="${pkgver#*_git}" +pkgdesc="Linux next kernel" +arch="aarch64" +_carch="arm64" +_flavor="generic-trailblazer" +url="https://kernel.org" +license="GPL-2.0-only" +options="!strip !check !tracedeps pmb:cross-native" +source=" + https://gitlab.com/linux-kernel/linux-next/-/archive/next-$_nextver/linux-next-next-$_nextver.tar.gz + devices.config + pmos.config +" +makedepends=" + bash + bc + bison + devicepkg-dev + findutils + flex + openssl-dev + perl + zstd + git +" +builddir="$srcdir/linux-next-next-$_nextver" + +prepare() { + default_prepare + cp "$srcdir/pmos.config" "$builddir"/arch/"$_carch"/configs/ + cp "$srcdir/devices.config" "$builddir"/arch/"$_carch"/configs/ + + # Generate .config + unset LDFLAGS + make ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-next-$_nextver" \ + defconfig pmos.config devices.config +} + +build() { + unset LDFLAGS + make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" +} + +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/next-"$_nextver"/kernel.release +} + +sha512sums=" +8b0aa0b150887f56fadb7ce2fbb67a77118595ad1f0a0166bfd6539e93b43b6156b9af25e5f62c44cc9e0c7bb3c8948c9c2e4cc4d3821b2d1e6c4bcb115b80fc linux-next-next-20240325.tar.gz +e5b8530b8410d41d60c6c3a5cb4f73cdcdbcf432a8453ddb0b8901bf20083df4ae8c44ff2771aaa17c4a78afddfd604f929f05839bb513ad60809fbd7adb7056 devices.config +4be8c6f12ab31b709cb67cb783830badae019a79a8e81bf050d509cdfc3b3295b84392b15f357e4c84bc4222fda34979e7a945544e1b5cb4916fb111d56aa70c pmos.config +" diff --git a/device/testing/linux-next/devices.config b/device/testing/linux-next/devices.config new file mode 100644 index 000000000..e92e8ea71 --- /dev/null +++ b/device/testing/linux-next/devices.config @@ -0,0 +1,26 @@ +# Config fragment for device features which aren't enabled in the upstream +# defconfig. Use of =y heavily discouraged. + +# OnePlus 6/6T +CONFIG_DRM_PANEL_SAMSUNG_SOFEF00=m +CONFIG_RMI4_CORE=m +CONFIG_RMI4_I2C=m +CONFIG_RMI4_F03_SERIO=m +CONFIG_RMI4_2D_SENSOR=y +CONFIG_RMI4_F11=y +CONFIG_RMI4_F12=y +CONFIG_RMI4_F30=y +# SHIFT6mq +CONFIG_DRM_PANEL_VISIONOX_RM69299=m + +# msm8916 +CONFIG_ARM64_ERRATUM_834220=y +CONFIG_EXTCON_QCOM_SPMI_MISC=m +# gt58/gt510 +CONFIG_TOUCHSCREEN_ZINITIX=m +CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0=m +CONFIG_PWM_CLK=m +CONFIG_SND_SOC_TFA989X=m +CONFIG_CM3323=m +CONFIG_IIO_ST_ACCEL_3AXIS=m + diff --git a/device/testing/linux-next/pmos.config b/device/testing/linux-next/pmos.config new file mode 100644 index 000000000..a9f82be13 --- /dev/null +++ b/device/testing/linux-next/pmos.config @@ -0,0 +1,227 @@ +# general +CONFIG_BLK_DEV_INITRD=y +CONFIG_CGROUPS=y +CONFIG_CRYPTO_XTS=y +CONFIG_DEVTMPFS=y +CONFIG_DM_CRYPT=m +CONFIG_INPUT_EVDEV=y +CONFIG_SYSVIPC=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_VT=y +CONFIG_BPF_SYSCALL=y +CONFIG_CGROUP_BPF=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_UEVENT_HELPER=y +CONFIG_USER_NS=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +CONFIG_SAMSUNG_TUI=n +CONFIG_TZDEV=n + +# filesystems +CONFIG_BTRFS_FS=m +CONFIG_EXFAT_FS=m +CONFIG_EXT4_FS=m +CONFIG_F2FS_FS=m + +# FDE +CONFIG_MD=y +CONFIG_CRYPTO_SHA256=y # TODO: make this module +CONFIG_CRYPTO_AES=y # TODO: make this module + +# nftables +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_INET=y +CONFIG_NFT_CT=m +CONFIG_NFT_LOG=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_MASQ=m +CONFIG_NFT_NAT=m +CONFIG_NFT_REJECT=m +CONFIG_NF_TABLES_IPV4=y +CONFIG_NF_REJECT_IPV4=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_NAT=m +CONFIG_NF_TABLES_IPV6=y +CONFIG_NF_REJECT_IPV6=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_NAT=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 + +# waydroid +CONFIG_ANDROID_BINDERFS=n +CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder" +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ANDROID_BINDER_IPC_SELFTEST=n +CONFIG_BLK_DEV_LOOP=m +CONFIG_BPF_SYSCALL=y +CONFIG_BRIDGE=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_CGROUP_BPF=y +CONFIG_FUSE_FS=m +CONFIG_IP_NF_MANGLE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +CONFIG_TMPFS_XATTR=y +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_VLAN_8021Q=m # prerequisite for bridge + +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_PSI=y +CONFIG_PSI_DEFAULT_DISABLED=n + +# iwd +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_CRYPTO_AES=y # TODO: make this module +CONFIG_CRYPTO_CBC=y # TODO: make this module +CONFIG_CRYPTO_CMAC=y # TODO: make this module +CONFIG_CRYPTO_DES=y # TODO: make this module +CONFIG_CRYPTO_ECB=y # TODO: make this module +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_MD5=y # TODO: make this module +CONFIG_CRYPTO_SHA1=y # TODO: make this module +CONFIG_CRYPTO_SHA256=y # TODO: make this module +CONFIG_CRYPTO_SHA512=y # TODO: make this module +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=m + +# containers (lxc, Docker) +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_NETFILTER_XT_TARGET_CHECKSUM=m # needed for lxc +CONFIG_IP_NF_NAT=m +CONFIG_NF_NAT=m +CONFIG_POSIX_MQUEUE=y +CONFIG_BLK_DEV_DM=m # Storage Drivers +CONFIG_DUMMY=m # Network Drivers +CONFIG_USER_NS=y +CONFIG_BLK_CGROUP=y # Optional section +CONFIG_BLK_DEV_THROTTLING=y # Optional section +CONFIG_CGROUP_PERF=y # Optional section +CONFIG_NET_CLS_CGROUP=m # Optional section +CONFIG_NET_SCHED=y # Optional section +CONFIG_FAIR_GROUP_SCHED=y # Optional section +CONFIG_RT_GROUP_SCHED=y # Optional section +CONFIG_IP_NF_TARGET_REDIRECT=m # Optional section +CONFIG_IP_VS=m # Optional section +CONFIG_IP_VS_NFCT=y # Optional section +CONFIG_IP_VS_PROTO_TCP=y # Optional section +CONFIG_IP_VS_PROTO_UDP=y # Optional section +CONFIG_IP_VS_RR=m # Optional section +CONFIG_EXT4_FS=m +CONFIG_EXT4_FS_POSIX_ACL=y # Optional section +CONFIG_EXT4_FS_SECURITY=y # Optional section +CONFIG_CFS_BANDWIDTH=y # Optional section +CONFIG_CHECKPOINT_RESTORE=y # Needed for lxc +CONFIG_MEMCG=y +CONFIG_DM_THIN_PROVISIONING=m # Storage Drivers +CONFIG_SWAP=y +CONFIG_VXLAN=m # Network Drivers +CONFIG_IP6_NF_TARGET_MASQUERADE=m # Needed for lxc +CONFIG_BRIDGE_VLAN_FILTERING=y # This is already enabled +CONFIG_MACVLAN=m # Network Drivers +CONFIG_CGROUP_NET_PRIO=y # Optional section +CONFIG_OVERLAY_FS=m # Storage Drivers +CONFIG_IPVLAN=m # Network Drivers +CONFIG_SECCOMP=y # Optional section +CONFIG_CGROUP_PIDS=y # Optional section + +# zram +CONFIG_ZRAM=m +CONFIG_ZSMALLOC=m +CONFIG_ZSMALLOC_STAT=y +CONFIG_ZRAM_MEMORY_TRACKING=y +CONFIG_CRYPTO_LZ4=m +CONFIG_LZ4_COMPRESS=m +CONFIG_SWAP=y + +# usb gadgets +# disable legacy gadgets +CONFIG_USB_ETH=n +CONFIG_USB_FUNCTIONFS=n +CONFIG_USB_MASS_STORAGE=n +CONFIG_USB_G_SERIAL=n +# enable configfs gadgets +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_RNDIS=y + +# other +CONFIG_BLK_DEV_NBD=y # netboot +CONFIG_INPUT_UINPUT=m # fbkeyboard, buffyboard +CONFIG_LEDS_TRIGGER_TIMER=m # hfd-service +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m # change MTU, e.g. for Wireguard +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m # change MTU, e.g. for Wireguard + +# EFI +CONFIG_EFI_STUB=y +CONFIG_EFI=y +CONFIG_DMI=y +CONFIG_EFI_ESRT=y +CONFIG_PSTORE=y # dependency of CONFIG_EFI_VARS_PSTORE +CONFIG_EFI_VARS_PSTORE=y +CONFIG_EFI_PARAMS_FROM_FDT=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB=y + +CONFIG_EFI_ZBOOT=y + +# Compress modules +CONFIG_HAVE_KERNEL_ZSTD=y +# Doesn't seem to be working correctly +#CONFIG_MODULE_COMPRESS_ZSTD=y +CONFIG_ZSTD_COMMON=y +CONFIG_ZSTD_COMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_DECOMPRESS_ZSTD=y + +# Enable dynamic debug +CONFIG_DYNAMIC_DEBUG=y