diff --git a/flake.nix b/flake.nix
index 1853d48..63f3528 100644
--- a/flake.nix
+++ b/flake.nix
@@ -44,6 +44,9 @@
 
             find . -type d -exec chmod 755 {} \;
 
+            # Copy kernel modules
+            cp -Pr ${self.packages.${system}.kernel.kernel}/lib/modules ./usr/lib/
+
             mkdir -p dev proc sys tmp root
             ln -sf usr/bin bin
             ln -sf usr/bin sbin
@@ -112,10 +115,6 @@
             EOF
             chmod 644 ./etc/group
 
-            # install lib kmod
-            cp -P ${pkgs.kmod.lib}/lib/* ./usr/lib
-            cp -P ${pkgs.libbpf.out}/lib/libbpf* ./usr/lib
-
             # FIXME: remove this
             cat <<EOF > usr/lib/systemd/system/demo.service
             [Unit]
@@ -153,6 +152,11 @@
             cp ${pkgs.busybox.out}/bin/busybox usr/bin/
             usr/bin/busybox --list | xargs -I {} ln -sf busybox usr/bin/{}
 
+            # install lib kmod
+            cp -P ${pkgs.kmod.lib}/lib/* ./usr/lib
+            cp -P ${pkgs.kmod.out}/bin/* ./usr/bin
+            cp -P ${pkgs.libbpf.out}/lib/libbpf* ./usr/lib
+
             # get shared libs
             find . -type f -executable | xargs ldd 2> /dev/null | awk '{print $3}' | grep -v systemd | sort -u | xargs cp -t usr/lib
             find . -type f -executable | xargs chmod 755
diff --git a/systemd/default.nix b/systemd/default.nix
index ccd72b8..3174f0f 100644
--- a/systemd/default.nix
+++ b/systemd/default.nix
@@ -187,9 +187,7 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.mesonOption "mode" "release")
     (lib.mesonOption "tty-gid" "3") # tty in NixOS has gid 3
 
-    # Use busybox kernel modules tools instead
-    (lib.mesonOption "kmod-path" "")
-
+    (lib.mesonOption "kmod-path" "/usr/bin/kmod")
     (lib.mesonOption "debug-shell" "/usr/bin/sh")
     (lib.mesonOption "pamconfdir" "/etc/pam.d")
     (lib.mesonOption "shellprofiledir" "/etc/profile.d")