View previous topic :: View next topic |
Author |
Message |
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
Posted: Sat Jul 30, 2005 1:39 pm Post subject: genkernel + initramfs + fbsplash = kernel panic |
|
|
After getting the splash screen to work again with genkernel-3.3.3 (GENSPLASH, not BOOTSPLASH option),
I now get a kernel panic:
Code: | <snip>
Freeing unused kernel memory: 184k used
.: 8: Can't open /etc/startup.conf
Kernel panic - not syncing: Attempted to kill init!
|
I get the same message on both an x86 build (Athlon XP) and an amd64 (Athlon64) box.
The problem seems to be the combination of initramfs and fbsplash; initramfs was working fine before I added GENSPLASH, and disabling the initramfs seems to let me boot okay at the moment.
Is this a bug? |
|
Back to top |
|
|
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
Posted: Sat Jul 30, 2005 1:44 pm Post subject: |
|
|
This is the grub entry that generates the error:
Code: | title Gentoo Linux (2.6.12-gentoo-r6)
root (hd0,0)
kernel /kernel-genkernel-x86-2.6.12-gentoo-r6 root=/dev/ram0 init=/linuxrc real_root=/dev/hda3 video=vesa:ywrap,pmipal,mtrr,1280x1024-32@85 splash=verbose,theme:default CONSOLE=/dev/tty1 quiet
initrd /initramfs-genkernel-x86-2.6.12-gentoo-r6
|
And the workaround:
Code: | title Gentoo Linux (2.6.12-gentoo-r6)
root (hd0,0)
kernel /kernel-genkernel-x86-2.6.12-gentoo-r6 root=/dev/hda3 video=vesa:ywrap,pmipal,mtrr,1280x1024-32@85
|
|
|
Back to top |
|
|
jmbsvicetto Moderator
Joined: 27 Apr 2005 Posts: 4734 Location: Angra do Heroísmo (PT)
|
Posted: Sat Jul 30, 2005 2:38 pm Post subject: |
|
|
Hi.
Have you tried using the following entry?
Code: | title Gentoo Linux (2.6.12-gentoo-r6)
root (hd0,0)
kernel /kernel-genkernel-x86-2.6.12-gentoo-r6 root=/dev/hda3 video=vesa:ywrap,pmipal,mtrr,1280x1024-32@85 splash=verbose,theme:default CONSOLE=/dev/tty1 quiet
initrd /initramfs-genkernel-x86-2.6.12-gentoo-r6
|
_________________ Jorge.
Your twisted, but hopefully friendly daemon.
AMD64 / x86 / Sparc Gentoo
Help answer || emwrap.sh
|
|
Back to top |
|
|
Henk Poley n00b
Joined: 19 Jul 2004 Posts: 17
|
Posted: Sat Jul 30, 2005 3:06 pm Post subject: |
|
|
Hmm, I'm seeing the same thing. Probably a bug in the initrd :-/
I'll try working around the problem by ignoring the initrd 'root' as per jmbsvicetto's instructions. |
|
Back to top |
|
|
Henk Poley n00b
Joined: 19 Jul 2004 Posts: 17
|
Posted: Sat Jul 30, 2005 3:34 pm Post subject: |
|
|
btw, the full error message is (for me):
Code: | Couldn't load font file
Couldn't load 20 pt font from (null)
FBIOSPLASH_SETPIC failed, error code 515.
Hint: are you calling'setpic' for the current virtual console?
FBIOSPLASH_SETSTATE failed error code 22.
.: 8: Can't open /etc/startup.conf
Kernel panic - not syncing: Attempting to kill init |
grub.conf entry:
Code: | title=Myth-2.6.12-suspend2-r3
root (hd0,0)
kernel (hd0,0)/kernel-genkernel-x86-2.6.12-suspend2-r3 quiet root=/dev/hda3 video=sisfb:mode:720x576x16:tvstandard:pal elevator=cfq CONSOLE=/dev/tty1 acpi_sleep=s3_bios
initrd /initramfs-genkernel-x86-2.6.12-suspend2-r3 |
[edit] Added grub.conf entry |
|
Back to top |
|
|
vincent delft n00b
Joined: 04 Jan 2003 Posts: 58 Location: Belgium
|
Posted: Sat Jul 30, 2005 7:36 pm Post subject: |
|
|
got the same problem here.
But, I can boot without initrd
Compilation was with "genkernel --udev all"
For me this sounds like a problem in the initramfs. |
|
Back to top |
|
|
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
Posted: Sat Jul 30, 2005 9:18 pm Post subject: |
|
|
jmbsvicetto wrote: | Hi.
Have you tried using the following entry?
Code: | title Gentoo Linux (2.6.12-gentoo-r6)
root (hd0,0)
kernel /kernel-genkernel-x86-2.6.12-gentoo-r6 root=/dev/hda3 video=vesa:ywrap,pmipal,mtrr,1280x1024-32@85 splash=verbose,theme:default CONSOLE=/dev/tty1 quiet
initrd /initramfs-genkernel-x86-2.6.12-gentoo-r6
|
|
This generates the "Couldn't load font file" etc. messages and kernel panic, similar to what Henk described.
Starting the splash screen early in the boot problem appears to be thoroughly broken. With the workaround I described (drop all references to the initramfs and splash parameters at boot), once the /etc/init.d/splash script runs later in the boot process you get a working splash console.
I'm going to try disabling GENSPLASH again to see if the vanilla initramfs still works (in case this was broken with genkernel-3.3.3)
UPDATE: Without GENSPLASH, I still get the kernel panic if I try and use the initramfs via "root=/dev/ram0 init=/linuxrc real_root=/dev/hda3"
Last edited by ozbird on Sat Jul 30, 2005 10:03 pm; edited 1 time in total |
|
Back to top |
|
|
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
Posted: Sat Jul 30, 2005 9:25 pm Post subject: |
|
|
vincent delft wrote: | Compilation was with "genkernel --udev all" |
Which version of genkernel?
genkernel-3.2 and above (I think) use "--udev" by default, so you can just use "genkernel all".
It should give you a message to that effect if "--udev" isn't required.
I'm using genkernel-3.3.3 and the unstable (heh) tree (ACCEPT="~arch").
Anyone getting this problem with a the stable tree (ACCEPT="arch")? |
|
Back to top |
|
|
vincent delft n00b
Joined: 04 Jan 2003 Posts: 58 Location: Belgium
|
Posted: Sat Jul 30, 2005 9:33 pm Post subject: |
|
|
I'm using the Portage of 2005/07/29.
And by emerging genkernel (stable) I've got 3.3.3.
Indeed, --udev is no more needed, but that's no the cause of the Kernel Panic.
I'm just restarting the whole installation process by looking carefuly at each steps ... we will see. |
|
Back to top |
|
|
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
Posted: Sat Jul 30, 2005 10:11 pm Post subject: Kernel parameters |
|
|
I'm just going through the output of genkernel again to make sure I understand exactly what it's asking for (it's not the first time previously working parameters stop working after a genkernel update.)
Here's what it says for me:
Code: | * Required Kernel Parameters:
* real_root=/dev/$ROOT
*
* Where $ROOT is the device node for your root partition as the
* one specified in /etc/fstab
*
* If you require Genkernel's hardware detection features; you MUST
* tell your bootloader to use the provided INITRAMFS file. Otherwise;
* substitute the root argument for the real_root argument if you are
* not planning to use the initrd...
* WARNING... WARNING... WARNING...
* Additional kernel cmdline arguments that *may* be required to boot properly...
* add "vga=791 splash=silent,theme:default CONSOLE=/dev/tty1 quiet" if you use a gensplash framebuffer ] |
I have the real_root= parameter set, but is this also implying that you don't pass root= and init= parameters?
I tried removing the init= parameter, but as I expected it panicked very quickly.
I don't see how it could boot at all if you don't specify root= unless there is some initramfs magic that initrd didn't have. |
|
Back to top |
|
|
vincent delft n00b
Joined: 04 Jan 2003 Posts: 58 Location: Belgium
|
Posted: Sat Jul 30, 2005 10:24 pm Post subject: |
|
|
still the same
Now, I'm sure, I've followed each setps as described on the installation guide.
I'm using genkernel 3.3.3, linux 2.6.12-gentoo-r6, I've used the portage of 20050729 (last one).
my grub.conf is:
Code: | default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz
title=Gentoo
root (hd0,0)
kernel /kernel-2.6.12-gentoo-r6 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda7 udev
initrd /initrd-2.6.12-gentoo-r6 |
But, if, on the grub interface, I change the grub parameters to:
Code: |
kernel /kernel-2.6.12-gentoo-r6 root=/dev/hda7
|
Than he BOOT !!!!.
Thus I think it's linked to the initrd generated by genkernel.
What to do to have something that works with genkernel ?
adding video (vga) information ? |
|
Back to top |
|
|
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
|
Back to top |
|
|
vincent delft n00b
Joined: 04 Jan 2003 Posts: 58 Location: Belgium
|
Posted: Sat Jul 30, 2005 10:47 pm Post subject: |
|
|
I've added "vga=791 splash=silent" like requested in the genkernel.log file.
But, this has no impact. Kernal panic at the same place. |
|
Back to top |
|
|
Henk Poley n00b
Joined: 19 Jul 2004 Posts: 17
|
Posted: Sat Jul 30, 2005 11:19 pm Post subject: |
|
|
According to the bugreport the following should fix it:
# emerge --sync
# emerge genkernel
be sure to get genkernel > 3.3.4, and not 3.3.3 |
|
Back to top |
|
|
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
Posted: Sun Jul 31, 2005 12:13 am Post subject: More speed, less haste |
|
|
I'm happy that it's apparently fixed (haven't tried it yet), but it still bothers me that genkernel-3.3.3 was marked stable with this bug present.
I live in the unstable tree so I expect the odd glitch, but stable tree users shouldn't be test guinea pigs; for them it's the quality, not the quantity, of the updates that count. With genkernel updates occurring on an almost daily basis, it doesn't sound anywhere near stable yet.
genkernel-3.2.9 has been out for about a week, so if there are no known issues with it that's probably the version that belongs in the stable tree.
Failing that, 3.1.6 is a fairly safe bet. |
|
Back to top |
|
|
depontius Advocate
Joined: 05 May 2004 Posts: 3509
|
Posted: Sun Jul 31, 2005 1:25 am Post subject: |
|
|
This doesn't appear to be a problem with just fbsplash. It appears to be a problem simply using initramfs.
Perhaps I don't have all the right kernel switches set, but I'm not using fbsplash, and get the same boot symptoms as the rest of you when I try to use initramfs. I'm now booting without initrd, just fine. I'm just glad I didn't really need an initrd to boot.
From what I can tell off of the kernel list, initramfs is the start of some really major boot changes, not the least of which is deprecation of non-modular kernels - all "*" that can be "M" will be "M", and the "*" will go away. The initramfs was slipped into Gentoo, almost by stealth, with 2.6.12. It has given me trouble of some form, every time I've tried to use it. I guess it's a good thing the bugs are getting hammered out now, before it becomes absolutely necesssary.
Now I've got to get my server off of devfs and onto udev, since they've deprecated it with teeth in the new kernel. Fortunately all of my other systems are udev. _________________ .sigs waste space and bandwidth |
|
Back to top |
|
|
automan n00b
Joined: 02 May 2005 Posts: 19
|
Posted: Sun Jul 31, 2005 3:42 am Post subject: |
|
|
Henk Poley wrote: | According to the bugreport the following should fix it:
# emerge --sync
# emerge genkernel
be sure to get genkernel > 3.3.4, and not 3.3.3 |
that didnt work...
is there any way for me to boot my machine without using this? |
|
Back to top |
|
|
ozbird Apprentice
Joined: 21 Oct 2003 Posts: 185
|
Posted: Sun Jul 31, 2005 5:53 am Post subject: |
|
|
automan wrote: | Henk Poley wrote: | According to the bugreport the following should fix it:
# emerge --sync
# emerge genkernel
be sure to get genkernel > 3.3.4, and not 3.3.3 |
that didnt work...
is there any way for me to boot my machine without using this? |
The missing, but implied, step is to run "genkernel all" again, and re-emerge any dependent kernel modules (e.g. nvidia-kernel).
It doesn't hurt to "rm -rf /var/tmp/genkernel" either - that will force busybox etc. to be rebuilt.
gentoo-sources-2.6.12-r7 and genkernel-3.3.5 are in the unstable tree now, and they mostly work for me.
The "Couldn't load font file" problem still exists, but doesn't break anything serious that I've noticed. |
|
Back to top |
|
|
AusGen n00b
Joined: 31 Jul 2005 Posts: 11 Location: Jervis Bay, ACT, Australia
|
Posted: Sun Jul 31, 2005 7:02 am Post subject: Still bugged as of 31 Jun 05 |
|
|
Thanks for all the above advice, removing the initrd line, and associated flags in the kernel, (root=/dev/ram0 real_root= etc...) fixes the bootup problem. I also followed the advice to emerge --sync and update genkernel to 3.3.5, but this has not fixed the problem. It appears the initramfs (initrd) is still bugged. The genkernel command I was using was :
genkernel --mrproper --lvm2 --install --bootsplash --kernname=ati_alsa --menuconfig all
(lvm2 as I have /usr /var and /home on lvm2)
Noob question: Why bother with initrd if it boots without it?
This is my first post, I've just changed over to Gentoo from Debian for my AMD64. With the exception of the above problem I've been impressed with what I've seen so far. Distcc rocks with Gentoo! |
|
Back to top |
|
|
vincent delft n00b
Joined: 04 Jan 2003 Posts: 58 Location: Belgium
|
Posted: Sun Jul 31, 2005 8:38 am Post subject: |
|
|
In my case an emerge sync has solve the problem.
To sum up, I've done:
- emerge sync
- emerge genkernel (which give me 3.3.5)
- genkernel all
- grub-install /dev/hda
- reboot. |
|
Back to top |
|
|
jaybode n00b
Joined: 31 Jul 2005 Posts: 3
|
Posted: Sun Jul 31, 2005 11:49 am Post subject: Great stuff! |
|
|
Great stuff everyone..
My first crack at Gentoo and I am mighty impressed with portage and the use support.
Just a note, the Aust. mirror is still behind in revisions. The US site sync'ed to ver. 3.3.5
Remerging Genkernal now..
Cheers, |
|
Back to top |
|
|
depontius Advocate
Joined: 05 May 2004 Posts: 3509
|
Posted: Sun Jul 31, 2005 12:48 pm Post subject: Re: Still bugged as of 31 Jun 05 |
|
|
AusGen wrote: |
Noob question: Why bother with initrd if it boots without it?
|
Decent enough question. A good explanation may take a little, if you want. Anyone else mind? (Gotta run, for now) _________________ .sigs waste space and bandwidth |
|
Back to top |
|
|
jaybode n00b
Joined: 31 Jul 2005 Posts: 3
|
Posted: Sun Jul 31, 2005 3:35 pm Post subject: Now working fine.. |
|
|
Using 3.5.5 works the trest.. cheers everyone..
Ausgen - Initrd is used mainly because of using genkernel.. this gentoo-kernel is like the Bootable CD one, in that it detects hardware etc. then boots the real kernel with all the modules it found that it needed duing the 'mini boot' from Ram disk (using Initrd)
I am probably wrong, but this is how I saw it (anyone correct me if Im wrong)
I started with building my own Kerenel, but like the idea of GenKernel so if I move my system to USB portable laptop drive.
I can then boot of 'most' computers (BIOS capable, or a floppy/CD to kick it off).
The emerge build for genkernel was stuffed - I followed the instructions. I think the ramfs-image was not loading the right kernel support for the ramdisk. These are the sort of messages (the very first one anyway) that you get when you have not compiled the correct filesystem support into the kernel that your trying to boot from.
Not bad hey, 2 weeks into Linux and I already sound like a geek.
Cheers,
J |
|
Back to top |
|
|
depontius Advocate
Joined: 05 May 2004 Posts: 3509
|
Posted: Sun Jul 31, 2005 4:29 pm Post subject: |
|
|
Jabode, you're close, but there are a few details that are off.
There are 2 ways to build a kernel, monolithic and modular. With a monolithic kernel, all of the drivers and filesystems, etc are compiled into the kernel. With a modular kernel, drivers, filesystems, etc are compiled separately, and loaded at run time. The problem with modules is that you need disk and filesystem access in order to get them. That means if your chipset disk or filesystem driver, etc is in a module, you can't get there in order to load the modules.
Enter the initrd. It's a ramdisk that's loaded with a disk image that contains the necessary drivers. You don't even really need *all* of the drivers, just enough to get disk (or network, for networked filesystems) access, in order to get at the rest of the modules. You're still using the same kernel, just loading things from a different source. Incidentally, there's an operation called pivot_root that switches you from the initrd to the real disk, once you're ready.
Why modular kernel? Because every driver makes the kernel bigger. In the old days, maybe even now, there was a maximum size, and modules were a way to get around that. Even without the maximum size, those extra drivers would just waste memory. With modules, it's possible to come up with a one-size-fits-almost-all kernel, wasting only disk space (cheap) for the modules themselves.
Why the change to initramfs? Right now, each driver needs two methods of initialization, monolithic and modular. The kernel guys would like to simplify things, and only have the one initialization method - modular. At the same time, they recognized that the initrd is a rather limited startup mechanism. So they're working toward an improvement - "early userspace," essentially like initrd, only more versatile. Once initramfs and early userspace are all in place and well bugged out, they're going to yank the monolithic initialization code. (in a few years) Drivers will get simpler, hopefully more reliable. But we'll all have to get used to using an initramfs. _________________ .sigs waste space and bandwidth |
|
Back to top |
|
|
c0p n00b
Joined: 29 Jul 2005 Posts: 56
|
Posted: Sun Jul 31, 2005 9:33 pm Post subject: |
|
|
how do i emerge an old genkernel version? i want to stick with gentoo but it doesn't seem to be working for me in 2.6-12-r6. It doesn't get my eth0 or mouse so far...haven't been able to go much further without the network reliant emerges |
|
Back to top |
|
|
|