From cff5bebf2f23ab02591ca1d72a87208d94328ab4 Mon Sep 17 00:00:00 2001 From: Enno Boland Date: Tue, 15 Aug 2023 13:32:03 +0200 Subject: [PATCH] feat: add btrfs support This changes the kernel config to enable btrfs support and adds a new package for the btrfs kernel module. Signed-off-by: Noel Georgi --- btrfs/files/modules.txt | 8 ++++++++ btrfs/pkg.yaml | 23 +++++++++++++++++++++++ kernel/build/config-amd64 | 20 +++++++++++++++----- kernel/build/config-arm64 | 19 ++++++++++++++----- 4 files changed, 60 insertions(+), 10 deletions(-) create mode 100644 btrfs/files/modules.txt create mode 100644 btrfs/pkg.yaml diff --git a/btrfs/files/modules.txt b/btrfs/files/modules.txt new file mode 100644 index 00000000..ecc8e6b4 --- /dev/null +++ b/btrfs/files/modules.txt @@ -0,0 +1,8 @@ +modules.order +modules.builtin +modules.builtin.modinfo +kernel/crypto/blake2b_generic.ko +kernel/crypto/zstd.ko +kernel/crypto/xxhash_generic.ko +kernel/lib/zstd/zstd_compress.ko +kernel/fs/btrfs/btrfs.ko diff --git a/btrfs/pkg.yaml b/btrfs/pkg.yaml new file mode 100644 index 00000000..73a825f8 --- /dev/null +++ b/btrfs/pkg.yaml @@ -0,0 +1,23 @@ +name: btrfs-pkg +variant: scratch +shell: /toolchain/bin/bash +dependencies: + - stage: base + runtime: true + - stage: kernel +steps: + - env: + ARCH: {{ if eq .ARCH "aarch64"}}arm64{{ else if eq .ARCH "x86_64" }}x86_64{{ else }}unsupported{{ end }} + install: + - | + export KERNELRELEASE="{{ .linux_version }}-talos" + + xargs -a /pkg/files/modules.txt -I {} install -D /lib/modules/${KERNELRELEASE}/{} /rootfs/lib/modules/${KERNELRELEASE}/{} + depmod -b /rootfs ${KERNELRELEASE} + test: + - | + # https://www.kernel.org/doc/html/v4.15/admin-guide/module-signing.html#signed-modules-and-stripping + find /rootfs/lib/modules -name '*.ko' -exec grep -FL '~Module signature appended~' {} \+ +finalize: + - from: /rootfs + to: / diff --git a/kernel/build/config-amd64 b/kernel/build/config-amd64 index 4ff8d143..9321b0a5 100644 --- a/kernel/build/config-amd64 +++ b/kernel/build/config-amd64 @@ -1965,6 +1965,7 @@ CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_FD is not set CONFIG_CDROM=y # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_ZRAM is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_DRBD is not set @@ -4941,7 +4942,13 @@ CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_WARN is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_BTRFS_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_NILFS2_FS is not set # CONFIG_F2FS_FS is not set CONFIG_FS_POSIX_ACL=y @@ -5388,7 +5395,7 @@ CONFIG_CRYPTO_ESSIV=y # # Hashes, digests, and MACs # -# CONFIG_CRYPTO_BLAKE2B is not set +CONFIG_CRYPTO_BLAKE2B=m CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y @@ -5406,7 +5413,7 @@ CONFIG_CRYPTO_SHA512=y # CONFIG_CRYPTO_VMAC is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_XXHASH is not set +CONFIG_CRYPTO_XXHASH=m # end of Hashes, digests, and MACs # @@ -5421,11 +5428,11 @@ CONFIG_CRYPTO_CRC32=y # Compression # CONFIG_CRYPTO_DEFLATE=y -# CONFIG_CRYPTO_LZO is not set +CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_ZSTD is not set +CONFIG_CRYPTO_ZSTD=m # end of Compression # @@ -5597,7 +5604,10 @@ CONFIG_XXHASH=y # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y CONFIG_ZSTD_COMMON=y +CONFIG_ZSTD_COMPRESS=m CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y diff --git a/kernel/build/config-arm64 b/kernel/build/config-arm64 index 39f5a1df..6dcdbf5e 100644 --- a/kernel/build/config-arm64 +++ b/kernel/build/config-arm64 @@ -2237,6 +2237,7 @@ CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set CONFIG_CDROM=y # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_ZRAM is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_DRBD is not set @@ -7459,7 +7460,13 @@ CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set -# CONFIG_BTRFS_FS is not set +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_NILFS2_FS is not set # CONFIG_F2FS_FS is not set CONFIG_FS_POSIX_ACL=y @@ -7922,7 +7929,7 @@ CONFIG_CRYPTO_ESSIV=y # # Hashes, digests, and MACs # -# CONFIG_CRYPTO_BLAKE2B is not set +CONFIG_CRYPTO_BLAKE2B=m CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_GHASH=y CONFIG_CRYPTO_HMAC=y @@ -7941,7 +7948,7 @@ CONFIG_CRYPTO_SM3=y # CONFIG_CRYPTO_VMAC is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_XXHASH is not set +CONFIG_CRYPTO_XXHASH=m # end of Hashes, digests, and MACs # @@ -7957,11 +7964,11 @@ CONFIG_CRYPTO_CRC64_ROCKSOFT=y # Compression # CONFIG_CRYPTO_DEFLATE=y -# CONFIG_CRYPTO_LZO is not set +CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_ZSTD is not set +CONFIG_CRYPTO_ZSTD=m # end of Compression # @@ -8161,9 +8168,11 @@ CONFIG_AUDIT_COMPAT_GENERIC=y # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_ZSTD_COMMON=y +CONFIG_ZSTD_COMPRESS=m CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y