(3) Building and Loading Kernel Modules
The LU build outlined during in the bring-up process comprises of a minimal Ubuntu 18.04 installation. For this reason, various device kernel modules need to be build from source and loaded. In this tutorial, we document the process of building and loading the kernel modules for a USB joystick (joydev) and USB over serial (ch341). The source code associated with these modules is open-source and available as part of the linux kernel. We suggest use the USB-C cable to connect your RB5 to the computer so that you can copy large block of code over. Make sure you check the correctness of the format.
joydev
The kernel version utilized for this tutorial corresponds to 4.19.125
. If a different version is being used, you can find the version that matches your kernel by utilizing uname -r
.
Extract the source code associated with this module, copy it to a temporary directory, for example, we use directory joydev
.
1 | wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.125.tar.gz |
The following code need to be appended to the end of the Makefile that was copied to the temporary directory joydev
.
1 | KVERS = $(shell uname -r) |
Build and Load kernel module
1 | make |
To avoid loading the module every time, create a script outside of the directory.
1 | cd .. |
then copy the following script into the file.
1 | !/bin/bash |
save the file and execute it with
1 | bash joydev.sh |
The joydev module will be copied into the kernel directory and dynamically loaded when a joystick device is found.
ch341
Extract the source code associated with this module to a temporary directory, in this case ch341
1 | # Skip these two steps if you already did it |
The following code need to be append to the end of the Makefile that was copied to ch341
.
1 | KVERS = $(shell uname -r) |
Build and Load kernel module
1 | make |
To avoid loading the module every time, create a script outside of the directory.
1 | cd .. |
then copy the following script into the file.
1 | !/bin/bash |
save the file and execute it with
1 | bash ch341.sh |
The Makefiles and kernel modules can be found on Github.