4 Linux kernel modules
sys64738 edited this page 2021-08-17 22:20:42 +00:00

Available modules

Currently, 5 modules exist:

  • dragonprobe: This module is responsible for binding to the USB vendor interface, handling the low-level command transfer protocol, exposing this functionality to the other modules, and auto-loading the other modules when their functionality is available on the device. Not to be used directly.
  • dragonprobe-char implements a character device driver (/dev/dragonprobe-*), exposing the USB vendor interface (in use by the kernel) to userspace. Mainly for use with dpctl, not to be used directly.
  • spi-dragonprobe exposes a SPI controller to the kernel. If the spidev module has been loaded (load it using modprobe), a /dev/spidevA.B device should be available to access the device's SPI bus.
  • i2c-dragonprobe exposes an I2C controller to the kernel. If the i2c-dev module has been loaded (load it using modprobe), a /dev/i2c-BUSNUM device should be available to access the device's I2C bus.
  • dragonprobe-hwmon implements the temperature sensor functionality as a Linux hardware monitoring device. Its readout should be available in the output of the sensors command, from the lm_sensors package.

Compiling and loading the modules

The source code of the modules can be found in the host/modules/ folder in the source tree. A Makefile is made available to compile these for the Linux kernel you are currently running. Linux 5.4 and up have been tested to work.

Loading these modules can be done using sudo insmod <modulename>.ko, and unloaded using sudo rmmod <modulename>. Note that all modules depend on the dragonprobe module, so the latter one has to be loaded first, and unloaded last.