Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.35 KB

README.md

File metadata and controls

34 lines (25 loc) · 1.35 KB

RootAsRole-capable

Prerequisites

We assume that you already installed the RootAsRole sr tool. We recommend to use it to take advantage of this project.

Many packages are required to build and run this project. The following is the command for installing them all on an Docker Image Ubuntu 22.04:

sr apt install clang curl build-essential libelf-dev llvm \
                linux-tools-generic binutils-dev libcap-dev libclang-dev \
                libdbus-1-dev pkg-config libacl1-dev strace

In addition to the above packages, the following are also required:

  1. stable rust toolchains: rustup toolchain install stable
  2. nightly rust toolchains: rustup toolchain install nightly --component rust-src
  3. bpftool: Compile it by following the Github (or use the following commands copied from the Github)
    1. git clone --recurse-submodules https://github.com/libbpf/bpftool.git
    2. cd bpftool/src
    3. sr make install
  4. bpf-linker: cargo install bpf-linker (--no-default-features on macOS)
  5. bindgen-cli: cargo install bindgen-cli

Build & Run

Use cargo build, cargo check, etc. as normal. Run your program with:

cargo run --release --config 'target."cfg(all())".runner="sr"'

Cargo build scripts are used to automatically build the eBPF correctly and include it in the program.