Can't Boot with new Kernel


i need a Realtime Linux. I patched a new kernel (Kernel 2.6.20 from kernel org) with RTAI (rtai-3.5-cv) and built it. I used “make oldconfig” for the kernel configuration.

With mkinitrd -k /boot/vmlinuz-2.6.20-rtai -i /boot/initrd-2.6.20-rtai i Create a RAM disk image.

After that I tried to load the new Ramdisk image. The computer boot and then I get the message:

creating device nodes …
waiting for block device node: /dev/sda2

mount -o ro /dec/sda2
mount: special device /dev/sda2 does not exist
unable to mount root filesystem on /dev/sda2
Kernel Panic - not synching: Attempted to kill init!
<0>Rebooting in 42 seconds…

Actually I use kernel 2.6.10 with rtai 3.2


Try to repair your system with installation CD… maybe it helps

I don’t have the cd.

Can I repair the system without it?

have you changed ahci settings in bios? this could cause the problem.
or the problem could be that sda2 is not root partition
boot some other system (e.g. from live cd) and post
fdisk -l (as root)
and the /etc/fstab content

fdisk -l:

/dev/sda1   1   129   1036161   82 Linux swap/Solaris
/dev/sda2  130 9729  77112000   83 Linux

cat /etc/fstab:

/dev/sda2   /             reiserfs acl,user_xattr  1 1
/dev/sda1   swap          swap     pri 42  0 0
devpts      /dev/pts      devpts   mode=0620,gid=5  0 0
proc        /proc         proc     defaults  0 0 
usbfs       /proc/bus/usb usbfs    noauto  0 0
sysfs       /sys          sysfs    noauto  0 0
/dev/dvdram /media/dvdram subfs    fs=cdfss,ro,procuid,nosuid,nodev,exec,iocharset=utf8  0 0
/dev/fd0    /media/floppy subfs    fs=floppyfss,procuid,nodev,nosuid,sync  0 0

I can boot the original kernel and a 2.6.10 kernel with rtai 3.2 patch (ramdiskimage). I didn’t create the 2.6.10 kernel with rtai 3.2. A other person did that.
Now I need rtai 3.5.

ok there seems to be problem with sda2 partition. it isn’t set like active or bootable.

boot hirens boot cd and go to partition tool > acronis… there you can set the option active/boot for sda2 partition.

I think i understand you, it seems wrong.

But the original Linux and the other ram disk work.
They are on sda2 too and i can boot them.

Why work these two Systems?

take a look at

/dev/sda1 missing - Linux Forums

“Alert! /dev/sda1 does not exist” when booting a new kernel -](

Ok, Yast tells me that i Have a WD800JD-23LS harddrive:

Driver: ata_pixx

Where can i find the ata_pixx in the menuconfig?

run make menuconfig
go down to device drivers
then SATA drivers
set libata as a module
find ata_piix set it as a module or it shows up as Intel piixn in menuconfig
recompile and you’re good to go

thats what i found on internet

Ok, i try it. I compiling just now, then i will test it.

I found the ata_piix, but i do not found anything with libata. I used the “/” for searching in menuconfig, but there was anything with libata.

On 10/21/2009 08:46 AM, tom321 wrote:
> Ok, i try it. I compiling just now, then i will test it.
> I found the ata_piix, but i do not found anything with libata. I used
> the “/” for searching in menuconfig, but there was anything with libata.

It took a lot of traffic to get to something approaching the right
answer. I suspect that you do not understand what ‘make oldconfig’
does. If there is an existing configuration file present, it adds any
configuration variables in the new kernel that are missing from that
version of .config. If .config does not exist, it takes the default
configuration for that architecture and then fills in the missing
variables. The default configuration is good for testing the kernel
build process, but it is unlikely to work on a real computer.

The configuration of the currently running kernel is found at
/proc/config.gz. You should always copy that to the kernel source
directory, decompress it, and copy the resulting file to .config. Then
‘make oldconfig’. This procedure will not always work if the running
kernel and the new target differ by too much, but it is a good start.


I did

cat /proc/config.gz | gunzip > .config
make oldconfig

But it doesn’t work yet. Have someone other ideas

Nobody uses RTAI and especially not kernels as old as 2.6.20. (Unless you live in Redhatland.)
See RT Kernel Instructions - openSUSE .

Have a look on this document, chapter 2:

See chapter 1. They recommend it, not require it. Also note the age of that document - it is for SUSE Linux 10. RTAI has always been a pain in the neck to compile, and RT has progressed quite a lot in the last year.