How do I load additional kernel modules during installation?
When booting an Ubuntu installation CD, what steps are needed to load a kernel module that was not included in the installer?
Specifically:
I am installing the server edition of Ubuntu Hardy 8.04.2. For networking, I have a USB cable modem, and USB cable modems require the 'cdc_ether' kernel module. This module is part of the standard Ubuntu kernel (under 'drivers/net/usb'), but it was not included in the installer and so the network can not be found or used during installation.
Under the 'pool' directory there are packages for version 2.6.24-23.46 of the kernel. I can extract the kernel module 'cdc_ether.ko' from this package and copy it to a USB flash drive. Then when the installer loads, I can switch to a shell, mount the USB flash drive, copy the kernel module into the appropriate directory in '/lib/modules', and run 'depmod'.
However, when I try 'modprobe cdc_ether', I receive a 'Invalid module format' error. If I run 'dmesg', I see the error when trying to load the kernel module: 'disagrees about version of symbol struct_module'.
I assume that the installer's kernel is the same as the main Ubuntu kernel, just excluding some of the modules? What steps am I missing or what am I doing wrong?
I looked through the livecd-tools scripts to try to get an understanding of how the kernel is packaged into the installer, but I didn't get anywhere.
Even if it's not necessary to have networking working during the installation to successfully install in my case, I'd still like to know what the correct way is to handle this, because this could happen for more important modules too.
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Ubuntu Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- actionparsnip
- Solved:
- Last query:
- Last reply: