diff --git a/pkgs/image/default.nix b/pkgs/image/default.nix index 452bf1f..a248a09 100644 --- a/pkgs/image/default.nix +++ b/pkgs/image/default.nix @@ -35,17 +35,10 @@ 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 +# package kernel modules as sysext (will reduce the image size a little bit (~3MB)) +mkdir rootfs/etc/extensions +rm -rf rootfs/usr/lib/modules +cp ${patosPkgs.kernel}/patos-kernel-modules* rootfs/etc/extensions/ # set default target to multi-user ln -sf multi-user.target rootfs/usr/lib/systemd/system/default.target @@ -137,23 +130,6 @@ 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 [Partition] diff --git a/pkgs/kernel/manual-config.nix b/pkgs/kernel/manual-config.nix index 9f1ba99..98b09f8 100644 --- a/pkgs/kernel/manual-config.nix +++ b/pkgs/kernel/manual-config.nix @@ -22,6 +22,8 @@ pahole, kmod, ubootTools, + erofs-utils, + cryptsetup, fetchpatch, rustc, rust-bindgen, @@ -224,6 +226,8 @@ lib.makeOverridable ( python3Minimal kmod hexdump + erofs-utils + cryptsetup ] ++ optional needsUbootTools ubootTools ++ optionals (lib.versionAtLeast version "5.2") [ @@ -496,6 +500,20 @@ lib.makeOverridable ( # Delete empty directories find -empty -type d -delete + + pkgName="patos-kernel-modules" + mkdir -p $out/tree/usr/lib/extension-release.d + cat << EOF > $out/tree/usr/lib/extension-release.d/extension-release.$pkgName + ID=patos + IMAGE_ID=$pkgName + IMAGE_VERSION=${version} + VERSION_ID=patos + EOF + cp -Prp $out/lib/modules $out/tree/usr/lib/modules + find $out/tree -type d -exec chmod 0755 {} \; + mkfs.erofs --all-root -zlz4hc,12 -C1048576 -Efragments,dedupe,ztailpacking $out/$pkgName.raw $out/tree/ + veritysetup format --root-hash-file $out/$pkgName.roothash $out/$pkgName.raw $out/$pkgName.verity + chmod -R 755 $out/tree && rm -rf $out/tree ''; requiredSystemFeatures = [ "big-parallel" ];