mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
add some docs from Markus Becker about adding custom kernel modules to our fine buildroot
SVN-Revision: 1739
This commit is contained in:
parent
c3625bfc7f
commit
ad3746d147
@ -17,7 +17,7 @@
|
||||
|
||||
<p>Usage and documentation by Felix Fietkau and Waldemar Brodkorb, based on uClibc Buildroot
|
||||
documentation by Thomas Petazzoni. Contributions from Karsten Kruse,
|
||||
Ned Ludd, Martin Herren.</p>
|
||||
Ned Ludd, Martin Herren. OpenWrt Kernel Module Creation Howto by Markus Becker.</p>
|
||||
|
||||
<p><small>Last modification : $Id$</small></p>
|
||||
|
||||
@ -37,6 +37,14 @@
|
||||
<li><a href="#downloaded_packages">Location of downloaded packages</a></li>
|
||||
<li><a href="#add_software">Extending OpenWrt with more Software</a></li>
|
||||
<li><a href="#links">Ressources</a></li>
|
||||
<br>
|
||||
<li><a href="#about_module">About OpenWrt Kernel Module Compilation</a></li>
|
||||
<li><a href="#kernel">Enable the kernel options</a></li>
|
||||
<li><a href="#buildroot_option">Create a buildroot option</a></li>
|
||||
<li><a href="#binary">Define the binary files for the kernel module</a></li>
|
||||
<li><a href="#control">Specify the ipkg control file</a></li>
|
||||
<li><a href="#compile">Compile the kernel module</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2><a name="about" id="about"></a>About OpenWrt Buildroot</h2>
|
||||
@ -602,5 +610,94 @@ foo-compile: bar-compile
|
||||
<a href="http://openwrt.org/">http://openwrt.org/</a></p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
<div class="titre">
|
||||
<h1>OpenWrt Kernel Module Creation Howto</h1>
|
||||
</div>
|
||||
|
||||
<h2><a name="about_module" id="about_module"></a>About OpenWrt Kernel Module Compilation</h2>
|
||||
|
||||
<p>You are planning to compile a kernel module? This howto will
|
||||
explain what you have to do, to have your kernel module installable as
|
||||
an ipkg.</p>
|
||||
|
||||
<h2><a name="kernel" id="kernel"></a>Enable the kernel options</h2>
|
||||
|
||||
<p>Enable the kernel options you want by modifying
|
||||
build_mipsel/linux/.config. We are assuming, that you already had your
|
||||
kernel compiled once here. You can do the modification by hand or by
|
||||
|
||||
<pre>
|
||||
$ cd build_mipsel/linux
|
||||
$ make menuconfig
|
||||
</pre>
|
||||
|
||||
And copy it, so your changes are not getting lost, when doing a 'make
|
||||
dirclean'. Here we assume that you are compiling for Broadcom chipset
|
||||
based devices:
|
||||
|
||||
<pre> $ cp .config ../../../target/linux/linux-2.4/config/brcm </pre>
|
||||
|
||||
</p>
|
||||
<h2><a name="buildroot_option" id="buildroot_option"></a>Create a buildroot option</h2>
|
||||
|
||||
<p>Create a buildroot option by modifying/inserting into
|
||||
target/linux/Config.in, e.g.
|
||||
|
||||
<pre>
|
||||
config BR2_PACKAGE_KMOD_USB_KEYBOARD
|
||||
tristate "Support for USB keyboards"
|
||||
default m
|
||||
depends BR2_PACKAGE_KMOD_USB_CONTROLLER
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<h2><a name="binary" id="binary"></a>Define the binary files for the kernel module</h2>
|
||||
|
||||
<p>Define the binary files for the kernel module by modifying/inserting into
|
||||
target/linux/linux-2.4/Makefile, e.g.
|
||||
|
||||
<pre>
|
||||
$(eval $(call KMOD_template,USB_KEYBOARD,usb-kbd,\
|
||||
$(MODULES_DIR)/kernel/drivers/input/input.o \
|
||||
$(MODULES_DIR)/kernel/drivers/input/keybdev.o \
|
||||
$(MODULES_DIR)/kernel/drivers/usb/usbkbd.o \
|
||||
,CONFIG_USB_KEYB,kmod-usb-core,60,input keybdev usbkbd))
|
||||
</pre>
|
||||
|
||||
Where CONFIG_USB_KEYB is the kernel option, USB_KEYBOARD is the last
|
||||
part of BR2_PACKAGE_KMOD_USB_KEYBOARD and usb-kbd is part of the
|
||||
filename of the created ipkg.</p>
|
||||
|
||||
<h2><a name="control" id="control"></a>Specify the ipkg control file</h2>
|
||||
|
||||
<p>Create e.g. target/linux/control/kmod-usb-kbd.control with content similar to this:
|
||||
|
||||
<pre>
|
||||
Package: kmod-usb-kbd
|
||||
Priority: optional
|
||||
Section: sys
|
||||
Maintainer: Markus Becker <mab@comnets.uni-bremen.de>
|
||||
Source: buildroot internal
|
||||
Description: Kernel Support for USB Keyboards
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<h2><a name="compile" id="compile"></a>Compile the kernel module</h2>
|
||||
|
||||
<p>Enable the kernel module with
|
||||
<pre>
|
||||
$ make menuconfig
|
||||
</pre>
|
||||
in TOPDIR and selecting it.<br>
|
||||
|
||||
Compile with
|
||||
<pre>
|
||||
$ make dirclean && make
|
||||
</pre>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user