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…
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
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.
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
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.
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.