[Soekris] can't boot cf with debian on it nor over DHCP

Christopher E. Brown cbrown at woods.net
Mon Feb 24 10:10:09 UTC 2003


On 24 Feb 2003, Trevor Warren wrote:

> Hello tim...;)
>
>  Its connected to a Mains direct via a i/p Step Down transformer. Thanks
> for your suggestion, but this may not be the issue.
>
> Trevor

When LILO displays the 'infinite string' during load in means the
second stage loader is not loading. :)

LILO is a two (three?) stage loader.  The first stage sits in the
MBR/partition header, and is very small.  It also functions in lowmem
only (< 1M)  The first stage then calls the second stage loader.  This
loader can use memory above 1M, and does the actual kernel load/etc...

Now, the first and second stage loaders have no concept of
filesystems, they work off of disk sectors and offsets.  The start
sectors and lengths are determined by the lilo binary after reading
the files containing the second stage and kernel and stored in the
first stage that is written to the MBR/partition header.  This is why
moving/replacing the kernel or second stage loader requires re-running
lilo.


Now, how does this apply to a net 45xx CF?


Well, different devices see the CF modules with different geometry.

Sooo, if your PCMCIA<->CF IDE adapter or USB-CF<->USB-STORAGE-SCSI
access to the CF modules sees it any different than the net45xx
translation does you are SOL.  LILO is trying to access the wrong
sectors...

To give an example, a SanDisk 64M module is detected as 490/8/32
by combios, is seen in my workstation as 1011/2/62.

If I want to be able to write a sane image to the CF I need to
override this.  I use fdisk to delete *all* partitions on the CF, then
write the new (empty) table and exit fdisk.  Then I fire fdisk back up
and manually enter the disk geometry (x c 490 h 8 s 32 r) (spaces are
enter, this enters extended mode and hard sets the values).

You then create your partition and write to new table.  NOTE:  The
geometry data is stored in the table, if you do not create a
partition(s) it won't get written back out and you have to do it again
when you actually create the partition.

Then fire fdisk back up and hit "p", it should show the partition(s)
you just created and the correct geometry.


You can now treat the CF normally, including using mke2fs on the
partition(s) and untaring thing, using lilo in chroot, etc...


When you get a flash module, pop it into a 45xx running recent combios
and power it up while watching the serial console, it will report how
the 45xx sees the geometry, make a note of it.  Then connect the CF to
whatever you are using to write to it, and compare the reported
geometry.  If they are the same you are fine, if not use the above
method. (note, I use the standard fdisk, not cfdisk or sfdisk, etc...)

-- 
I route, therefore you are.




More information about the Soekris-tech mailing list