Subject: Re: Error Booting on HP620lx
To: None <jazzman@exdomain.org>
From: Christer O. Andersson <christer@a-son.net>
List: port-hpcsh
Date: 01/01/2006 19:09:18
On Sat, Dec 31, 2005 at 10:17:14PM -0500, jazzman@exdomain.org wrote:
> I'm trying to follow the instructions you sent me, but I'm having some
> confusion. I have a brand new 512mb CF card. I don't have a BSD box, and
> the liveCD image isn't working for me, so if someone can point me to a
> good live cd image that would help. In the meantime I booted in linux on
> my laptop and erased the partitions on the CF card just so I'm starting
> fresh. I let it write to disk and everything was happy. I boot into the
> boot kernel with miniroot in it using my HP620lx with an 8mb CF card and I
> have the 512mb CF card in the PCMCIA slot with an adapter as well. I start
> disklabel with the command 'disklabel -i -I wd0' which is what the lexar
> 512 shows up as. The problem I'm having is that the instructions all show
> that partition d should cover the whole disk with type unused and then you
> can build partitions in that, but on my HP620lx disklabel shows partition
> c as covering the whole disk, which throws all of the remaining
> instructions off because c is the name of a partition we need to create
> but c is the disklabel partition...
> 
> Is this ok? Am I doing something really wrong? There wouldn't happen to be 
> a disklabel editor for dos/windows or linux, is there?
> 

This is how my disklabel looks when the cf is inserted with an
adapter to my laptop:

root@tango:/root# disklabel wd1
# /dev/rwd1d:
type: ST506
disk: 
label: 
flags:
bytes/sector: 512
sectors/track: 32
tracks/cylinder: 16
sectors/cylinder: 512
cylinders: 980
total sectors: 501760
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0 

6 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
a:    481280     20480     4.2BSD   1024  8192 40112  # (Cyl.     40 -    979)
c:    481280     20480     unused      0     0        # (Cyl.     40 -    979)
d:    501760         0     unused      0     0        # (Cyl.      0 -    979)
e:     20448        32      MSDOS                     # (Cyl.      0*-     39)
root@tango:/root# 

It looks identical on my hp620, except for the first line that reads:
hp620# disklabel wd0
# /dev/rwd0c:

The interesting part is the c in wd0c vs the d in wd1d. The d
partition is unique to the PC platform, it is the size of the whole
disk. c is the partition for netbsd. This is PC, or bios, partitions
not BSD. The c partition is created with fdisk. On e.g. a sparc
the disklabel looks like this:

8 partitions:
#        size    offset     fstype  [fsize bsize cpg/sgs]
a:    205656         0     4.2BSD   1024  8192    92   # (Cyl.    0 - 208)
b:   1047960    205656       swap                      # (Cyl.  209 - 1273)
c:   8859936         0     unused      0     0         # (Cyl.    0 - 9003)
d:    204672   1253616     4.2BSD   1024  8192    92   # (Cyl. 1274 - 1481)
e:   5352960   3506976     4.2BSD   1024  8192    88   # (Cyl. 3564 - 9003)
g:   2048688   1458288     4.2BSD   1024  8192    88   # (Cyl. 1482 - 3563)

the d partition is a normal BSD partition, or slice, since the
whole disk is for NetBSD anyway there is no need to waste a
partition to say that the netbsd part covers the whole disk. I
don't think there is any way to have anything else than the netbsd
label on the disk either.

I believe the d vs c trick on a pc is because you might want to
have several OS's on it. Also it enables bios to find the msdos
partition. It is probably necessary to have bios partitions for
winCE to detect the msdos partition.




I think you should have a look in the paper Uwe and Alistair Crooks
worte, it describes how to prepare the cf very thouroghly.

It is available in either of these locations:
http://2004.eurobsdcon.org/uploads/media/EBSD04_37.pdf
http://snark.ptc.spbu.ru/~uwe/netbsd/jornada/netbsd-hpc-euro2004.pdf

They use fdisk, mbrlabel, and disklabel. Are those tools available
in the miniroot? I think you can manually edit the disklabel without
using mbrlabel if that tool is missing. Fdisk is necessary though.
Maybe you can use fdisk from Linux to create an msdos partition
and use disklabel from your miniroot later. The important thing is
to have two bios partitions on the cf. You can always change the
a partition to netbsd with disklabel once you have the two bios
partitions on the cf.

I have to admit I didn't use the part describing the preparation
of the cf from any of the installation instructions I recommend.
I think I found the info on the maillist or something. You don't
have to redo the partitioning once you have it working. I have
newfs'd the a slice a couple of times, but never touched the
partition table. When re-reading the Michael Lucas instructions I
doubt it should work. I think you need fdisk.

I have ordered a new, larger and faster cf, so I will soon face
the same problems. The part with preparing the cf is possibly the
most confusing part. The rest is relatively straight forward.

I thing the version of fdisk shipped with (at least older versions
of) Slackware has some kind of bsd label possibilities. I don't know
if it works or not, I have a vague memory of failing with Slackware's
fdisk (when creating a bsd label).

-- 
Christer O. Andersson
Odensbacken