Hi,
On Tue, Dec 7, 2010 at 3:10 PM, Robert Nelson robertcnelson@gmail.com wrote:
Hi Guilherme,
I know you found a workaround with fdisk so you're probably no longer using parted, but I was wondering if you were able to use parted to change the geometry in the partition table to 255heads/63sectors as the boot rom seems to require?
Actually with current x-loader/u-boot the 255heads/63sectors isn't a hard requirement anymore for the boot partition, so i've dropped it..
https://github.com/RobertCNelson/omap-image-builder/blob/master/tools/setup_...
So far tested on:
Beagle B6 (oldest still booting beagle i have, any boards before that had serial-ic overheating problems and eventually die under warrente.) Beagle C2 & C4 Beagle xM A2
with angstrom's: MLO-beagleboard-1.44+r16 & u-boot-beagleboard-2010.03+r65
Panda A1
with mlo/u-boot from: http://gitorious.org/pandaboard
So right now i use parted to create the second partition. We could drop fdisk for the first, if we could figure out how to make parted create a partition starting at the first cylinder.
For example, I've tried this and it doesn't boot:
parted --script ${MMC} mkpart primary fat16 0 64
I ask because I'm working on converting our script to python and it'd be nice if I could use python-parted for that, but it doesn't seem to be able to.
What about sfdisk? This is by far the simplest tool and works well for parts of linaro-media-create: by direct consequence of its simplicity it seems to be the most controllable and has the fewest unexpected limitations and failure modes among the tools I've played with, as well as being friendly to being program-driven. For manually generating an optimal partition layout for Beagles I've also found this the best tool to use.
Certainly it's horrible to have to use a different partitioner to create each partition...
sfdfisk works well for me though, e.g.:
S=63; H=255 BC=5 cat <<EOF | sfdisk -S63 -H255 -C523 -L -uS <device> $S,$((5*BC*S-S)),0xc,* $(((5*BC*S+2047)/2048*2048)) EOF
...will set up by 4GB card a treat, with a working boot partition and an aligned filesystem partition, with the CHS fields for the first partition filled in correctly:
00000000 80 01 01 00 0c fe 3f 04 3f 00 00 00 86 39 01 00 00000010 00 19 15 05 83 2a a0 0a 00 40 01 00 00 c0 7e 00 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
(BC is the number of cylinders for the boot partition. The only constraint here is that the partition must be unambiguously FAT32, i.e. > 65534 clusters -- which gives a minimum sector count of 66593. 5 is simply (65593 + 63*255-1)/(63*255))
Of course, the DOS partition table format is so trivial that if we're having to jump through a lot of hoops, it's tempting to suggest we could implement it ourselves (though I know I'm not supposed to say that due to fragmentation etc., etc....)
Cheers ---Dave