mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-26 03:31:36 +01:00
a bit closer
This commit is contained in:
82
README.adoc
82
README.adoc
@@ -1,68 +1,17 @@
|
||||
[[linux-kernel-module-cheat]]
|
||||
= Linux Kernel Module Cheat
|
||||
|
||||
Run one command, get a QEMU Buildroot BusyBox virtual machine built from
|
||||
source with several minimal Linux kernel 4.15 module development example
|
||||
tutorials with GDB and KGDB step debugging and minimal educational
|
||||
hardware models. Limited GEM5 full system support. "Tested" in x86, ARM
|
||||
and MIPS guests, Ubuntu 17.10 host.
|
||||
|
||||
image:screenshot.png[image]
|
||||
|
||||
Reserve 12Gb of disk and run:
|
||||
|
||||
....
|
||||
git clone https://github.com/cirosantilli/linux-kernel-module-cheat
|
||||
cd linux-kernel-module-cheat
|
||||
./configure && ./build && ./run
|
||||
....
|
||||
|
||||
The first build will take a while
|
||||
(https://stackoverflow.com/questions/10833672/buildroot-environment-with-host-toolchain[GCC],
|
||||
Linux kernel), e.g.:
|
||||
|
||||
* 2 hours on a mid end 2012 laptop
|
||||
* 30 minutes on a high end 2017 desktop
|
||||
|
||||
If you don't want to wait, you could also try to compile the examples
|
||||
and run them on your host computer as explained on the
|
||||
link:run-on-host.md["Run on host" section], but as explained on that
|
||||
section, that is dangerous, limited, and will likely not work.
|
||||
|
||||
After QEMU opens up, you can start playing with the kernel modules:
|
||||
|
||||
....
|
||||
root
|
||||
insmod /hello.ko
|
||||
insmod /hello2.ko
|
||||
rmmod hello
|
||||
rmmod hello2
|
||||
....
|
||||
|
||||
This should print to the screen:
|
||||
|
||||
....
|
||||
hello init
|
||||
hello2 init
|
||||
hello cleanup
|
||||
hello2 cleanup
|
||||
....
|
||||
|
||||
which are `printk` messages from `init` and `cleanup` methods of those
|
||||
modules.
|
||||
|
||||
All available modules can be found in the
|
||||
link:kernel_module/[`kernel_module` directory].
|
||||
|
||||
See the link:getting-started.md[getting started section] for further
|
||||
details.
|
||||
Run one command, get a QEMU Buildroot BusyBox virtual machine built from source with several minimal Linux kernel 4.15 module development example tutorials with GDB and KGDB step debugging and minimal educational hardware models. Limited GEM5 full system support. "Tested" in x86, ARM and MIPS guests, Ubuntu 17.10 host.
|
||||
|
||||
1. link:getting-started.md[*Getting started*]
|
||||
2. Action
|
||||
1. Step debugging
|
||||
1. link:gdb-step-debugging.md[GDB step debugging]
|
||||
|
||||
== Action
|
||||
|
||||
=== Step debugging
|
||||
|
||||
1. link:gdb.md[GDB step debugging]
|
||||
2. link:kgdb.md[KGDB]
|
||||
3. link:gdbserver.md[gdbserver]
|
||||
|
||||
2. link:other-architectures.md[Other architectures]
|
||||
3. link:init.md[init]
|
||||
4. link:modprobe.md[modprobe]
|
||||
@@ -71,13 +20,22 @@ details.
|
||||
7. link:gem5.md[GEM5]
|
||||
8. link:ftrace.md[ftrace]
|
||||
9. link:qemu-user-mode.md[QEMU user mode]
|
||||
3. Failed action
|
||||
10. link:snapshot.md[Snapshot]
|
||||
|
||||
== Failed action
|
||||
|
||||
1. link:record-and-replay.md[Record and replay]
|
||||
4. Insane action
|
||||
|
||||
== Insane action
|
||||
|
||||
1. link:run-on-host.md[Run on host]
|
||||
2. link:hello_host/[Hello host]
|
||||
5. Conversation
|
||||
|
||||
== Conversation
|
||||
|
||||
1. link:kmod.md[kmod]
|
||||
2. link:device-tree.md[Device tree]
|
||||
3. link:maintainers.md[Maintainers]
|
||||
4. link:bibliography.md[Bibliography]
|
||||
|
||||
image:screenshot.png[image]
|
||||
|
||||
Reference in New Issue
Block a user