How to just add a module (not included in .config) to my current kernel?

Asked by Joe Pimentel

I have tried and googled a lot over ubuntu forums, kernel forums, asked on ircs and etc, etc and forgive-me but cannot find an answer to my questions.
I am using Ubuntu Hardy 8.04 kernel linux-image-2.6.24-16-generic and I become with the need to load the zaurus module to be able to connect my cellphone (Motorola A1200) via usb and have this module to automatically create the interface usb0 so I can telnet or ssh into the cellphone.
The current line in .config:
$ grep -i zaurus /boot/config-2.6.24-16-generic
# CONFIG_USB_NET_ZAURUS is not set

I had tried to generate the entire kernel using the Ubuntu Wiki procedure [https://help.ubuntu.com/community/Kernel/Compile?highlight=(kernel)], but even when sometimes I had succeeded (most of times it does not work for me) when the systems brings up other devices like wireless network and sound become off. I spent also more than 4 hours each try to do it and used more than 2GB of disk space (no space left on device / ... etc) :(

So ... I ask here: Is there a way to build just the module zaurus and load it at boot time? Someone can point me the right documentation to do that?

Motorola had released some interesting cellphones that uses embedded Linux distribution, so I believe this need will become more and more important to a number of Motorola customers and Ubuntu users.

I would like also to ask where is the right place to ask the kernel maintainers to add this module to the generic kernel by default.

Tks for the answers (if any)!

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu Edit question
Assignee:
No assignee Edit question
Solved by:
Joe Pimentel
Solved:
Last query:
Last reply:
Revision history for this message
Bhavani Shankar (bhavi) said :
#1

Hello

A. Linux kernel follows modular kernel design. Loadable Kernel Modules (LKM) are object files that contain code to extend the running kernel, or so-called base kernel. LKM's are typically used to add support for new hardware, filesystems etc.

Loading a kernel module is an essential task. File /etc/modules

The configuration file consists of a set of lines. All empty lines, and all text on a line after a '#', will be ignored.

This file is used - if new hardware is added after installation and the hardware requires a kernel module, the system must be configured to load the proper kernel module for the new hardware.

For example, if a system included an IDE CD-ROM, the module configuration file contains the following 3 lines:
$ sudo gedit /etc/modules
Append following lines:
ide-cd
ide-core
cdrom

Save and close the file. Reboot the system.

Regards

Bhavani Shankar.

Revision history for this message
John Rose (johnaaronrose) said :
#2

Joe,

First you need to change '# CONFIG_USB_NET_ZAURUS is not set' to 'CONFIG_USB_NET_ZAURUS=y'

Take a look at
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/156581

As you'll see from the last comment, I've forgotten a vital step(s) in the procedure of compiling & installing zaurus.ko.

I hope that you can work it out! Fortunately, I no longer need zaurus.ko as I've changed to the 2.6 kernel on my Zaurus pda which uses different .ko's (which are already in Hardy). Please let me know how you get on.

Revision history for this message
John Rose (johnaaronrose) said :
#3

Joe,

I've just remembered where the vital step details are. They're in the answer to Ubuntu question 31850.

Revision history for this message
Joe Pimentel (joe-b-pimentel) said :
#4

Thank you very much Jhon Rose.

I follow you link and the wonderful detailed procedures that yens so carefully provided about the solution.
It worked in less than 10 minutes (I would love if I had found this issue before the last weekend :/ )

Thaks again ... unbelievable how easy was to do it ...

Joe