Re: Booting from a DiskOnChip2000

John Sutton
2002-04-24T18:43:10Z

Hi there

I'm thrashing about also trying to boot from DoC. I'm tempted to think that
I've nearly got there *without* having to go understand things like
GRUB/LinuxBIOS etc. But *maybe* I'm completely deluding myself! Perhaps
somebody can advise me...

Here's what I've got:

Two partitions on a 16Mb DoC:

Command (m for help): u
Changing display/entry units to sectors

Command (m for help): p

Disk /dev/nftla: 16 heads, 2 sectors, 998 cylinders
Units = sectors of 1 * 512 bytes

Device Boot Start End Blocks Id System
/dev/nftla1 2 23999 11999 83 Linux
/dev/nftla2 24000 31935 3968 83 Linux

I'm trying to boot a kernel held on partition 1 (I need partition 2 later on
but not for booting) so I've put the usual stuff on there - vmlinuz and boot.b.
Then I mount /dev/nftla1 on /mnt and run LILO with this config:

---------------------------
boot=/dev/nftla
map=/mnt/boot/map
backup=/mnt/boot/boot.5D00
install=/mnt/boot/boot.b
prompt
timeout=20

disk=/dev/nftla
bios=0x80
sectors=2
heads=16
cylinders=998
partition=/dev/nftla1
start=2

image=/mnt/boot/vmlinuz
label=linux
append="no-hlt"
read-only
root=/dev/md2
---------------------------

And that "works" i.e. I've gotten rid of the "Sorry don't know how to handle
device 0x5d01" message and lilo -v says it has done the trick. Sadly, however,
on booting all I get is a solitary "L" ;-( Or, 2 L's on *seperate* lines
(weird, huh?) if I also use linear...

According to the lilo docs, this solitary L means there is some kind of
"geometry mismatch"...

If I mess about long enough with the lilo config, am I going to win? Have
other people done this kind of thing? Or am I completely misunderstanding what
is at stake and really *have to* look into GRUB/LinuxBIOS to have any chance of
booting a linux kernel off a DoC?

TIA
John

> Thomas,
>
> I believe lilo can talk to devices by means of BIOS calls. If I
> understand correctly, the M-Systems patch to lilo adds the mapping of the
> /dev/ftla (?) root device name to the appropriate BIOS disk number.
>
> I infer from your description that you haven't made a complete choice
> between using the M-System's Linux driver and the MTD doc2000.c driver.
>
> If you are going for M-System's driver, I think you may need to specify
> the correct device name (/dev/ftla ?) as a root device (and optionally as
> a boot device) in /etc/lilo.conf.
>
> Then the lilo command should be able to write down the block numbers of
> the kernel image it needs to load at system startup.
>
> If you are going for the MTD doc2000.c driver which doesn't attempt to
> emulate age old real mode BIOS API, then the bootloader will have to
> access the content of the NFTL layer by using a bootstrap driver similar
> to the kernel doc2000.c module.
>
> The MTD CVS repository contains the patch to the GRUB bootloader which
> performs the above bootstrap access. As a bonus, the GRUB bootloader
> doesn't require any block numbers list to find the kernel image as it has
> the bootstrap drivers for the most of filesystems as well.
>
> The latest DOC 2000 / Millennium patch is in CVS directory
>
> mtd/patches/grub-2002-02-19-doc.patch
>
> You may need to download the source code of GRUB off its own CVS
> repository at
>
> http://savannah.gnu.org/projects/grub/
>
> The copy of the DOC 2000 / Millennium patch can also be found in the Patch
> Area of the GRUB project.
>
> Ilguiz
>
> On Wed, 24 Apr 2002, Thomas Preisig wrote:
>
> > I used a patched lilo version 21 from M-System. If I run lilo I get the
> > message: Sorry don't know how to handle device 0x5d01.

***************************************************
John Sutton
SCL Internet
URL http://www.scl.co.uk/
Tel. +44 (0) 1239 711 888
***************************************************