Linux Kernel Module Cheat

Run one command, get into QEMU Buildroot BusyBox with several minimal Linux kernel 4.9 module example tutorials. Tested in Ubuntu 14.04.

Usage:

./run

First build will take a while (GCC, Linux kernel).

QEMU opens up, and you can run:

root
insmod /hello.ko
insmod /hello2.ko
rmmod hello
rmmod hello2

Each module comes from a C file under kernel_module/. For module usage do:

head *. use Buildroot's default kernel version, you can confirm it after build with:

grep BR2_LINUX_KERNEL_VERSION buildroot/.config

We use printk a lot, and it shows on the QEMU terminal by default. If that annoys you (e.g. you want to see stdout separately), do:

dmesg -n 1

See also: https://superuser.com/questions/351387/how-to-stop-kernel-messages-from-flooding-my-console

When your kernel starts crashing, get the full trace with:

./run -n

See also: https://unix.stackexchange.com/questions/208260/how-to-scroll-up-after-a-kernel-panic

Then if you want your terminal back, hit Ctrl + C, A and type quit. See also: http://stackoverflow.com/questions/14165158/how-to-switch-to-qemu-monitor-console-when-running-with-curses

  1. Introduction
  2. Build
  3. kmod
  4. Bibliography
  5. Examples
    1. Host
    2. Buildroot
      1. Debugging
        1. hello
        2. hello2
        3. debugfs
        4. panic
      2. fops
      3. Asynchronous
        1. workqueue
        2. sleep
        3. kthread
        4. timer
        5. work_from_work
Description
No description provided
Readme 202 MiB
Languages
Python 37.3%
C 33.8%
Assembly 13.6%
C++ 8.6%
Shell 3.7%
Other 2.8%