NDL-DEPLOY(1)

πŸ“¦ version 1.12.48, in fedora 43, fedora 44

✨ NDL ✨

okay bestie, so this is the man page for NDL β€” and the date on this one is 2024-03-08, so you know it's fresh-ish. it's a manual page, it lives in the manual, and it's all about one specific command. let's get into it πŸ’…


🌸 COMMAND 'ndl deploy' 🌸

so like. the vibe here? this command compiles and deploys ndl helpers and drivers to the SUT (System Under Test) πŸŽ€ and the SUT can be either local or a remote host, depending on the -H option. yes, that one. the one you're gonna forget exists.

here's the usage line, copied exactly, no notes:

usage: ndl deploy [-h] [-q] [-d] [--kernel-src KSRC] [--local-build]
[--tmpdir-path TMPDIR_PATH] [--keep-tmpdir] [-H HOSTNAME] [-U USERNAME]
[-K PRIVKEY] [-T TIMEOUT]

by default, everything is built on the SUT, but --local-build lets you build on the local system instead. main character choice, honestly.

now, the drivers? they get searched for in these directories, on the local host, in this exact order:

  1. ./drivers/idle
  2. $WULT_DATA_PATH/drivers/idle
  3. $HOME/.local/share/wult/drivers/idle
  4. /usr/local/share/wult/drivers/idle
  5. /usr/share/wult/drivers/idle

and the ndl tool also depends on these helpers:

  • ndl-helper
  • wult-freq-helper

these helpers get compiled on the SUT and then deployed to the SUT. and where do their sources come from? searched on the local host, in this order:

  1. ./helpers
  2. $WULT_DATA_PATH/helpers
  3. $HOME/.local/share/wult/helpers
  4. /usr/local/share/wult/helpers
  5. /usr/share/wult/helpers

and where do the helpers actually LAND? by default, the path defined by the WULT_HELPERSPATH environment variable πŸ¦‹. and if that variable isn't defined? they go to $HOME/.local/bin, where $HOME is the home directory of user USERNAME on host HOST (see the --host and --username options, bestie, i told you).


πŸŽ€ OPTIONS 'ndl deploy' πŸŽ€

  • -h β€” show this help message and exit. the classic. the icon.
  • -q β€” be quiet. 🀫
  • -d β€” print debugging information. it's giving detective energy πŸ”
  • --kernel-src KSRC β€” path to the Linux kernel sources to build drivers against. the default is /lib/modules/$(uname -r)/build on the SUT. and heads up: if --local-build was used, then the path is considered to be on the local system, not on the SUT. don't get it twisted.
  • --drivers-make-opts β€” options and variables to pass to make when the drivers are built. for example, pass CC=clang LLVM=1 to use clang and LLVM tools for building the drivers (this is required when the kernel was build with clang/LLVM). slay ✨
  • --local-build β€” build helpers and drivers locally, instead of building on HOSTNAME (the SUT).
  • --tmpdir-path TMPDIR_PATH β€” when ndl is deployed, a random temporary directory is used. use this option to provide a custom path instead. it'll be used as a temporary directory on both local and remote hosts. this option is meant for debugging purposes.
  • --keep-tmpdir β€” do not remove the temporary directories created while deploying ndl. also meant for debugging purposes. leaving little temp-dir breadcrumbs everywhere πŸ“
  • -H HOSTNAME, --host HOSTNAME β€” name of the host to run the command on.
  • -U USERNAME, --username USERNAME β€” name of the user to use for logging into the remote host over SSH. the default user name is root. πŸ‘‘
  • -K PRIVKEY, --priv-key PRIVKEY β€” path to the private SSH key that should be used for logging into the remote host. by default the key is automatically found from standard paths like ~/.ssh.
  • -T TIMEOUT, --timeout TIMEOUT β€” SSH connect timeout in seconds, default is 8.
fr fr, that --tmpdir-path and --keep-tmpdir pair? debugging-only. don't ship them in your little automation scripts and then act surprised, bestie 😭

and that's the whole page!! no cap, that's every single flag, every default, every path, every env var. nothing skipped, nothing merged, we ate and left no crumbs 🫢

okay and for the lil sign-off: the footer of this man page is literally just () β€” like, no source/version filled in, no date down there either, it's giving mysterious πŸ’€. the only date we've got is that 2024-03-08 up at the top. so that's the whole lore. bye bestie, go deploy something πŸŒˆπŸ’–

πŸ“¦ where this page comes from