How to upgrade GP2X's firmware

To help clear things about firmware upgrade, I'm going to explain first what I've tried without success. Then, what I did to make things works, and my understanding about this issue. Many things have already been said, some of them applicable to my case, and some of them plain wrong (at least in my case).

I own a GP2X first-edition shiped with first firmware upgrade already applied. I use it under Linux, but this is irrelevant I guess.

How I could not upgrade the firmware of the GP2X

So, like many people I tried many different SD cards to upgrade the firmware :

I was not in possession of the SanDisk by that time, but I tried the Kodac, Dane-Elec, PNY and Transcend for many times without success. By 'tried', I mean : put the card into the gp2x that's plugged via USB on the linux box, make a fat32 file system on it (whole card with mkfs -I, or after the creation of a single fat32 primary partition).

During my experimentations, I noticed something that was already noticed in web forums : the gp2x ile browser was unable to read the card when I created a partition (displays garbage instead of filenames).

As some people report success with the use of a card reader and SanDisk, I bought one (and the SanDisk, too).

How the card reader solved the problem

Mounting the old Kodak SD card onto the card reader, I could see that the table partition knew only a single FAT16 partition. Once redefined to FAT32, and the fat32 file-system (re)created with the help of mkfs, I copied gp2xkernel.img onto the card, then put it into the gp2x, turn on power, and tada!, here is this famous upgrade screen I keep hearing about !

I then tried with copying files in random order (gp2xkernel.img not the first) : it worked as well. I then tried all others cards : Transcend, SanDisk, PNY, Dane-Elec performed as well as the Kodac. All where all formated as FAT16, and that was the only problem.

How we could fix things definitively

Apparently, was happened was that the GP2X, when mounted via USB, only exports the first partition. That's why you linux can mount only '/dev/sdb' and not '/dev/sdb1' even when you are certain that there is a partition. That's why when you use fdisk to create a partition the GP2X (nor anything else I guess) can then read the files : you write the partition table in the first sector of the underlying primary partition (this cannot work).

GPH (or we) should fix the firmware to export the whole disk and not just the first partition so that we could partition the card using the gp2x as a card reader.

How I finally bricked the GP2X

Enthousiasmed by so many success (5 firmware upgrades in less that 5 minutes !), I even wanted to give a try to the 16Mb Panasonic.

Don't ever do this ! :-)

By the way, I now own 6 SD cards of many different brands. If you are interrested in some, just ask :-)