SuperZaxxon from SD


HelenF

Very Active Member
Joined
Jun 22, 2013
Messages
615
Location
UK
I'm trying to boot SuperZaxxon from SD on my CC unit. I did the following:

Downloaded http://openpandora.org/firmware/pandora-rootfs.tar.bz2
Formatted SD card as EXT2
As root on my Fedora Desktop, extracted the files onto the card (tar -xf /path/to/pandora-rootfs.tar.bz2)
Copied the example boot.txt from http://openpandora.org/firmware/README.txt to the root of the card
Symlinked /boot/uImage to the 2.6 one

When I boot from the card it looks like this and freezes. Where is my mistake?
 

Attachments

  • IMG_20160314_213325_crop.jpg
    IMG_20160314_213325_crop.jpg
    15.7 KB · Views: 339
For one the 2.6 Kernel is ancient, it's very possible there is some incompatibilities in a later firmware image when using the old 2.6 kernel. Maybe @notaz can chime in.
 
I tried with the other one (uImage-3) and it's still doing the same thing.
 
8GB Sandisk MicroSD. I tested it with F3 recently.
[doublepost=1457998607,1457995810][/doublepost]I started over using mkfs.ext2 instead of gparted, and added --numeric-owner to the tar command from the Slackware instructions just in case. It worked this time. So maybe it was one of those two things or maybe it was luck.

I'm trying to write some decent instructions for the wiki so might have to do it again...

Are there any other file systems it would work with?
 
Think the last time I was running SZ off an SD card, I used an ext4 partition for my rootfs. But I was running a split off boot partition with the kernel, modules and boot.txt. That I'd formatted as ext2, cos it changed relatively rarely, and it seemed simpler just to follow the instructions for that one.

But other than that I've completely forgotten how I'd set up the SD card, which is why I've not posted in this thread before.
 
As TrashyMG suggested, it was actually the kernel (if first-boot fails, I can't expect to change to the other kernel and have it work *facepalm*).

Using the 2.6 kernel for first-boot corrupts the OS.

Changing to the 2.6 kernel after first-boot, it failed to boot up, but didn't break.

----

I'd like to do a separate boot partition if anyone knows how.

----

Also, about the files:

http://openpandora.org/firmware/fullflash/ folder has all the past full-flash versions with logical file names.

http://openpandora.org/firmware/images/pandora-xfce-image-omap3-pandora.tar.bz2 is the same file as http://openpandora.org/firmware/pandora-rootfs.tar.bz2 .

http://openpandora.org/firmware/images/ folder has some things I'm not sure what they are, but doesn't seem to have any recent past bz2 images. Being able to install the previous version onto SD card seems like it might be useful - are they kept anywhere else?
 
Last edited:
I think I used the instructions here to set up my boot partition when I was using one: http://pandorawiki.org/Boot_setup#Setting_up_multiple-partition_SD_cards_for_booting.

I didn't bother with a swap partition and as previously mentioned, used ext2 and ext4 filesystems, not fat and ext2 in the example, but that doesn't change much I think. My boot.txt looked more like the first example, but it used ext2load to load the kernel from the ext2 boot partition.

There are three control points in those sample boot scripts, which you can see vary between those two examples on the wiki. First there's the root argument to your bootargs, which points at the block device containing your root fs. Then there's whether you fatload, ext2load or ext3load your kernel (I think ext3load also loads kernels from ext4 fses, but don't quote me on that). Finally there's the x:y (where x is 0 or 1 for the correct SD slot, and y is the partition number) argument to your load command. I guess also the location of your uimage may vary. Other than that it's all the same, so those are the only things you ought to be concerned with.

IIRC it took me a couple of tries to get it all working. If you have a separate boot partition, you'll also want to add it to mount at /boot in your fstab file, to keep opkg updates working seamlessly. You only need the one kernel.
 
I'd like to do a separate boot partition if anyone knows how.
That's what I use, you can find the instructions for that on the Boot setup wiki page.

My specific example:
  • 2GB card with two partitions:
    1. mmcblk0p1 (PNDBOOT): 64MB FAT
    2. mmcblk0p2 (PNDFS): 1.9GB Ext4
  • PNDFS has all the files from the rootfs archive (I actually copied them from the NAND install instead, also following the wiki instructions).
  • I copied PNDFS/boot/uImage-3 to PNDBOOT/uImage-3
  • I added PNDBOOT/autoboot.txt with the following contents:
Code:
setenv bootargs root=/dev/mmcblk0p2 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0
fatload mmc 0:1 0x80300000 uImage-3
bootm 0x80300000
 
Edit: Ignore that post. For some reason I thought the kernel module tree lived with the kernel, while instead it's in /lib/modules, so it's meant to be part of your rootfs, and the booted kernel can mount the rootfs without having the necessary kernel modules to mount it somehow.

But that's why your kernel version needs to match the version in /lib/modules, else it won't load any of your kernel modules, and various things will break.
 
Last edited:
Thanks, it makes sense now!

The SuperZaxxon bz2 has the following in /etc/fstab:
Code:
# The /boot kernel volume on the OpenPandora NAND.

ubi1:boot            /boot                ubifs      defaults              0  0
If someone does an OS update on the SD card without editing this, is the kernel on the NAND going to get changed to the wrong version?

When using a single ext2 partition, I guess we should delete this line. And with multi-partition, change it to mount the boot partition on the SD card.
 
Back
Top