[vox-tech] new kernel -> kernel panic

ME vox-tech@lists.lugod.org
Fri, 27 Dec 2002 15:28:20 -0800 (PST)


Good reading:
Very good for building a kernel: (good idea to read through this before
building your own.)
http://www.linux.org/docs/ldp/howto/Kernel-HOWTO.html

Details on kernel modules:
http://www.linux.org/docs/ldp/howto/Module-HOWTO/index.html

(bootloader info with LILO:)
http://www.linux.org/docs/ldp/howto/BootPrompt-HOWTO.html
(Bootloader for GRUB)
http://www.cri74.org/linux/howto/grub-howto-2.html

The above can help answer many questions you might have. :-)

(more)

Issac Trotts said:
> On Fri, Dec 27, 2002 at 01:02:00PM -0800, ME wrote:
>> This suggests that you are using CFS (Cryptographic Filesystem) for
>> your root filesystem ("/") and the new kernel does not have support
>> for it.
>>
>> 03:02 refers to device major 03 (hda) minor 2 (partition 2) or
>> /dev/hda2
>>
>> It is also possible that support for ide controllers was omited from
>> your new kernel. Verify that you have ide support in this kernel/
>
> I guess the only way to be sure is to compile the kernel myself...

With the *nix way, there is often more than one way...
With RedHat and Debian, you can often get ahold of the ".config" file
that was used when your distro compiled the kernel they give to you in
pre-compiled format. You can often find a ".config" file located in the
root of the kernel source tree. As configuration options are changed for
the kernel to be compiled, this file is updated to reflect the new
choices. It is a "human readable" text file which permits you to see
what config options were enabled, and which were not or set to be
modules.

For example, when I look at the contents of this file, I see:
[chop]
#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y
[chop]
Telling me the config file includes (=y) support fore IDE as a static
part of the kernel (not a module (=m))

Another? During kernel boot, you can look for mention of the item that
seems to be missing. In this case, look for mention of ide devices. An
example:
[chop]
Dec 14 23:44:20 hoch kernel: hda: WDC WD200BB-18DEA0, ATA DISK drive
Dec 14 23:44:20 hoch kernel: hdc: CD-224E, ATAPI CD/DVD-ROM drive
Dec 14 23:44:20 hoch kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Dec 14 23:44:20 hoch kernel: ide1 at 0x170-0x177,0x376 on irq 15
[chop]

Lacking sight of the above based on your reported error, I would expect
your kernel did not have support for your ide controller included as a
static part of the kernel.

There are other methods for when you have a booted system and can inspect
proc and examine available modules.

>> Did you build your own kernel, or use one from your vendor?
>
> The old kernel was a 2.2.18 binary from Debian.  The new one was a
> 2.4.something binary from Debian.
>
>> Did the previous kernel use an initrd disk image to preload modules
>> before switching roots?
>
> I'm not sure.  How can I find out?

Your bootloader program (LILO/GRUB) would include directives for the
kernel to use an initrd image. Such things make options like "root
filesystem software/kernel RAID support" or "NFS root with special boot
CD" easier. It permits you to have a kernel start up, load critical
modules, and the switch its root from the initrd to the device that
would not otherwise be possible (or easy) if the kernel tried to boot
directly and mount its root.

)I think most Debian are not initrd based kewrnels, but newer RedHat often
use initrd based kernels, but I could be very wrong on this point as I
usually build my own patched kernel.

For LILO, inspect /etc/lilo.conf

For GRUB? (not sure, but other members use it on this list and they may
be able to help with this.)

>> in your bootloader,m what is your root= set to?
>
> Do you know where to find bootloader,m ?

Sorry, typo. "bootloader". As I understand it, GRUB is more userfriendly
and forgiving, while LILO is older with an established user base. For
LILO, you configure your kernel's boot options (such as where it should
look for its root filesystem and if it should use an initrd or not, and
possibly specify hardware configurations and assignments (uncommon).)
With "LILO" after you modify your /etc/lilo.conf to know about your new
kernel (usually without tossing out your working kernel so you can fall
back to it if something should break) and then you run "lilo" to have
the MBR (master boot record - or wherever boot= was set to write lilo
boot info). This is how lilo is able to learn about new kernels.

Since you are using grub, it is a bit different.

Perhaps reading the man pages for grub can help you locate the grub
config file, or another user who uses grub can help you with it.

-ME



-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CM$/IT$/LS$/S/O$ !d--(  ) !s !a   (-----) C  $(    ) U    $( $) P $>
    L   $(  ) E W   $( ) N  o K w $>  >    O-@ M $ V-$>- !PS !PE Y  PGP
 t@-(  ) 5 @ X@ R- tv- b   DI    D  G--@ e >  >     h(  )>  r*>? z?
------END GEEK CODE BLOCK------
decode: http://www.ebb.org/ungeek/ about:
http://www.geekcode.com/geek.html