How to work with modules

Given Makefile

Ensure dkms is installed sudo apt install dkms

Loading existing module

# typical makefile stuff - generates output files
make clean
make
sudo dmesg -C # erases all current kernel log messages
sudo insmod ./mydriver.ko # load module (requires that module was built on this kernel version)
dmesg | tail -n +1 # prints the entire dmesg output unchanged

image.png

sudo rmmod mydriver #remove module

Updating via DKMS

sudo rsync -av . /usr/src/mydriver-0.1/ # copy source code into source tree (that path that we see over there)

sudo dkms add -m mydriver -v 0.1 # tell DKMS that a new version (0.1) exists at /usr/src/mydriver-0.1/

sudo dkms build -m mydriver -v 0.1 -k $(uname -r) #compile module for current kernel, producing .ko (kernel output)