diff --git a/flake.nix b/flake.nix index 9e92cc8..b4a7411 100644 --- a/flake.nix +++ b/flake.nix @@ -17,7 +17,7 @@ let pkgs = import nixpkgs { inherit system; }; patosPkgs = self.packages.${system}; - version = "0.0.1"; + version = "0.0.3"; updateUrl = "http://10.0.2.2:8000/"; in { diff --git a/pkgs/image/default.nix b/pkgs/image/default.nix index 94748a3..452bf1f 100644 --- a/pkgs/image/default.nix +++ b/pkgs/image/default.nix @@ -25,18 +25,28 @@ runCommand pname { SYSTEMD_REPART_MKFS_OPTIONS_EROFS = "--all-root -zlz4hc,12 -C1048576 -Efragments,dedupe,ztailpacking"; }; - kernelCmdLine = "console=ttyS0 patos.secureboot=true"; + kernelCmdLine = "console=ttyS0 patos.secureboot=false"; } '' mkdir -p $out/init.repart.d $out/final.repart.d pushd $out -# Don't seem to work just to create a symlink to rootfs derivation? -# ln -sf $rootfs rootfs mkdir rootfs cp -prP ${patosPkgs.rootfs}/* rootfs/ find rootfs/ -type d -exec chmod 755 {} \; +# package kernel modules as sysext +pkgName="patos-kernel-modules-${version}" +mkdir -p ./tree/usr/lib/extension-release.d +cat << EOF > ./tree/usr/lib/extension-release.d/extension-release.patos-kernel-modules +ID=patos +IMAGE_ID=patos-kernel-modules +IMAGE_VERSION=${version} +VERSION_ID=patos +EOF +cp -Prp rootfs/usr/lib/modules ./tree/usr/lib/modules && rm -rf rootfs/usr/lib/modules +tar -cJf $pkgName.tar.xz -C ./tree . --owner=root:0 --group=root:0 && rm -rf tree + # set default target to multi-user ln -sf multi-user.target rootfs/usr/lib/systemd/system/default.target @@ -127,6 +137,22 @@ ReadOnly=1 Verify=no EOF +cat <<EOF > rootfs/etc/sysupdate.d/30-kernel-modules.transfer +[Source] +Type=url-tar +Path=${updateUrl} +MatchPattern=patos-kernel-modules-@v.tar.xz + +[Target] +Type=subvolume +Path=/var/lib/extensions +MatchPattern=patos-kernel-modules-@v +CurrentSymlink=patos-kernel-modules + +[Transfer] +Verify=no +EOF + # Initial partitioning cat <<EOF > init.repart.d/10-root.conf @@ -241,8 +267,8 @@ ${patosPkgs.systemd}/usr/bin/systemd-repart \ --root=$out \ patos_${version}.img > final-repart-output.json -rm -rf rootfs -sha256sum *.root *.verity *.efi > SHA256SUMS +rm -rf rootfs init.repart.d final.repart.d *.json +sha256sum *.root *.verity *.efi *.tar.xz > SHA256SUMS popd '' diff --git a/pkgs/kernel/generic.config b/pkgs/kernel/generic.config index 048421b..4c67b0a 100644 --- a/pkgs/kernel/generic.config +++ b/pkgs/kernel/generic.config @@ -276,7 +276,7 @@ CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_BRIDGE=y CONFIG_BSD_DISKLABEL=y CONFIG_BSD_PROCESS_ACCT=y -CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS=y CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_BUFFER_HEAD=y CONFIG_BUG_ON_DATA_CORRUPTION=y @@ -426,7 +426,7 @@ CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=y CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y CONFIG_CRYPTO_AUTHENC=y -CONFIG_CRYPTO_BLAKE2B=m +CONFIG_CRYPTO_BLAKE2B=y CONFIG_CRYPTO_BLAKE2S_X86=y CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CCM=y @@ -643,7 +643,7 @@ CONFIG_ELF_CORE=y CONFIG_ELFCORE=y CONFIG_ENA_ETHERNET=y CONFIG_ENCLOSURE_SERVICES=y -CONFIG_ENCRYPTED_KEYS=m +CONFIG_ENCRYPTED_KEYS=y CONFIG_ENIC=m CONFIG_EPOLL=y CONFIG_EROFS_FS_POSIX_ACL=y @@ -1953,7 +1953,7 @@ CONFIG_QUOTA_TREE=y CONFIG_QUOTA=y CONFIG_R8169=m CONFIG_RAID6_PQ_BENCHMARK=y -CONFIG_RAID6_PQ=m +CONFIG_RAID6_PQ=y CONFIG_RAID_ATTRS=y CONFIG_RANDOMIZE_BASE=y CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y @@ -2487,7 +2487,7 @@ CONFIG_XFS_QUOTA=y CONFIG_XFS_RT=y CONFIG_XFS_SUPPORT_ASCII_CI=y CONFIG_XFS_SUPPORT_V4=y -CONFIG_XOR_BLOCKS=m +CONFIG_XOR_BLOCKS=y CONFIG_XPS=y CONFIG_XXHASH=y CONFIG_XZ_DEC_ARMTHUMB=y diff --git a/pkgs/rootfs/mkrootfs.nix b/pkgs/rootfs/mkrootfs.nix index 257ffb6..235a70a 100644 --- a/pkgs/rootfs/mkrootfs.nix +++ b/pkgs/rootfs/mkrootfs.nix @@ -172,7 +172,9 @@ cp -P ${pkgs.libbpf}/lib/libbpf*.so* $out/usr/lib/ ### install secure boot tools cp -P ${pkgs.sbctl}/bin/sbctl $out/usr/bin/ +rm -f $out/usr/bin/tar rm -f $out/usr/bin/blkid +cp -P ${pkgs.gnutar}/bin/tar $out/usr/bin/ cp -P ${pkgs.util-linuxMinimal}/bin/blkid $out/usr/bin/ cp -P ${pkgs.util-linuxMinimal}/bin/lsblk $out/usr/bin/ diff --git a/utils/qemu-uefi-tpm.nix b/utils/qemu-uefi-tpm.nix index 9087ada..7d51868 100644 --- a/utils/qemu-uefi-tpm.nix +++ b/utils/qemu-uefi-tpm.nix @@ -47,6 +47,7 @@ pkgs.writeShellApplication { -chardev socket,id=chrtpm,path="$state/swtpm-sock" \ -tpmdev emulator,id=tpm0,chardev=chrtpm \ -device tpm-tis,tpmdev=tpm0 \ + -netdev id=net00,type=user \ -device virtio-net-pci,netdev=net00 \ -drive "format=qcow2,file=$state/disk.qcow2" '';