I did some little things with kernel programming (or more compiling) these days.
Part of the things I did were compiling kernel because I wanted to try UML (user mode linux).
So that's what I did:
- Download the kernel configs from: http://uml.nagafix.co.uk/kernels/.
- Download kernels from kernel.org.
- untar the kernels to some directory
- cd into the main directory of the kernel
- copy the config of the kernels into main directory as .config file
- $ make ARCH=um oldconfig
- answered the necessary questions as good as I could
- $ make ARCH=um
At that point some errors appeared, so I tried to correct them.
- to help me in the debugging process I used $ make V=1 ARCH=um
- when I had some things that did not work well I used the gcc output to call it right away. For example, sometimes the architecture files would not be found right so I used -Iinclude sometimes a precompiler marks was not set correctly so I used -D__someprecompilermarks__. At some point I removed some problematic definition by using this together with a #ifndef in the header file. $ gcc ..... -Iinclude -D__someprecompilermarks__ ...
- then I also downloaded a few kernel repositories using git, though I still need to perfect this.
- I read (or skipped/read) quite a few Documentation files from the kernel or from the internet.
- I familiarised myself with the git web interface, this together with having a kernel RSS feed in my thunderbird.
And all this in one day and half together with other things.