Commit graph

102 commits

Author SHA1 Message Date
Aster Boese
58a9d9dbf3
kconfigcheck: add zstd initramfs decompression support to category:default
Per the discussion https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4087, zstd is going to
become the default compression algorithm for the initramfs, with only devices using kernels older than 5.1.0
expected to use gzip. Because of this, adding this config to the default category early ensures that the
eventual migration requires less changes.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9009>
2026-07-28 05:51:40 +00:00
Stefan Hansson
3f597792c1
linux-purism-librem5: Use kconfig fragments
And remove references to old "config rebasing" procedure that no longer
is necessary since pmbootstrap's kconfig generation effectively does the
same thing. Also remove kconfigcheck category for Librem 5 and replace
it with a fragment.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9066>
2026-07-21 10:55:34 +02:00
Aster Boese
4eea5a63f5
kconfigcheck: version gate CRYPTO_KRB5
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9001>
2026-07-11 19:11:04 +02:00
Aster Boese
3b5032d29c
kconfigcheck: switch to LOCK_DOWN_KERNEL_FORCE_INTEGRITY
The current systemd user namespaces model
almost works with confidentiality, but a single
check for kprobes is used, which confidentiality
disables, so user namespaces fail. For now,
just downgrade lockdown to integrity until this
is sorted out in systemd.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8988>
2026-07-10 13:45:28 +00:00
Aster Boese
061256690b
kconfigcheck: add lockdown configs and add opt-in lockdown category
Enables lockdown by default in the hardening category, but locks hardcoding
enabling confidentiality behind the lockdown category, which kernels can
opt-into where it makes sense.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7369>
2026-07-09 18:02:41 +00:00
Aelin
b0c160e37d
kconfigcheck: Require CRYPTO_KRB5=m
It appears to default to y with our current config requirements from
Linux 7.2 onwards, and that in turn breaks kconfigcheck because it will
set CRYPTO_CAMELLIA=y, etc. If we require it to be built as a module,
our kconfig checks will pass again.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8929>
2026-07-08 15:41:57 +00:00
knuxify
96a30fb31b
kconfigcheck: make BTRFS and F2FS modules
Initially, these were switched to built-ins as they were included in
the default initramfs, which can have a worse compression ratio
than the kernel itself (e.g. Exynos 4 kernel uses xz for kernel, gzip
(pmbootstrap default) for initramfs).

Since f45319dc, however, these have been moved to initramfs-extra;
as such, they don't get built into the initramfs on devices that use
create_initfs_extra. They are now safe to move to modules - this
lets us save ~2MB on space-constrained devices.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8943>
2026-07-08 14:47:18 +00:00
Aelin
4f39055f64
kconfigcheck: Per-enctype algorithm options are removed in 7.2
See kernel commit c331c8eaa20211d99181f1a1cf8d5a83b119dcb6 ("SUNRPC:
Remove per-enctype Kconfig options") for further details.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8906>
2026-06-26 18:57:21 +00:00
Clayton Craft
2ca69460a1
kconfigcheck: drop DEBUG_INFO_BTF=n for LTO+Rust
These options are required to get BPF stuff working in the kernel.

Fixes #4411

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8779>
2026-06-14 16:03:04 +00:00
Clayton Craft
5f8ef38f89
kconfigcheck: add systemd bpf requirements to default category
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8779>
2026-06-14 16:03:04 +00:00
Aelin
06318bcfec
kconfigcheck: Drop options redundant with 5.18 community baseline
As per https://docs.postmarketos.org/pmaports/main/kconfigcheck.html and
considering that today is the beginning of June 2026, the baseline for
community kconfig checks is Linux 5.18, so we can remove the redundant
CONFIG_ASHMEM enablement in the waydroid category for kernels older than
5.18.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8783>
2026-06-10 19:21:42 +00:00
Aster Boese
6ecd7f6d43
kconfigcheck: move VFAT_FS to category:default
All but 10 kernels in downstream and 1 in testing support VFAT_FS already.
FAT32, which VFAT_FS supports, is proposed with
https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/merge_requests/2869
to become the default filesystem for pmOS_boot. Since so many kernels already
support this option and the FAT filesystems are so common, there is no reason
not to include VFAT_FS by default. VFAT_FS only increases kernel size by 10kb,
so it does not impact boot partition space in any meaningful way.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8694>
2026-05-31 21:43:12 +00:00
Aelin
4402d4a28e
kconfigcheck: Require support for Yama
This lets us prohibit non-ancestor ptrace access to running processes
and their credentials via sysctl kernel.yama.ptrace_scope=1.

Yama stacks correctly with SELinux. Arch Linux enables it and sets
ptrace_scope=1 by default, see https://wiki.archlinux.org/title/Security#ptrace_scope.

Note that SELinux also has the deny_ptrace mechanism to achieve similar
things, but we're not shipping SELinux at the moment and we can opt to
switch to deny_ptrace for enforcing this in the future if desired.

See https://docs.kernel.org/admin-guide/LSM/Yama.html for more information.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8582>
2026-05-23 09:16:21 +00:00
Aster Boese
921c30190b
kconfigcheck: add CONFIG_RUST=y to category:rust
category:rust was actually not added to *enable* Rust support in the kernel,
but to add options needed by kernels that had *already* enabled Rust. Since
the category was meant for kernels with Rust enabled, enabling Rust support
with the category makes sense and fits better with the category name to clear
up any confusion kernel package maintainers may have.

See 5cbd09c81c

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8559>
2026-05-15 10:53:09 +02:00
Aster Boese
029b539827
kconfigcheck: add accessibility category
Enables the basic kernel interfaces for the kernel braille and
speakup support.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7429>
2026-05-06 16:10:53 +00:00
Aelin
c1ed6289e2
kconfigcheck: Require the improved NTFS driver in 7.1+
Linux 7.1 introduces a new NTFS driver that is more compatible than
NTFS3, faster and has more features. Let's switch to it for kernel
versions where it is available.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8484>
2026-05-04 14:24:22 +00:00
Eisenbahnfan
a325d6d06d
kconfigcheck: CONFIG_NFS_V4_1 is not available starting from Linux v7.0
See [1], which was merged into v7.0.

[1] https://lore.kernel.org/all/20260126203938.450304-15-anna@kernel.org/

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8429>
2026-04-26 17:34:33 +00:00
Luca Weiss
fbaf608c1c
kconfigcheck: Enable NFSD options
Enable the in-kernel NFS server along with some other related options.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8117>
2026-04-24 21:05:20 +00:00
Aelin
5d38a7cc64
kconfigcheck: Simplify based on version baselines
This replaces all version requirements below the baseline for the
categories with >=0.0.0 and completely removes configurations that would
only apply to version ranges no longer included in the baseline.

The default category baseline is 2.6.0, categories for community kernels
currently have a baseline of 5.17.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8421>
2026-04-24 20:43:49 +00:00
Aelin
b51e236f1a
kconfigcheck: Fix inconsistencies on loongarch64
CONFIG_CRYPTO_CTS is built-in if CONFIG_FS_ENCRYPTION is enabled, which
it is by default on loongarch64, which is reasonable.

CONFIG_NFSD is also built-in on some architectures, which causes
CONFIG_RPCSEC_GSS_KRB5 to be built-in rather than a module. We could
either force disable NFSD, which is not great, or just build it as a
module, which is what I opted for.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8415>
2026-04-22 22:06:50 +00:00
Neil Armstrong
8155e23632
kconfigcheck: CRYPTO_AES_TI is not available starting from Linux v7.0
See [1], which was merged into v7.0.

[1] https://lore.kernel.org/all/20260112192035.10427-9-ebiggers@kernel.org/

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8410>
2026-04-22 20:23:39 +00:00
Luca Weiss
8c29e3a104
kconfigcheck: Add 'netmount' to community category
It doesn't look like it was intentional to keep this optional, so let's
require netmount (i.e. NFS) for all community kernels.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8063>
2026-04-21 15:47:43 +02:00
Luca Weiss
470789f095
kconfigcheck: Build 'netmount' category as modules where possible
There's no need to have these built-in to the kernel, better to build
these options as modules to keep the impact low.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8063>
2026-04-21 15:47:43 +02:00
Aelin
5d06fe0fd1
kconfigcheck: Add SELinux category
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8352>
2026-04-16 16:27:57 +00:00
Aster Boese
b5c5a91b60
kconfigcheck: enable SECURITY_DMESG_RESTRICT
Kernel logs can contain sensitive information which we don't want
easily accessible. This locks the kernel buffer to privileged
access (with sudo).

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8342>
2026-04-13 21:15:35 +00:00
bluebunny
033c34b0ad
kconfigcheck: add USB_NET_RNDIS_HOST
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8230>
2026-04-06 17:33:28 +00:00
Aster Boese
5e58825ad3
kconfigcheck: version gate DRM_FBDEV_EMULATION
DRM_FBDEV_EMULATION was added in kernel version 4.3, but we have kernels older than that.
Version gating the option fixes kconfigcheck on these kernels.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8202>
2026-03-19 22:21:03 +01:00
polyfloyd
37569a73bd
Add new kconfig flags for Docker
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8002>
2026-03-13 15:36:07 +00:00
Aelin
577667f338
kconfigcheck: BPF_LSM depends on SECURITY
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8168>
2026-03-13 13:01:48 +00:00
Clayton Craft
ef30e86f09
kconfigcheck: add additional kconfig requirements for systemd
From: https://github.com/systemd/systemd/blob/main/README

All of these config options are bool, hence why they are set to "y".
Kernels will also need to add pahole to the makedepends to support BPF.

fixes #3769

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6707>
2026-03-12 18:11:11 +00:00
Aster Boese
b24a4ef1fd
kconfigcheck: version gate MODULE_COMPRESS
MODULE_COMPRESS was added after the individual compression algorithm options.
As such, it needs a separate version set or any kernel below the version it
was added will fail kconfig check.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8131>
2026-03-06 10:53:34 +00:00
Sam Day
4dfac08c46
kconfigcheck: expand EroFS support
This modern alternative to SquashFS has been around for a while now.
It's the default format for Fedora's live media, and likely used in many
other notable places too.

Let's enable EroFS support as a baseline "filesystems" capability.

category:immutable was already bringing in erofs as a built-in. Clayton
confirmed in pmaports!8074 discussion that it's okay to downgrade to =m

Signed-off-by: Sam Day <me@samcday.com>
Assisted-by: opencode:gpt-5.3-codex
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8074>
2026-02-26 21:11:10 +00:00
Sam Day
ce5a8307a3
kconfigcheck: enable ublk driver for netbooting devices
ublk allows a block device to be driven from userspace. think FUSE, but
blocks.

smoo uses ublk to present a block device driven by a USB protocol. this
serves as an alternate data plane to nbd for netbooting use cases.

Signed-off-by: Sam Day <me@samcday.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8075>
2026-02-25 20:52:21 +10:00
Aelin
bebe107f52
kconfigcheck: Only require zstd module (de)compression on 6.2 or newer
The in-kernel zstd module decompression exists since kernel 6.2 [1], so
in order to accomodate split initramfs devices, we can only safely
require zstd module compression and decompression on 6.2 or newer.

[1]: 169a58ad82

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7952>
2026-02-07 17:43:35 +01:00
Val Packett
839d8035c4
kconfigcheck: add more USB peripherals
- ensure MIDI 2.0 is enabled in the USB audio driver
- ensure UASP is enabled for faster storage access
- ensure USBNET framework is enabled for more Ethernet drivers
  (many particular USB_NET_* drivers have default 'y' in kconfig)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7911>
2026-02-06 15:55:39 +00:00
Henrik Grimler
dfc7fe9107
kconfigcheck: MODULE_DECOMPRESS should be set
We currently enforce MODULE_COMPRESS_ZSTD=y. In the 1st stage
initramfs we use busybox modprobe, and busybox modprobe cannot handle
zstd compression. Therefore, make sure MODULE_DECOMPRESS is enabled so
that kernel handles decompression instead.

See issue https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/4305.

Co-developed-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7922>
2026-02-04 14:41:03 +01:00
Aelin
e9ff22e200
kconfigcheck: CPU_FREQ_GOV_SCHEDUTIL depends on CPU_FREQ
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7853>
2026-01-26 23:35:48 +01:00
Aelin
a3e9f29450
kconfigcheck: Compress modules with zstd
Since we already require firmware compression with zstd, it only makes
sense to also require modules to be compressed the same way.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7837>
2026-01-25 21:41:26 +00:00
Aelin
6a1fe61bf7
kconfigcheck: Require framebuffer support
unl0kr is unusable without CONFIG_FB enabled. With DRM, we need
CONFIG_DRM_FBDEV_EMULATION=y to have /dev/fb* nodes.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7833>
2026-01-24 22:06:06 +00:00
Aelin
078a66a5b9
kconfigcheck: DRM_UDL requires DRM
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7810>
2026-01-23 19:35:19 +00:00
Aelin
4872005baf
kconfigcheck: USB_SERIAL_* requires USB_SERIAL
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7810>
2026-01-23 19:35:19 +00:00
Aelin
4747f268cc
kconfigcheck: Let community imply USB
I'm pretty sure this is an oversight and it was intended to make the USB
category part of the community checks.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7810>
2026-01-23 19:35:15 +00:00
Clayton Craft
3a74f3a1de
kconfigcheck: enable all compression backends for zram
It doesn't seem like enabling these will "cost" us anything, and
making sure they are enabled will let us more easily change the default
compressor for zram swap in the future.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7753>
2026-01-14 21:59:26 +00:00
Clayton Craft
4e712841d7
kconfigcheck: set USB_F_FS to =m
Setting it to =y requires also setting CONFIGFS=y, but since we have
CONFIGFS=m this needs to be adjusted or else config generated from this
toml will fail validation / kconfigcheck.

```
[09:25:01] Copy kernel config back to pmaports dir
[09:25:02] (native) generate checksums for linux-postmarketos-asahi
[09:25:03] INFO: config-postmarketos-asahi.aarch64: CONFIG_USB_F_FS is preferably y, but currently m (category:usb_gadgets)
[09:25:03] Fragment pmos.config: CONFIG_USB_F_FS expected to be 'y' but has different value in final config
[09:25:03] ERROR: Fragment validation failed: Some options from fragments did not make it to the final kernel config. This usually means missing dependencies.
```

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7713>
2026-01-11 10:03:22 +00:00
Dylan Van Assche
7d35823389
kconfigcheck: add USB FunctionFS
[ci:ignore-count]
[ci:skip-vercheck]

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6531>
2025-12-27 22:44:28 -08:00
Jens Reidel
7d3b8e05df
kconfigcheck: Don't require LTO_CLANG_THIN for CFI
This is only required on kernels prior to 6.1 and not even supported on
some architectures like ARMv7.

Signed-off-by: Jens Reidel <adrian@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7537>
2025-12-15 23:32:12 +00:00
Clayton Craft
1c26be5ffe
kconfigcheck: add 'wine' category for community kernels
This category can be used to collect kconfig that improve Wine/Proton
support on devices. NTSYNC is Win NT sync primatives that improve
performance of things running under Wine.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7157>
2025-12-12 16:07:54 +01:00
Pablo Correa Gómez
6e99b38fc8
kconfigcheck.toml: add missing "all" arch to category:rust
This makes the whole thing more consistent, and allows to verify
architectures in pmb

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7527>
2025-12-08 16:04:43 +01:00
Pablo Correa Gómez
7bbac7dea6
kconfigcheck.toml: fix architecture typo
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7523>
2025-12-08 01:01:19 +01:00
Clayton Craft
5cbd09c81c
kconfigcheck: rust: disable DEBUG_INFO_BTF
When this config is enabled along with LTO (from the "hardening"
category), the kernel build system disables rust support.

These options are added to a new category, "rust" since it's only
necessary for kernels with rust support enabled.

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7466>
2025-12-01 08:27:17 -08:00