Go to file
Mat Wood 5081c8d082 Adding section about rust-analyzer in README
- Including an example of how to create a rust-analyzer `rust-project.json` config
- Adding `rust-project.json` to `.gitignore`

Signed-off-by: Matthew Wood <mat@thepacketgeek.com>
2023-01-24 11:29:56 -08:00
.gitignore Adding section about rust-analyzer in README 2023-01-24 11:29:56 -08:00
Kbuild Initial commit 2021-12-22 21:46:30 +01:00
LICENSE Initial commit 2021-12-22 21:46:30 +01:00
Makefile Initial commit 2021-12-22 21:46:30 +01:00
README.md Adding section about rust-analyzer in README 2023-01-24 11:29:56 -08:00
rust_out_of_tree.rs rust_out_of_tree: change example data to a `Vec` 2022-08-06 14:19:29 +02:00

README.md

Rust out-of-tree module

This is a basic template for an out-of-tree Linux kernel module written in Rust.

Please note that:

  • The Rust support is experimental.

  • The kernel that the module is built against needs to be Rust-enabled (CONFIG_RUST=y).

  • The kernel tree (KDIR) requires the Rust metadata to be available. These are generated during the kernel build, but may not be available for installed/distributed kernels (the scripts that install/distribute kernel headers etc. for the different package systems and Linux distributions are not updated to take into account Rust support yet).

  • All Rust symbols are EXPORT_SYMBOL_GPL.

Example:

$ make KDIR=.../linux-with-rust-support LLVM=1
make -C .../linux-with-rust-support M=$PWD
make[1]: Entering directory '.../linux-with-rust-support'
  RUSTC [M] .../rust-out-of-tree-module/rust_out_of_tree.o
  MODPOST .../rust-out-of-tree-module/Module.symvers
  CC [M]  .../rust-out-of-tree-module/rust_out_of_tree.mod.o
  LD [M]  .../rust-out-of-tree-module/rust_out_of_tree.ko
make[1]: Leaving directory '.../linux-with-rust-support'
[    1.076945] rust_out_of_tree: Rust out-of-tree sample (init)
[    1.084944] rust_out_of_tree: My numbers are [72, 108, 200]
[    1.085944] rust_out_of_tree: Rust out-of-tree sample (exit)

For details about the Rust support, see https://github.com/Rust-for-Linux/linux.

For details about out-of-tree modules, see https://www.kernel.org/doc/html/latest/kbuild/modules.html.

rust-analyzer

Rust for Linux supports building a rust-project.json configuration for rust-analyzer, including for out-of-tree modules:

make -C .../linux-with-rust-support M=`pwd` rust-analyzer