Author Topic: How Does Kexecboot Find A Kernel?  (Read 6579 times)

BerndS

  • Jr. Member
  • **
  • Posts: 65
    • View Profile
How Does Kexecboot Find A Kernel?
« on: January 11, 2009, 08:40:47 am »
Hi

I still do not understand how kexecboot decides which partition to add to the menu

My experience until now:

I installed Angstrom on the internal RAM of my C760, afterwards Ubuntu on my SD Card and then kexecboot. Then I tested kexecboot and it worked fine : I could boot either Angstrom or Ubuntu.

Than I customized my Angstrom and installed missing packages and after that kexecboot did not find the Angstrom on the internal RAM anymore - it only found the Ubuntu on the SD card.  Without a SD card kexecboot stops with

Probing /dev/mtdblock0
Probing /dev/mtdblock1
Probing /dev/mtdblock2
Probing /dev/mtdblock3
No bootable device found


So then I installed Anstrom with OPIE on my internal RAM and reinstalled kexecboot . And voila, kexecboot found the Angstrom/OPIE on the internal RAM and I could boot it. Than I customized Angstrom/OPIE and now kexecboot does not find the Angstrom on the internal RAM anymore.

In all cases I did not change the files in the /boot directory ...

Why does kexecboot do not find the Angstrom on the internal RAM?

Update 11.01.09 20:11

Now I reinstalled Angstrom with Opie on the internal RAM and afterwards reinstalled kexecboot. And kexecboot again finds the Angstrom on the internal RAM. But now it does not find the Angstrom/Opie on the SD card anymore (it does find ubuntu and Angstrom with X on the other partitions of the SD card). I do not see a difference between the boot directory in the ram and the boot directory on the SD card (partition 4; a primary partition  formated with ext2 if that matters):


root@c7x0:~$ ls -l /boot
-rw-r--r--    1 root     root           23 Oct 31 15:01 image.nfo
-rw-r--r--    1 root     root           68 Oct 31 15:01 kernel-cmdline
lrwxrwxrwx    1 root     root           13 Jan  1  1970 zImage -> zImage-2.6.24
-rw-r--r--    1 root     root      1264516 Oct 31 15:00 zImage-2.6.24

root@c7x0:~$ ls -l //media/mmcblk0p4/boot
-rw-r--r--    1 root     root           31 Jan  8  2009 image.nfo
-rw-r--r--    1 root     root           69 Jan 11  2009 kernel-cmdline
lrwxrwxrwx    1 root     root           13 Jan 11  2009 zImage -> zImage-2.6.24
-rw-r--r--    1 root     root      1264516 Oct 31 13:58 zImage-2.6.24


root@c7x0:~$ cat /boot/image.nfo
Angstroem Opie 2007.12

root@c7x0:~$ cat /media/mmcblk0p4/boot/image.nfo
Angstroem Opie 2007.12 Develop

root@c7x0:~$ cat /boot/kernel-cmdline
console=ttyS0,115200n8 console=tty1 noinitrd   dyntick=enable debug

root@c7x0:~$ cat /media/mmcblk0p4/boot/kernel-cmdline
console=ttyS0,115200n8 console=tty1 noinitrd   dyntick=enable debug


regards

Bernd
« Last Edit: January 11, 2009, 02:16:35 pm by BerndS »

speculatrix

  • Administrator
  • Hero Member
  • *****
  • Posts: 3703
    • View Profile
How Does Kexecboot Find A Kernel?
« Reply #1 on: January 15, 2009, 06:27:51 pm »
might be worth asking this in the ubuntu forum as lots of people playing with it there.

the angstrom people ignore this forum, tending to hang around on their mailing lists where they also ignore people  
Gemini 4G/Wi-Fi owner, formerly zaurus C3100 and 860 owner; also owner of an HTC Doubleshot, a Zaurus-like phone.

ant

  • Full Member
  • ***
  • Posts: 167
    • View Profile
    • http://
How Does Kexecboot Find A Kernel?
« Reply #2 on: January 16, 2009, 04:47:04 am »
Bern,

I'm pretty sure the problems with kernel not found in nand are originated by corrupted jffs filesystem.
How do you install and edit the images?

On c860 I can even install two images on nand:

flash_eraseall /dev/mtd2
flash_eraseall /dev/mtd3

nandwrite /dev/mtd2  myfirstimage.jffs2.bin
nandwrite /dev/mtd3  mysecondimage.jffs2.bin

But you can't yet use the standard images provided by openembedded...some changes are needed:
- populate /boot
- edit fstab
- remove 16bytes Sharp headers if you want to flash by hand (updater.sh does it automatically)

Please remember kexecboot/multiboot is not yet finished.
The kexecboot-kernels for c7x0 and akita were lacking the CF boot while spitz missed nand boot.
Why? Because the kernel size on Zaurus is limited...some options were compiled as module..and the work started from standard angstrom kernels.

What does it mean?
If we compile all the options the standard kernel will be too big to be flashed on nand...i.e. we'll break compatibility with Sharp layout (kernel in mtd1).

The good news is the developers are almost all convinced we should create openembedded/angstrom builds ready for multiboot.
A new release is planned very soon!

Regards

Ant

tanjian2

  • Jr. Member
  • **
  • Posts: 98
    • View Profile
How Does Kexecboot Find A Kernel?
« Reply #3 on: January 16, 2009, 09:38:10 am »
This all sounds very useful and interesting. I am currently trying to get zubuntu and pdaxrom to boot on my C3000 (spitz).
Zubuntu works fine from an SD card. Pdaxrom is actually on the microdrive with meanies magic which boots from nand then pivots to the harddrive.
I was wondering if you could help explain why I can't get the pdaxrom to boot properly?

Thanks
SL-C3000(Spitz) - pdaXii13 5.5alpha + sound enhanced kernel - MD in 1 great big partition -  Ambicom CF Wifi + USB Ethernet  and NOW Zubuntu on a 4Gb SD

BerndS

  • Jr. Member
  • **
  • Posts: 65
    • View Profile
How Does Kexecboot Find A Kernel?
« Reply #4 on: January 16, 2009, 12:37:37 pm »
Hi Ant,

Quote from: ant
I'm pretty sure the problems with kernel not found in nand are originated by corrupted jffs filesystem.

How to I check if the jffs filesystem is corrupt?

I've installed the package mtd-utils -- but there's no fsck.jffs2 in that package.

Quote
How do you install and edit the images?

I installed the image using the flash functionality of the CL760 (press okay while powering on...). After the first reboot I install additional packages with ipkg.

Regards

Bernd