The article is focused on education and training rather than a deep practical need. There are three different LKMs demonstrated in this video, each with its own individual purpose and needs:
Example 1: Button Press, LED Light: In this example an LED lights when a button is pressed. To perform this task, kernel interrupts are required and the use of linux/gpio.h. This example is used to test the interrupt performance.
Example 2: Enhanced Button GPIO Driver: This example is used to introduce kobjects and a mechanism for adding new entries to Sysfs. This allows you to send data to and receive data from the LKM at run time. The example also introduces the use of timing in kernel code.
Example 3: Enhanced LED GPIO Driver: This example is used to flash an LED, which allows for a discussion on Linux kthreads. Essentially, an LED is flashed at a frequency using a kernel module, which can be controlled from Linux user space.