# Linux Kernel Module Cheat

##### 2.2.2.1. Your first Linux kernel hack

Let’s hack up the Linux kernel entry point, which is an easy place to start.

Open the file:

    vim submodules/linux/init/main.c

and find the `start_kernel` function, then add there a:

    pr_info("I'VE HACKED THE LINUX KERNEL!!!");

Then rebuild the Linux kernel, quit QEMU and reboot the modified kernel:

    ./build-linux
    ./run

and, surely enough, your message has appeared at the beginning of the boot:

    <6>[    0.000000] I'VE HACKED THE LINUX KERNEL!!!

So you are now officially a Linux kernel hacker, way to go!

We could have used just build to rebuild the kernel as in the initial build instead of build-linux, but building just the required individual components is preferred during development:

- saves a few seconds from parsing Make scripts and reading timestamps

- makes it easier to understand what is being done in more detail

- allows passing more specific options to customize the build

The build script is just a lightweight wrapper that calls the smaller build scripts, and you can see what `./build` does with:

    ./build --dry-run

see also: Dry run to get commands for your project.

When you reach difficulties, QEMU makes it possible to easily GDB step debug the Linux kernel source code, see: Section 3, “GDB step debug”.