It fetches module-source packages that have been prepared for the Debian distribution via apt and produces .deb packages.
This tutorial shows how to use module-assistant in command-line mode and in interactive mode.
I do not issue any guarantee that this will work for you!
1 Preliminary Note
In this tutorial I will demonstrate how to build the ndiswrapper kernel module for Debian Lenny. The procedure is the same for any other kernel module that module-assistant knows.
2 Using Module-Assistant In Command-Line Mode
Install module-assistant as follows:
# aptitude install module-assistant
Next we must make module-assistant download the headers of the current kernel, and some tools that are needed to build packages from source (such as build-essential, etc.). This can be achieved with the following command:
# m-a prepare
Now we update the list of available kernel modules by running:
# m-a update
server1:~# m-a update
Updated infos about 85 packages
server1:~#
The command
# m-a list
shows a list of available kernel modules in detailed form, and
# m-a -t list | grep -E '^[^ ].*\(' | cut -d " " -f 1 | sort
shows the same list in short form, e.g. as follows:
server1:~# m-a -t list | grep -E '^[^ ].*\(' | cut -d " " -f 1 | sort
acx100-source
acx100-source
affix-source
alsa-source
arla-modules-source
at76c503a-source
bcm4400-source
bcm5700-source
cdfs-src
cipe-source
cloop-src
comedi-source
cpad-kernel-source
cryptoapi-core-source
cryptoloop-source
dazuko-source
ddrmat-source
device3dfx-source
drbd0.7-module-source
drbd8-module-source
dvb-driver-source
e100-source
eagle-usb-modules-source
em8300-source
exmap-modules-source
fglrx-kernel-src
freeswan-modules-source
ftape-source
ftpfs-src
fuse-source
fwatch-modules-src
gpib-modules-source
hostap-source
hubcot-source
i2c-source
ieee80211-source
ipw2100-source
ipw2200-source
ivtv-source
kqemu-source
linux-uvc-source
linux-wlan-ng-source
lirc-modules-source
lm-sensors-source
loop-aes-ciphers-source
loop-aes-source
lufs-source
madwifi-source
mga-vid-source
misdn-kernel-source
ndiswrapper-source
nozomi-source
nvidia-kernel-legacy-source
nvidia-kernel-source
openafs-modules-source
openswan-modules-source
ov511-source
pcmcia-source
plex86-kernel-src
ppscsi-source
qc-usb-source
qla2x00-source
realtime-lsm-source
rt2400-source
rt2500-source
rt2570-source
rtai-source
shfs-source
sl-modem-source
spca5xx-source
squashfs-source
sysprof-module-source
thinkpad-source
tidev-modules-source
translucency-source
tun-source
unicorn-source
unionfs-source
userlink-source
vaiostat-source
video4linux-nw802-source
wacom-kernel-source
xdslusb-source
xlibmesa-drm-src
zaptel-source
zd1211-source
server1:~#
alsa-source
arla-modules-source
at76c503a-source
bcm4400-source
bcm5700-source
cdfs-src
cipe-source
cloop-src
comedi-source
cpad-kernel-source
cryptoapi-core-source
cryptoloop-source
dazuko-source
ddrmat-source
device3dfx-source
drbd0.7-module-source
drbd8-module-source
dvb-driver-source
e100-source
eagle-usb-modules-source
em8300-source
exmap-modules-source
fglrx-kernel-src
freeswan-modules-source
ftape-source
ftpfs-src
fuse-source
fwatch-modules-src
gpib-modules-source
hostap-source
hubcot-source
i2c-source
ieee80211-source
ipw2100-source
ipw2200-source
ivtv-source
kqemu-source
linux-uvc-source
linux-wlan-ng-source
lirc-modules-source
lm-sensors-source
loop-aes-ciphers-source
loop-aes-source
lufs-source
madwifi-source
mga-vid-source
misdn-kernel-source
ndiswrapper-source
nozomi-source
nvidia-kernel-legacy-source
nvidia-kernel-source
openafs-modules-source
openswan-modules-source
ov511-source
pcmcia-source
plex86-kernel-src
ppscsi-source
qc-usb-source
qla2x00-source
realtime-lsm-source
rt2400-source
rt2500-source
rt2570-source
rtai-source
shfs-source
sl-modem-source
spca5xx-source
squashfs-source
sysprof-module-source
thinkpad-source
tidev-modules-source
translucency-source
tun-source
unicorn-source
unionfs-source
userlink-source
vaiostat-source
video4linux-nw802-source
wacom-kernel-source
xdslusb-source
xlibmesa-drm-src
zaptel-source
zd1211-source
server1:~#
Before we pick a module to build, we should make sure that our /etc/apt/sources.list includes the contrib and non-free repositories because otherwise module-assistant might not be able to install required dependencies for the kernel module that we want to build:
# vi /etc/apt/sources.list
[...] deb http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb-src http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free [...] |
Run
# aptitude update
if you had to modify /etc/apt/sources.list.
Now we can build the kernel module. I want to build the ndiswrapper kernel module, so I run:
# m-a a-i ndiswrapper
(Please note that m-a list appends the string -source to all available modules, but we leave that string out when we build the module with m-a a-i!)
This will not only build the kernel module .deb package, but also automatically install it.
Now that the module is installed, we can load it into our kernel as follows:
# modprobe ndiswrapper
To check if it really got loaded, run:
# lsmod | grep ndiswrapper
The output should be similar to this one:
server1:~# lsmod | grep ndiswrapper
ndiswrapper 152348 0
usbcore 118160 1 ndiswrapper
ndiswrapper 152348 0
usbcore 118160 1 ndiswrapper
server1:~#
To make sure that the module gets loaded automatically whenever you boot the system, you can add it to
/etc/modules:
# vi /etc/modules
[...] ndiswrapper |
That's it!
3 Using Module-Assistant In Interactive Mode
Install module-assistant as follows:
# aptitude install module-assistant
Before we start module-assistant in interactive mode, we should make sure that our /etc/apt/sources.list includes the contrib and non-free repositories because otherwise module-assistant might not be able to install required dependencies for the kernel module that we want to build:
# vi /etc/apt/sources.list
[...] deb http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb-src http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free [...] |
Run
# aptitude update
if you had to modify /etc/apt/sources.list.
To start module-assistant in interactive mode, simply type:
# m-a
You will see the following dialogue. We must make module-assistant download the headers of the current kernel, and some tools that are needed to build packages from source (such as build-essential, etc.). To do this, select PREPARE:
Now we update the list of available kernel modules by selecting UPDATE:
Afterwards, go to SELECT:
You will see the list of available kernel modules. Pick the one you want to build by pressing the SPACE bar (I select ndiswrapper in this example), and hit Ok:
Select Yes to install/upgrade the selected source package:
Now the kernel module is being built:
After the build process is complete, select Yes if you want to install the module:
Alternatively, you can as well select INSTALL in this menu:
After you've installed the module, select BACK to go back to the list of available modules:
Select Cancel to leave the list and go back to the main menu:
In the main menu, choose EXIT to leave module-assistant:
Now that the module is installed, we can load it into our kernel as follows:
# modprobe ndiswrapper
# lsmod | grep ndiswrapper
The output should be similar to this one:
server1:~# lsmod | grep ndiswrapper
ndiswrapper 152348 0
usbcore 118160 1 ndiswrapper
ndiswrapper 152348 0
usbcore 118160 1 ndiswrapper
server1:~#
To make sure that the module gets loaded automatically whenever you boot the system, you can add it to /etc/modules:
# vi /etc/modules
[...] ndiswrapper |
That's it!
4 Links
- Debian: http://www.debian.org/
No comments:
Post a Comment