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-charimplements 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-dragonprobeexposes a SPI controller to the kernel. If thespidevmodule has been loaded (load it usingmodprobe), a/dev/spidevA.Bdevice should be available to access the device's SPI bus.i2c-dragonprobeexposes an I2C controller to the kernel. If thei2c-devmodule has been loaded (load it usingmodprobe), a/dev/i2c-BUSNUMdevice should be available to access the device's I2C bus.dragonprobe-hwmonimplements the temperature sensor functionality as a Linux hardware monitoring device. Its readout should be available in the output of thesensorscommand, from thelm_sensorspackage.
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.