Talk:Firmware Upgrade
Contents |
Concepts
To keep the firmware update page clean concentrate on information for upgrading the actual firmware.
- Move upgrade information for older firmware to the firmware history page.
- Formatting the SD-Card with FAT32 is not part of the upgrade process, normaly you need that information only once and it is depending on your operating system. Same for the list of compatible SD-cards. Maybe that could be part of the FAQ, it is static information. Upgrading may change on next releases. -Double7 13:08, 28 April 2006 (PDT)
Compatible SD Cards
Please don't include a list of compatible SD cards on this page, those belong on SD card compatibility. Thanks. -Andrew j w 14:00, 1 December 2005 (GMT)
Trying newfs_msdos on OSX
The gist of the following: a new (PNY brand) 1GB card will not upgrade the GP2X firmware. In the following I record many (so far unsuccessful) attempts to try and get to the bottom of this problem. -- Araneidae 19:32, 29 November 2005 (GMT)
I've tried using the command newfs_msdos -F32 /dev/disk1 to reformat my SD card. OSX still has no problems seeing it and writing to it, but now the GP2X cannot see it at all. Here is what newfs_msdos had to say:
$ newfs_msdos -F32 /dev/disk1 newfs_msdos: warning: /dev/disk1 is not a character device /dev/disk1: 2008200 sectors in 251025 FAT32 clusters (4096 bytes/cluster) bps=512 spc=8 res=32 nft=2 mid=0xf0 spt=32 hds=128 hid=0 bsec=2012160 bspf=1962 rdcl=2 infs=1 bkbs=6
Maybe that wasn't so smart: I should have newfs'd /dev/disk1s1. So, I use Disk Utility to erase the disk (and get my s1 back) and then
$ newfs_msdos -F32 /dev/disk1s1 newfs_msdos: warning: /dev/disk1s1 is not a character device /dev/disk1s1: 2008192 sectors in 251024 FAT32 clusters (4096 bytes/cluster) bps=512 spc=8 res=32 nft=2 mid=0xf0 spt=32 hds=128 hid=0 bsec=2012152 bspf=1962 rdcl=2 infs=1 bkbs=6
A bit better. Now the GP2X can read the card, but it is back to being an "unknown device" on USB (and I'm not even going to try the firmware upgrade at this point). I'll see if I get better luck on a colleague's Linux machine tomorrow. --Araneidae 09:59, 27 November 2005 (GMT)
- I know for a fact the linux command works perfectly, as it is what I used to format a card to upgrade my own GP2X. However, the OSX command was taken based on the advice of a knowledgeable friend and OSX user, so take it with a grain of salt.
- Iignotus 17:26, 27 November 2005 (GMT)
- Well, I got a colleague to format it as FAT32 on Windows XP, and no go. I am now at a complete loss. --Araneidae 17:14, 28 November 2005 (GMT)
According to my expert friend Rorothetroll, the correct device is the raw device (rdisk1s1, not disk1s1).
If you don't have the first partition s1, you can use fdisk like this:
sudo fdisk -e /dev/rdisk1 auto dos write quit
When the finder detects the SD card, choose Ignore to abort the mount. Then:
mkdir ~/test sudo newfs_msdos -F 32 -v "GP2X" /dev/rdisk1s1 sudo mount_msdos /dev/disk1s1 ~/test cp gp2xkernel.img ~/test sudo umount ~/test
--Titousensei 06:39, 29 November 2005 (GMT)
I'm going to tread very slowly and carefully here to see if we can bottom out this problem. First of all, I've looked at sector 0 of the SD card, and it looks like a standard MBR! Oh good: let's get out my ancient DOS reference manual and see what we have.
# fdisk /dev/rdisk1 Disk: /dev/rdisk1 geometry: 998/32/63 [2012160 sectors] Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 1: 0B 0 0 9 - 998 3 3 [ 8 - 2012152] Win95 FAT-32 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused # dd bs=512 count=1 if=/dev/rdisk1 2>/dev/null | hexdump -C 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001c0 09 00 0b 03 c3 e6 08 00 00 00 f8 b3 1e 00 00 00 |................| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.| #
Promising. Now let's see what `fdisk -e` offers.
# fdisk -e /dev/rdisk1 fdisk -e /dev/rdisk1 fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory Enter 'help' for information fdisk: 1> auto dos fdisk:*1> print Disk: /dev/rdisk1 geometry: 998/32/63 [2012160 sectors] Offset: 0 Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ *1: 0C 0 1 1 - 998 3 3 [ 63 - 2012097] Win95 FAT32L 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused #
Most intruiging. It's not the same: I think I'll go with that and see what happens, and if that doesn't work maybe I'll try id 0B instead -- only I can't think how to do that. Hmm. --Araneidae 19:03, 29 November 2005 (GMT)
Damnation! OSX is really getting in my way here. I immediately get two popups: one complaining I removed the device without unmounting it (very true, the damn thing will automount), and a very interesting second one saying that it doesn't recognise the disk anymore. Hmmm.
Nope. I've just done the newfs and copied over the .img, booted the GP2X -- and no change. Let's see if I can change the partition id.
NO! It still doesn't work!!! Here's a complete transcript of what I did, and it still didn't upgrade the firmware (for # read `sudo`, by the way). Good grief.
# fdisk -e /dev/rdisk1 fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory Enter 'help' for information fdisk: 1> print Disk: /dev/rdisk1 geometry: 998/32/63 [2012160 sectors] Offset: 0 Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ *1: 0C 0 1 1 - 998 3 3 [ 63 - 2012097] Win95 FAT32L 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused fdisk: 1> setpid 1 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ *1: 0C 0 1 1 - 998 3 3 [ 63 - 2012097] Win95 FAT32L Partition id ('0' to disable) [0 - FF]: [C] (? for help) 0b fdisk:*1> print Disk: /dev/rdisk1 geometry: 998/32/63 [2012160 sectors] Offset: 0 Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ *1: 0B 0 1 1 - 998 3 3 [ 63 - 2012097] Win95 FAT-32 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused fdisk:*1> write Writing MBR at offset 0. fdisk: 1> quit # sudo umount /Volumes/GP2X/ # sudo newfs_msdos -F32 -vGP2X /dev/rdisk1s1 /dev/rdisk1s1: 2008136 sectors in 251017 FAT32 clusters (4096 bytes/cluster) bps=512 spc=8 res=32 nft=2 mid=0xf0 spt=32 hds=128 hid=0 bsec=2012097 bspf=1962 rdcl=2 infs=1 bkbs=6 # sudo mount_msdos /dev/disk1s1 mnt # ls -Al mnt # cp gp2xkernel.img mnt # ls -Al mnt total 1792 -rwxrwxrwx 1 administ administ 913935 29 Nov 19:18 gp2xkernel.img # sudo umount mnt #
I'm sorry this has become so incredibly long. Wow. I think I'm right out of ideas. -- Araneidae 19:24, 29 November 2005 (GMT)
I think that somebody is going to have to develop a firmware upgrader that can be executed while the OS is running, and so can be executed as a command utility. Tricky and very dangerous, but this is getting very stupid.
I bricked my gp2x beyond repair trying to upgrade the firmware. It doesn't show the logo screen & the unbricking procedures don't work. I was using a PNY 128M card, which I later noticed was formatted as FAT16 rather than FAT32. When I tried to do the upgrade, I got the 'upgrading firmware' screen for 15 minutes & the screen went black. I left it for 10 minutes that way before I reset it, after which it would only give a white screen that slowly fills with random lines.
I wasn't able to get newfs_msdos to work. If the card was mounted, it would warn me that it was already mounted, and if it wasn't mounted it wouldn't see /dev/disk1s1 or /dev/rdisk1s1. I was able to format my 1G Sandisk card as FAT32 with Disk Utility but not the 128M card. -- Mike3k 05:08, 30 November 2005 (GMT)
I found that "ejecting" the card using the finder made it vanish, but that running `sudo umount /Volumes/cardname` evaded the finder (to its later confusion) and left the /dev/[r]disk1[s1] devices behind. -- Araneidae 06:08, 30 November 2005 (GMT)
Using windows XP
(May work for other systems too). I successfully upgraded my firmware to 1.0.1 (from gp2xf100-101.zip). Last weekend I could not upgrade with patch20051112. I think having a freshly formatted card helps: I had a few files on my card and I deleted them before copying the gp2xkernel.img, but I could notget the upgrade screen. I formatted the card again to make sure that the .img was the first entry on in the FAT, and sure enough I ahd the firmware ugrade screen, followed by the new green screen. I upgraded gp2xroot.img the same way, then I ran the patch.
This may explain why OSX people have problems: formatting the card is also copying a few system folders. The .img file is not first in the FAT and cannot be found by the GP2X loader.
UPDATE 16.12.2005: Tried with 256MB SanDisk - finally with success. 3.12.2005: Did exactly as above, GP2x Version: 2005.11.13 - GP2XV100, external power supply, WinXP Home, Lexar 256MB card, HAMA external card reader, format as FAT32 and drop only the gp2xkernel.img into the card. Does not upgrade - GP2x just deletes the file. Then tried with both .img files without success. Try the next card, and next. So far I've used several "compatible" SD cards. None of them upgrade my GP2x. --koila 22:05, 3 December 2005 (GMT)
I'm using a 128MB Kodak card I bought $15.99 at Target. I formatted the card using the right-click menu in windows
fdisk for winXP?
does anyone know a utility like fdisk for winXP that woul allow me to recreate the file system on my SD card as described on the main Firmware Upgrade page? --Starpause 02:00, 19 March 2006 (PST)
Using a .dd
If somebody wants to try, I can run a dd fom my card with the kernel.img: you could download this SD image and dd it to your card. Assuming your card is bigger it should work (you would only see 128MB, but when the upgrade is done you can reformat you card). Leave me a message if you want to try that.
--Titousensei 05:03, 29 November 2005 (GMT)
That sounds like a worthwhile idea: yes, I'd like to try that. -- Araneidae 19:44, 29 November 2005 (GMT)
Here's a dd image of a sd card that could update the firmware - a SanDisk 256MB. Try it out ! http://www.ocbase.com/images/.temp/sd.rar . This image is an image of the disc, not the partition. It has all the files from 3rd Firmware on it, BUT gp2xboot.img, just to be safe. --Tetedeiench 20:55, 8 December 2005 (GMT)
I nabbed dd for windows and ran:
C:\GP2X>dd if=c:\gp2x\sd.dd of=\\.\e: rawwrite dd for windows version 0.3. Written by John Newbigin <jn@it.swin.edu.au> This program is covered by the GPL. See copying.txt for details Error writing file: 87 The parameter is incorrect 493980+0 records in 493979+0 records out
I'm using a 256MB sandisc SMC. Any suggestions? --Starpause 22:06, 18 March 2006 (PST)
How to upgrade the firmware
This section is getting confusing as it is a mixture of instructions for 1.4.0 and 2.0.0. Could someone who is confident about upgrading clean up this section? As it stands at the moment, it is not very helpful to someone nervous about these upgrades (myself) and I expect would not be much use to a newbie. Maybe we could have one explanation for firmware 1.4.0 and another for 2.0.0. WhizzBang 17:24, 30 April 2006 (PDT)