Adding modules to Damn Small Linux (DSL)
This is not a simple task. Adding or compiling modules is a tricky feat when it comes to 2.4 kernels. It requires you compile the entire kernel yourself before.
I have used a diskless machine, with an NFS mount as the place where I have kept all persistent data. Mounted it at /tmp/mnt directory.
- Boot into DSL
- Mount remote NFS with no_root_squash server options
- Use mydslPanel.lua if this is the first run to download and save the packages described below to the NFS share, or
- Use mydsl-load to install packages
Installing required packages
- mydsl-load gcc-2.95.unc (could be .dsl, too)
- mydsl-load gcc1-with-libs.dsl
- mydsl-load gnu-utils.dsl
- mydsl-load kernelheaders
- Download kernel 2.4.26
Extracting the kernel
- mkdir /usr/src (if doesn’t exist already)
- cd /usr/src
- tar xzf /full/path/to/kernel/linux-2.4.26.tar.gz
- patch -p1 -d linux-2.4.26 < knoppix-kernel.patch
- chown -R dsl linux-2.4.26
Configure the kernel – as the user “dsl”
- cd /usr/src/linux-2.4.26
- make mrproper
- Get config file from DSL mirror and save it to /usr/src/config in the kernel source directory
- make menuconfig
- Go to last before bottom option in the menu – “Load alternate configuration file”
- Change the path and name of your config file. In our example – change the value to /usr/src/config
- Save and exit kernel configuraiton
- Run make dep clean bzImage
Compiling the module
I used make in rtl8168 driver source. This should cause no problems, if you have followed the previos notes
Loading the modules
You can run “insmod src/r8168.o” to load the module, however, some of the modules will require predefined modules for them to load. In the r8168 module, you must insmod crc32 modules before.
Keep the new module for later use
You don’t need to follow this entire process to load the modules on another DSL system with the same kernel running.
I will follow this up with an explenation on how to close the ISO correctly under Ubuntu, and make it work later on. The source for this specific post can be found here.