diff --git a/third_party/linux/def.bzl b/third_party/linux/def.bzl
index b31b34b..2090ed9 100644
--- a/third_party/linux/def.bzl
+++ b/third_party/linux/def.bzl
@@ -73,8 +73,8 @@
     # (image_name) is the name of the image that will be generated by this
     # rule.
     (target, image_source, image_name) = {
-        'vmlinux': ('vmlinux', 'vmlinux', 'vmlinux'),
-        'bzImage': ('all', 'arch/x86/boot/bzImage', 'bzImage'),
+        'vmlinux': ('vmlinux modules', 'vmlinux', 'vmlinux'),
+        'bzImage': ('all modules', 'arch/x86/boot/bzImage', 'bzImage'),
     }[image_format]
 
     # Root of the given Linux sources.
@@ -82,8 +82,9 @@
 
     image = ctx.actions.declare_file(image_name)
     modinfo = ctx.actions.declare_file("modules.builtin.modinfo")
+    modules = ctx.actions.declare_directory("modules")
     ctx.actions.run_shell(
-        outputs = [ image, modinfo ],
+        outputs = [ image, modinfo, modules ],
         inputs = [ kernel_config ] + kernel_src,
         command = '''
             kconfig=$1
@@ -92,12 +93,20 @@
             image=$4
             root=$5
             modinfo=$6
+            modules=$7
+
+            builddir=$(mktemp -d)
 
             mkdir ${root}/.bin
-            cp ${kconfig} ${root}/.config
-            (cd ${root} && make -j $(nproc) ${target} >/dev/null)
-            cp ${root}/${image_source} ${image}
-            cp ${root}/modules.builtin.modinfo ${modinfo}
+            cp ${kconfig} ${builddir}/.config
+            (cd ${root} && KBUILD_OUTPUT="${builddir}" make -j $(nproc) ${target} >/dev/null)
+            cp "${builddir}"/${image_source} ${image}
+            cp "${builddir}"/modules.builtin.modinfo ${modinfo}
+            # Not using modules_install as it tries to run depmod and friends
+            for f in $(find "${builddir}" -name '*.ko' -type f -printf "%P\n" ); do
+                install -D "${builddir}/$f" "${modules}/$f"
+            done
+            rm -Rf "$builddir"
         ''',
         arguments = [
             kernel_config.path,
@@ -105,7 +114,8 @@
             image_source,
             image.path,
             root,
-            modinfo.path
+            modinfo.path,
+            modules.path,
         ],
         use_default_shell_env = True,
     )
@@ -116,7 +126,8 @@
         runfiles=ctx.runfiles(files=[image])
       ),
       OutputGroupInfo(
-        modinfo = depset([modinfo])
+        modinfo = depset([modinfo]),
+        modules = depset([modules])
       )
     ]
 
