[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: modules not loaded after recompiling kernel



On Thu, 15 May 2003 11:19:08 +0100
Wei Wang <ww220@cam.ac.uk> wrote:

> May 15 10:28:57 china kernel: Inspecting /boot/System.map-2.4.20third
> May 15 10:28:57 china kernel: Loaded 16610 symbols from
> /boot/System.map-2.4.20third. May 15 10:28:57 china kernel: Symbols match
> kernel version 2.4.20. May 15 10:28:57 china kernel: No module symbols
> loaded.

In menuconfig, in the "Loadable module support" section, make sure "Enable
loadable module support" and "Kernel module loader" are both selected.

> 
> In kernel 2.4.18 boot, lsmod gives:
> iptable_filter          1728   0 (autoclean) (unused)
> ip_tables              10432   1 [iptable_filter]
> agpgart                29824   3 (autoclean)
> ide_cs                  3424   1
> ds                      6624   2 [ide_cs]
> i82365                 22416   2
> pcmcia_core            41408   0 [ide_cs ds i82365]
> eepro100               17264   1
> keybdev                 1664   0 (unused)
> usbkbd                  2848   0 (unused)
> input                   3072   0 [keybdev usbkbd]
> usb-uhci               20708   0 (unused)
> usbcore                48032   0 [usbkbd usb-uhci]
> 
> 
> It would be too much pain to dump my whole /usr/src/linux/.config here. So
> I'll just pick some:
> 
> #
> # Networking options
> #
> CONFIG_PACKET=y
> # CONFIG_PACKET_MMAP is not set
> CONFIG_NETLINK_DEV=m
> # CONFIG_NETFILTER is not set
> # CONFIG_FILTER is not set
> CONFIG_UNIX=y 
> CONFIG_INET=y
> CONFIG_IP_MULTICAST=y

In "Networking Options" you should enable "Socket Filtering", which will set
CONFIG_FILTER. This is needed for at least some DHCP setups.

> #
> # IEEE 1394 (FireWire) support (EXPERIMENTAL)
> #
> CONFIG_IEEE1394=m
> CONFIG_IEEE1394_OHCI1394=m
> CONFIG_IEEE1394_VIDEO1394=m
> CONFIG_IEEE1394_SBP2=m
> 
> CONFIG_IEEE1394_ETH1394=m
> CONFIG_IEEE1394_DV1394=m
> CONFIG_IEEE1394_RAWIO=m
> CONFIG_NETDEVICES=y
> 
> #
> # Ethernet (10 or 100Mbit)
> #
> CONFIG_NET_ETHERNET=y
> CONFIG_NET_PCI=y
> CONFIG_EEPRO100=y
> 
> 
> I didn't put Ethernet as M. Is it compulsory to put it as M?

No; in fact it isn't possible; CONFIG_NET_ETHERNET is either Y or N.
Generally "< >" indicates the option can be enabled as a module; "[ ]"
indicates the option is either on or off.

This is explained in the file /usr/src/linux/scripts/README.Menuconfig, and
in the legend at the top of the menuconfig window.

> I was reading Kernel HOWTO but it doesn't say much about
> what to choose and what everything means in make menuconfig.
> So is there any document that explains the options in makemenuconfig?
> For example, Which configuration is for ip_table?

iptables is also known as netfilter; to enable support turn on the fourth
option in "Networking options" is "Network packet filtering".
 
> Also since the kernel 2.4.18 from CD installation works fine in
> everything, I wonder how I can see the configuration of this binary kernel
> that I'm running in? Is it's .config file still somewhere in the system? I
> guess if I could have a look at it, I could copy most of it to my new
> kernel configuration. 

There *are* silly questions, but yours are not among them.

In Debian kernel configurations are preserved in /boot. To see what
configuration was used for 2.4.18-bf2.4 do the following:

1. Move your config to another file:
bash:/usr/src/linux$ mv .config config-save

2. Copy the bf2.4 config:
bash:/usr/src/linux$ cp /boot/config-2.4.18-bf2.4 .config

3. Run menuconfig. (Actually xconfig is probably better for people who
aren't familiar with kernel configuration.)

Debian has a nifty program called make-kpkg to make managing kernels easier,
and there's a newbiedoc for using it:

http://newbiedoc.sourceforge.net/system/kernel-pkg.html

Kevin



Reply to: