Remove broken opengrok links
[ikiwiki.git] / docs / howtos / howtonewkerneldeveloper / index.mdwn
index e2d0fdd..ac836fb 100644 (file)
@@ -64,7 +64,7 @@ management. It is very powerful, yet easy to use.
 *    git rebase <bar>  *Tries to merge the current active local branch onto bar.*
 
 ##VKERNELs
-
+Here is a [how to](http://www.dragonflybsd.org/docs/howtos/HowToDebugVKernels/).
 
 ##Kernel debugging
 
@@ -106,6 +106,32 @@ remote debugger.
 familiarize yourself with gdb first.
 
 
+##Adding files to to the kernel
+When you write a new subsystem or driver, requiring new files, you will have to change some files. If your intention is to add something that is not a module and can't be compiled as such, you only have to edit /usr/src/sys/conf/files. If you intend it to be loadable, you also have to edit a few Makefiles. Generally a Makefile in your directory for the module, plus edit the Makefiles in the directories above yours. In the Makefiles above your module you only have to add your directory to the path. Your Makefile should look something like this:
+
+    SRCS=   est.c
+
+    KMOD=   est
+
+    .include <bsd.kmod.mk>
+
+
+conf/files basically has the following format:
+
+    path/from/src/sys/to/your/code.c <optional / standard> [config_variable_which_enables_this_code]
+
+
+"standard" means that it will always be compiled into the kernel, while "optional" means it is optional and has to be explicitly specified in the config file for it to be built in.
+two examples would be:
+
+    dev/drm/drm_irq.c                       optional drm
+
+    libkern/strtouq.c                       standard
+
+
+The first example will compile drm_irq.c into the kernel whenever the option or driver 'drm' is specified in the config file. The second example will always compile strtouq.c into the kernel.
+
+
 ##Valuable Resources
    
 * Modern Operating Systems (Andrew S. Tanenbaum)