4
Linux kernel modules
sys64738 edited this page 2021-08-17 22:20:42 +00:00
Table of Contents
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 withdpctl
, not to be used directly.spi-dragonprobe
exposes a SPI controller to the kernel. If thespidev
module has been loaded (load it usingmodprobe
), 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 thei2c-dev
module has been loaded (load it usingmodprobe
), 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 thesensors
command, from thelm_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.