testing/linux-next: new aport (MR 4967)

Introduce a linux-next kernel with postmarketOS configs and some
additional device specific configs enabled.

This kernel package will be updated daily to the latest -next tag.
breakages expected. It is designed to be used in tandem with a generic
ARM64 device package to provide a bleeding edge option for those with
EFI capable bootloaders.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
This commit is contained in:
Caleb Connolly 2024-03-21 22:06:43 +00:00
parent 2ce4f51210
commit 18462c566a
No known key found for this signature in database
GPG key ID: 0583312B195F64B6
4 changed files with 327 additions and 0 deletions

View file

@ -92,6 +92,7 @@ device/*/kobo-epdc-extractor/ @akemnade
device/*/linux-google-nyan/ @jenneron device/*/linux-google-nyan/ @jenneron
device/*/linux-google-veyron/ @jenneron device/*/linux-google-veyron/ @jenneron
device/*/linux-huawei-plank/ @gtrxAC device/*/linux-huawei-plank/ @gtrxAC
device/*/linux-next/ @calebccff
device/*/linux-postmarketos-allwinner/ @Arnavion @PsychoGame device/*/linux-postmarketos-allwinner/ @Arnavion @PsychoGame
device/*/linux-postmarketos-amlogic/ @funderscore @exkc device/*/linux-postmarketos-amlogic/ @funderscore @exkc
device/*/linux-postmarketos-exynos4/ @Newbyte @ThiagaoPlusPlus device/*/linux-postmarketos-exynos4/ @Newbyte @ThiagaoPlusPlus

View file

@ -0,0 +1,73 @@
# Reference: <https://postmarketos.org/vendorkernel>
# 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
"

View file

@ -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

View file

@ -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