Linux kernel: Difference between revisions
imported>Lillecarl Wireguard is no longer a great example since it's been mainlined, note this to readers. |
imported>Binary-Eater Added instructions for developing kernel modules for different kernel packages provided by NixOS |
||
Line 266: | Line 266: | ||
$ nix-shell '<nixpkgs>' -A linux.dev | $ nix-shell '<nixpkgs>' -A linux.dev | ||
$ make -C $(nix-build -E '(import <nixpkgs> {}).linux.dev' --no-out-link)/lib/modules/*/build M=$(pwd) modules | $ make -C $(nix-build -E '(import <nixpkgs> {}).linux.dev' --no-out-link)/lib/modules/*/build M=$(pwd) modules | ||
$ insmod ./hello.ko | |||
$ dmesg | grep hello | |||
[ 82.027229] hello world! | |||
</syntaxHighlight> | |||
If wishing to develop out-of-tree kernel modules for kernels aside from the default variant shipped under <code>pkgs.linuxPackages</code>, a flow similar to the example below will be used. | |||
The example below illustrates a flow for building kernel modules for <code>pkgs.linuxPackages_latest</code>. | |||
<syntaxHighlight lang="console> | |||
$ nix-shell '<nixpkgs>' -A linuxPackages_latest.kernel.dev | |||
$ make -C $(nix-build -E '(import <nixpkgs> {}).linuxPackages_latest.kernel.dev' --no-out-link)/lib/modules/*/build M=$(pwd) modules | |||
$ insmod ./hello.ko | $ insmod ./hello.ko | ||
$ dmesg | grep hello | $ dmesg | grep hello |