Gubbio's new kernel
27 May 2002

On 25 May 2002, I got lm_sensors 2.6.3 from http://www2.lm-sensors.nu/~lm78/download.html; see FAQ.

I copied my 2.4.16 linux kernel source from /home/steen/mnt/giant/src/linux-2.4.16 to /usr/src/linux and recompiled it to get the i2c part, needed for the hardware monitoring.

First build

I first rebuilt the 2.4.16p kernel on 25 May 2002, in effect modifying my previous and working setup.

Instructions: http://www.desktop-linux.net/kernel.htm

I relied on my notes at 2001-12-29_Kernel.html

You could have done make mrproper first! It removes old dependency files.

"If you want to carry your existing configuration to a new version with minimal work, use "make oldconfig", which will only ask you for the answers to new questions." I could have done this, but wanted to make some changes.

make xconfig

  • removed power management support, including ACPI
  • enabled APIC support (Advanced Programmable Interrupt Controller)
  • enabled module support
  • set processor family to PIII-Celeron
  • enabled network packet filtering (replaces ipchains)
  • enabled IPv6
  • enabled appletalk
  • added i2o device support, with all options (later moved to modules)

Now, since the processor support was for PII rather than my current PIII, it could be that my upgrade will work better now.

I should also be able to set up a firewall.

The i2o devices are to support motherboard monitoring with lm_monitor (they need them as modules only).

make dep

No problems reported

make bzImage

At the end of the compiling process I got this:

Root device is (22, 7)
Boot sector 512 bytes.
Setup is 4644 bytes.
System is 1162 kB
warning: kernel is too big for standalone boot from floppy

I may have done one or two things as modules -- not sure about this, and couldn't tell from the printout! Anyway, I went through the motions:

If you configured any of the parts of the kernel as `modules', you will have to do "make modules" followed by "make modules_install". Read Documentation/modules.txt for more information. For example, an explanation of how to use the modules is included there.

I then copied bzImage from /usr/src/linux/arch/i386/boot -- it is 1195589 large, or 1.2MB -- to /boot and renamed it kernel-2.4.16p2

I then copied the system map /usr/src/linux/System.map to /boot and renamed it System.map-2.4.16p2

This could be a big problem -- the kernel may need the system map to be called System.map-2.4.16, as the current system map is called. To safeguard the previous kernel, I therefore renamed the current (30 December 2001) system map System.map-2.4.16p and the new one should probably become System.map-2.4.16 -- but for the moment I left it as System.map-2.4.16p2.

Instructions for mounting lilo on a floppy: http://www.geocities.com/ariyahidayat/essays/linux_in_floppy.htm

In the end I decided to just use YaST2, as I have before. I went to YaST Control Center and chose Bootloader configuration.

In YaST's lilo editor, I removed "disableapic" since this is now enabled, but I left hdd=ide-scsi -- make sure this should really be hdd!

The root is /dev/hdc7 and the initrd is /boot/initrd.

The video mode was set to 788, which is 800x600x64k -- I set it to 791, which is 1024x768x64k. See http://www.linux-quebec.org/archives/aide/msg15636.html for a list of the modes.

The floppy drive is at /dev/fd0 and is defined as boot. You should make a copy of this floppy! I wrote the new values to a new floppy rather than to the old one, so the old is my security backup that will only boot the 30 December 2001 kernel (and the other exiting options).

I then ran lilo, just to be on the safe side, and got

Added linux
Added failsafe
Added memtest86
Added Linux 2.4.16p1
Added Linux 2.4.16p2 *
Added windows

That should do it. I couldn't mount the floppy, but gave it a try anyway. To be super safe I changed the name of the system map from 2.4.16p2 to 2.4.16.

The system boots fine, but I get errors about modprobe -- I later discover this is because I selected the kernel to probe for modules at startup. I also got other funny error messages in xconsole, though performance seemed fine.

Second build

On 26 May 2002, I made a new kernel, and got some new errors relating to the configuration. I guess I'm not a big fan of YaST2.

Useful list of commands -- http://www.ss64.demon.co.uk/bash/

The error message screen is called xconsole and can be started by running this command.

I decided to stop using XFS, the x-font server, as it doesn't really seem to be required -- see /etc/X11/fs/config, where it's labeled a security risk. I set START_XFS="no" in rc.config.

I also set START_SMB="no" -- this could be the cause of the "netbios-ssn/tcp (2): bind: Address already in use" error message I get hundreds of, as samba is also started in inetd.

In /etc/inittab I set initial runlevel to 3 -- SuSE had set it to 5. I'm looking for where modules are managed. I found /etc/modules.conf and used

grep char-major-116 -d recurse *

to find the lines from the modprobe errors:

May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-slot-1
May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-service-1-0
May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-slot-1
May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-service-1-0

I found the following on SuSE - http://sdb.suse.de/en/sdb/html/thallma_kde2_mixer.html:

By default KDE is testing the system for two sound cards. As you only have one card (sound-slot-0) installed, you get the message that the other is missing, along with the module that drives it.

You can ignore the message, because it is not an error message or you can change this in the KDE 2.0 control-center under:

-> Sound
-> Mixer

Here you'll find the Option "Maximum count of tested devices per mixer" which is on the value "2". Change the value to "1" and confirm with "OK". At the next KDE-Start the message won't occur anymore.

Pretty stupid, eh? I tried that; the same could likely be accomplised by adding this to /etc/conf.modules:

options snd snd_cards_limit=1

Here is a long mail on making Soundblaster work.

These are remaining errors:

May 26 18:24:38 gubbio modprobe: modprobe: Can't locate module char-major-116
May 26 18:23:42 gubbio modprobe: modprobe: Can't locate module char-major-10-134

The file file://localhost/usr/src/linux/Documentation/devices.txt has a full list of all the devices -- 10-134 = /dev/apm_bios Advanced Power Management BIOS, which I've not asked for, and 116 is the Advanced Linux Sound Driver (ALSA).

So this means the module for ALSA is missing, as is the APM BIOS -- I obviously don't need either, and should find a way to switch off modules.

Notes from modules.conf:

I found alias char-major-116 snd, but I didn't find 10-134, so this may not be the right place after all. Here is the stuff that looks specific to my configuration:

alias usb-hostadapter usb-uhci

options snd-card-emu10k1 snd_index=0
options snd snd_cards_limit=1 snd_major=116

# gZD2.cPwn1UGeRUA:CT4850 SBLive! Value
alias snd-card-0 snd-card-emu10k1

# YaST2: sound system dependent part
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-11 snd-mixer-oss
alias sound-service-0-12 snd-pcm-oss

Still, this doesn't seem to match my error messages. When I typed modprobe I got this:

Note: /etc/modules.conf is more recent than /lib/modules/2.4.16/modules.dep

I went to /lib/modules to look -- there's not much. It looks like the only thing I did as a module this time is ip6table_filter -- pretty marginal. In SuSE's kernel there are what looks like hundreds of modules, but my grep is not pulling up anything even there.

For what happens at bootup, see /etc/init.d/ and the README file there -- the rest are all shell scripts.

gawk Find and Replace text within file(s)
grep Search file(s) for text (see grep --help)

I added AllowedAddresses = 128.97.184; to lisarc -- the syntax may be wrong.

Various

Try testparm to get your samba settings.

Errors before the new kernel:

kernel: mtrr: 0xd8000000,0x2000000 overlaps existing 0xd8000000,0x1000000
gubbio inetd[901]: netbios-ssn/tcp (2): bind: Address already in use
SuSEpersonal-firewall: neither ipchains nor iptables are available. Aborting.
rpc.nfsd: nfssvc: error Function not implemented
rpc.mountd: Caught signal 15, un-registering and exiting.

My attempt to mount the floppy:

kernel: FAT: bogus logical sector size 5376
kernel: VFS: Can't find a valid FAT filesystem on dev 02:00.

Font errors:

/usr/X11R6/bin/xfs notice: listening on port 7100
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/japanese:unscaled (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/baekmuk:unscaled (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/PEX (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/cyrillic (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/latin2/misc (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/latin2/75dpi (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/latin2/100dpi (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/latin2/Type1 (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/latin7/75dpi (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/ucs/misc (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/ucs/75dpi (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/ucs/100dpi (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/hellas/misc (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/hellas/75dpi (unreadable)
/usr/X11R6/bin/xfs notice: ignoring font path element
/usr/X11R6/lib/X11/fonts/hellas/100dpi (unreadable)/usr/X11R6/bin/xfs
notice: ignoring font path element /usr/X11R6/lib/X11/fonts/hellas/Type1
(unreadable)

A typical session -- this is from /var/log/messages

May 25 17:15:32 gubbio syslogd 1.4.1: restart.
May 25 17:15:36 gubbio /usr/sbin/cron[494]: (CRON) STARTUP (fork ok)
May 25 17:15:36 gubbio rpc.statd[536]: Version 0.3.1 Starting
May 25 17:15:37 gubbio rpc.nfsd: nfssvc: error Function not implemented
May 25 17:15:37 gubbio inetd[592]: netbios-ssn/tcp (2): bind: Address already in use
May 25 17:15:37 gubbio kernel: klogd 1.4.1, log source = /proc/kmsg started.
May 25 17:15:37 gubbio kernel: Inspecting /boot/System.map-2.4.16
May 25 17:15:37 gubbio kernel: Loaded 15417 symbols from /boot/System.map-2.4.16.
May 25 17:15:37 gubbio kernel: Symbols match kernel version 2.4.16.
May 25 17:15:37 gubbio kernel: No module symbols loaded - kernel modules not enabled.
May 25 17:15:37 gubbio kernel: eth0: link is back. Enabling watchdog.
May 25 17:15:37 gubbio kernel: eth0: Setting full-duplex based on negotiated link capability.
May 25 17:15:37 gubbio SuSEpersonal-firewall: neither ipchains nor iptables are available. Aborting.
May 25 17:15:53 gubbio kernel: mtrr: 0xd8000000,0x2000000 overlaps existing 0xd8000000,0x1000000
May 25 17:15:53 gubbio kernel: mtrr: 0xd8000000,0x2000000 overlaps existing 0xd8000000,0x1000000
May 25 17:16:41 gubbio sshd[824]: Accepted password for ROOT from 128.97.184.152 port 1084 ssh2
May 25 17:17:05 gubbio init: Switching to runlevel: 6
May 25 17:17:07 gubbio rpc.mountd: Caught signal 15, un-registering and exiting.
May 25 17:17:09 gubbio sshd[254]: Received signal 15; terminating.
May 25 17:17:09 gubbio kernel: Kernel logging (proc) stopped.
May 25 17:17:09 gubbio kernel: Kernel log daemon terminating.
May 25 17:17:10 gubbio exiting on signal 15

Here we go after the new kernel:

May 26 18:23:36 gubbio syslogd 1.4.1: restart.
May 26 18:23:39 gubbio /usr/sbin/cron[468]: (CRON) STARTUP (fork ok)
May 26 18:23:40 gubbio rpc.statd[511]: Version 0.3.1 Starting
May 26 18:23:40 gubbio rpc.nfsd: nfssvc: error Function not implemented
May 26 18:23:41 gubbio kernel: klogd 1.4.1, log source = /proc/kmsg started.
May 26 18:23:41 gubbio kernel: Inspecting /boot/System.map-2.4.16
May 26 18:23:41 gubbio kernel: Loaded 19404 symbols from /boot/System.map-2.4.16.
May 26 18:23:41 gubbio kernel: Symbols match kernel version 2.4.16.
May 26 18:23:41 gubbio kernel: No module symbols loaded.
May 26 18:23:41 gubbio kernel: eth0: link is back. Enabling watchdog.
May 26 18:23:41 gubbio kernel: eth0: Setting full-duplex based on negotiated link capability.
May 26 18:23:41 gubbio inetd[570]: netbios-ssn/tcp (2): bind: Address already in use
May 26 18:23:42 gubbio SuSEpersonal-firewall: neither ipchains nor iptables are available. Aborting.
May 26 18:23:42 gubbio modprobe: modprobe: Can't locate module char-major-10-134
May 26 18:23:44 gubbio kernel: mtrr: 0xd8000000,0x2000000 overlaps existing 0xd8000000,0x1000000
May 26 18:23:44 gubbio kernel: mtrr: 0xd8000000,0x2000000 overlaps existing 0xd8000000,0x1000000
May 26 18:23:45 gubbio kernel: eth0: no IPv6 routers present
May 26 18:24:28 gubbio PAM-unix2[625]: session started for user root, service xdm
May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-slot-1
May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-service-1-0
May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-slot-1
May 26 18:24:37 gubbio modprobe: modprobe: Can't locate module sound-service-1-0
May 26 18:24:38 gubbio modprobe: modprobe: Can't locate module char-major-116
May 26 18:24:38 gubbio last message repeated 7 times
May 26 18:26:03 gubbio kernel: EXT2-fs warning: mounting fs with errors, running e2fsck is recommended
May 26 18:33:41 gubbio inetd[570]: netbios-ssn/tcp (2): bind: Address lready in use

These problems were largely corrected by a second build, except that I never fixed the mtrr problem.

Linux Loadable Kernel Module HOWTO: http://www.tldp.org/HOWTO/Module-HOWTO/

So I rebuilt the kernel, since I believed I had included APM by mistake. Now, after doing a make mrproper, I discovered to my dismay that I had lost all previous selections. I also discovered that what I need for the hardware monitoring is i2c, not 12o -- a little nearsighted there! But it horrifies me to think I may have left a vital component out -- this may not be a workable kernel.

Instead of using SuSE, I just edited /etc/lilo.config this time, and then ran lilo -- this looks fine, and all you need is a bootable floppy, which I already have. It doesn't seem to contain much.

The Linux Kernel HOWTO: http://www.tldp.org/HOWTO/Kernel-HOWTO.html.

Samba double-loading is a weird one -- it goes away if I nix it from rc.config and leave it in inetd.conf. It won't start on its own that way, but I just start it manually with rcsamba start and it works fine. Didn't get any help from the otherwise excellent Using Samba: http://ieee.uwaterloo.ca/UsingSamba/index.html.

Samba -- after nixing it from rc.config, but keeping it in inetd, it didn't start on its own. I started it with this command:

rcsamba start

Using this method, I finally got rid of the error messages.

More on the video modes at startup -- file://localhost/usr/src/linux/Documentation/fb/vesafb.txt

You can use 0x317 for the 1024x768 format -- or you can use the decimal version, which is perhaps what you have now.

Try video=vesa:ywrap

Using framebuffer devices on Intel platforms: http://www.tldp.org/HOWTO/Framebuffer-HOWTO-5.html

This second build works great and has very few error messages -- just the mtrr. Some guy had a script to fix this on 5 Jan 2001 on the linux kernel discussion board; I wrote to ask about it but the mail bounced.

I attempted to run this kernel on cyberspace, in the wee hours, but found to my not-surprise that nothing worked: in fact, this kernel lacks cyberspace's network card driver, video card driver, and sound card driver. I was intending to give cyberspace the kernelspace NFS.

Third build

My third build, on 27 May 2002, was simple and painless: I simply turned the i2c components into modules and copied everything as usual -- that is to say, the bzImage, the System.map, and for larks, the .configure file. I also did make modules and make modules_install of course; the i2c are the only modules.

This looks quite successful, and I made the lm-sensors work too.

Fourth build

On 30 May 2002 I rebuilt the kernel, hoping to make fdisk -l work -- there's some subtle problem.

Help on modules: http://www.lysator.liu.se/~forsberg/linux/chapter3.html#MODULES

depmod -a

I made a disk for partitioning the drive using GNU parted; see help. However, I couldn't make it resize the hdc7 partition. See recovering from corrupt filesystem (local guide). Details.

Fifth build

On 3 June 2002 I added some bits regarding the scsi emulator and make the CDRW finally work! This was 2.4.16m4. I made some final tweaks and arrived at a successful build, 2.4.16m5.


 

 

top
Debate
Evolution
CogSci

Maintained by Francis F. Steen, Communication Studies, University of California Los Angeles


CogWeb