Skip to contentSkip to conversation

Format of bootable Indy CDs?

DISCUSSION Alex deVries 6 participants 16 messages Sep 26, 2002 – Sep 27, 2002 MIPS

lore
Share & tools
lore
#0 lore raw

I'm curious about the possibility of making a Linux installer for the Indy that boots from CD; is there any description of the format of bootable IRIX CDs out there? What does the firmware expect?

I know that sash is involved somehow...

- Alex

Signature · 5 lines
Alex deVries
Principal Architect, Linuxcare Canada, Inc.
(613) 562 2759

Linuxcare. Simplifying Server Consolidation.
#1 lore raw
Quoted 3 lines · Alex deVries

I'm curious about the possibility of making a Linux installer for the Indy that boots from CD; is there any description of the format of bootable IRIX CDs out there? What does the firmware expect?

The firmware loads an ecoff file from a volume header - The volume header is a special partition with a "minimalistic" filesystem in it - This can be modified by "dvhtool".

I succeeded in booting an indy by creating a fake "volume header" on the ISO filesystem CD. (ISO Specifies the first 8k of an image to be for the bootloader and partitioning etc). Then i created directory entrys for the kernels on the iso in the pseudo volume header. As the ISO filesystems needs all files to be contigues (same for the volume header) the machine was able to boot from the cd although booting the ecoff kernel image including the ramdisk directly. Having a bootloader would be much nicer.

Quoted 1 line

I know that sash is involved somehow...

"sash" is proprietary IRIX. The IRIX CDs are EFS BTW.

If you plan to work on this - Feel free to come around in Oldenburg this weekend - We will have a Kernel Hacker meeting in the University Oldenburg. I'll bring a Burner and CD-RW's with me to test this.

Flo

Signature · 2 lines
Florian Lohoff                  [email protected]             +49-5201-669912
                        Heisenberg may have been here.
#2 lore raw
Quoted 3 lines · Florian Lohoff

The firmware loads an ecoff file from a volume header - The volume header is a special partition with a "minimalistic" filesystem in it - This can be modified by "dvhtool".

Okay. I see an example of that mentioned in your mail in
http://lists.debian.org/debian-mips/2002/debian-mips-200204/msg00056.html
. That seems to match with an EFS volume header.

So making a tool that writes the 8k volume header is easy. If I understand properly, that points to a filename on the EFS filesystem that follows it.

What open source tools do we have to create such an EFS filesystem?

Quoted 3 lines

If you plan to work on this - Feel free to come around in
Oldenburg this weekend - We will have a Kernel Hacker meeting
in the University Oldenburg. I'll bring a Burner and CD-RW's with me to test this.

Sadly, I have other plans this weekend.

- Alex

Signature · 5 lines
Alex deVries
Principal Architect, Linuxcare Canada, Inc.
(613) 562 2759

Linuxcare. Simplifying Server Consolidation.
#3 lore raw

On Thu, Sep 26, 2002 at 03:20:06PM -0400, Alex deVries wrote:

Nice to hear from you again after years of silence.

Quoted 5 lines

So making a tool that writes the 8k volume header is easy. If I understand properly, that points to a filename on the EFS filesystem that follows it.

What open source tools do we have to create such an EFS filesystem?

None. The in-kernel EFS filesystem is read-only.

Ralf

#4 lore raw
Quoted 4 lines · Ralf Baechle

On Thu, Sep 26, 2002 at 03:20:06PM -0400, Alex deVries wrote

Quoted 1 line

What open source tools do we have to create such an EFS filesystem?

None. The in-kernel EFS filesystem is read-only.

Okay. Let me look at that.

EFS seems pretty simple, but is there a filesystem described apart from the .h files?

- Alex

Signature · 5 lines
Alex deVries
Principal Architect, Linuxcare Canada, Inc.
(613) 562 2759

Linuxcare. Simplifying Server Consolidation.
#5 lore raw
Quoted 9 lines · Alex deVries
Quoted 4 lines

On Thu, Sep 26, 2002 at 03:20:06PM -0400, Alex deVries wrote

Quoted 1 line

What open source tools do we have to create such an EFS filesystem?

None. The in-kernel EFS filesystem is read-only.

Okay. Let me look at that.

EFS seems pretty simple, but is there a filesystem described apart from the .h files?

No. EFS is not a very complex filesystem, roughly as complex as for example UFS.

However later PROMs also know about XFS I think and that's the trivial case. Anyway, as afair the EFS CDROMs are partitioned like disks a bootloader there could also be made to contain something like libext2fs and boot the rest of a ext2 on the CDROM. ISOfs if you have a nice library to use for that.

Ralf

#6 lore raw
In reply to Alex deVries
Quoted 9 lines · Alex deVries
Quoted 3 lines · Florian Lohoff

The firmware loads an ecoff file from a volume header - The volume header is a special partition with a "minimalistic" filesystem in it - This can be modified by "dvhtool".

Okay. I see an example of that mentioned in your mail in
http://lists.debian.org/debian-mips/2002/debian-mips-200204/msg00056.html
. That seems to match with an EFS volume header.

Quoted 5 lines

So making a tool that writes the 8k volume header is easy. If I understand properly, that points to a filename on the EFS filesystem that follows it.

What open source tools do we have to create such an EFS filesystem?

None .. Its not EFS - The Volume Header filesystem is MUCH simpler ...

Look into dvhtool to understand it ...

Flo

Signature · 2 lines
Florian Lohoff                  [email protected]             +49-5201-669912
                        Heisenberg may have been here.
#7 lore raw
In reply to Florian Lohoff

Could we not just make an image file with an arcboot header and burn that to cd?

Quoted 19 lines · Florian Lohoff
Quoted 3 lines · Alex deVries

I'm curious about the possibility of making a Linux installer for the Indy that boots from CD; is there any description of the format of bootable IRIX CDs out there? What does the firmware expect?

The firmware loads an ecoff file from a volume header - The volume header is a special partition with a "minimalistic" filesystem in it - This can be modified by "dvhtool".

I succeeded in booting an indy by creating a fake "volume header" on the ISO filesystem CD. (ISO Specifies the first 8k of an image to be for the bootloader and partitioning etc). Then i created directory entrys for the kernels on the iso in the pseudo volume header. As the ISO filesystems needs all files to be contigues (same for the volume header) the machine was able to boot from the cd although booting the ecoff kernel image including the ramdisk directly. Having a bootloader would be much nicer.

Quoted 9 lines
Quoted 1 line

I know that sash is involved somehow...

"sash" is proprietary IRIX. The IRIX CDs are EFS BTW.

If you plan to work on this - Feel free to come around in Oldenburg this weekend - We will have a Kernel Hacker meeting in the University Oldenburg. I'll bring a Burner and CD-RW's with me to test this.

I'd be interested in working on this, but I'm not 100% sure that I know enough about my indigo2 yet. I'll start by seeing what I can do with arcboot.

Signature · 5 lines
Mike Nugent
Programmer/Author
[email protected]
"I believe the use of noise to make music will increase until we reach a music produced through the aid of electrical instruments which will make available for musical purposes any and all sounds that can be heard."
 -- composer John Cage, 1937
#8 lore raw
Quoted 5 lines · Mike Nugent

I'd be interested in working on this, but I'm not 100% sure that I know enough about my indigo2 yet. I'll start by seeing what I can do with arcboot.

Grab SILO or PALO - Both have enough ISO9660 support to load a file from an ISO image - Then look at the existing ARCBOOT code and make some kind of minimalistic "filesystem detection" of the devices media.

Flo

Signature · 2 lines
Florian Lohoff                  [email protected]             +49-5201-669912
                        Heisenberg may have been here.
#9 lore raw
In reply to Alex deVries
Quoted 5 lines · Alex deVries

I'm curious about the possibility of making a Linux installer for the Indy that boots from CD; is there any description of the format of bootable IRIX CDs out there? What does the firmware expect?

I know that sash is involved somehow...

Ok - i reworked the procedure a bit whil beeing in Oldenburg.

flo@split:~/projects/boot$ mkisofs -J -R -V testboot -o iso
tftpboot-r4k-ip22.img
Total translation table size: 0
Total rockridge attributes bytes: 262
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 6644
2208 extents written (4 Mb)
flo@split:~/projects/boot$ isoinfo -l -R -i iso

Directory listing of /

dr-xr-xr-x   2 1750 1750             2048 Sep 27 2002 [    28]  .
?---------   0 1750 1750             2048 Sep 27 2002 [    28]  ..
-rwxr-xr-x   1 1750 1750          4414116 Sep 12 2002 [    31] tftpboot-r4k-ip22.img
flo@split:~/projects/boot$ echo $[ 31 * 4 ]
124
flo@split:~/projects/boot$ genisovh-0.1/genisovh iso sashARCS:124,4414116 ip22:124,4414116

The last command adds a "volume header" in the first 512 byte into the iso file. This volume header spans the whole iso filesystem and lists 2 files at identical positions which is the ECOFF tftpboot-r4k-ip22.img. The name sashARCS is coded in the Indys prom for the installer when using your mouse and "Install System Software" and "Local cdrom".

Now one needs to write a wrapper for the Indy bootfloppys aka debian-cd to produce bootable cds.

I put up the stuff:

http://www.silicon-verl.de/home/flo/software/ip22test.iso
http://www.silicon-verl.de/home/flo/software/genisovh-0.1.tgz

Flo

Signature · 2 lines
Florian Lohoff                  [email protected]             +49-5201-669912
                        Heisenberg may have been here.
#10 lore raw
Quoted 7 lines · Florian Lohoff

Now one needs to write a wrapper for the Indy bootfloppys aka debian-cd to produce bootable cds.

I put up the stuff:

http://www.silicon-verl.de/home/flo/software/ip22test.iso
http://www.silicon-verl.de/home/flo/software/genisovh-0.1.tgz

BTW: I was not able to boot from a cd-rom drive which was not able to read 512 byte blocked. Burning on a 2048 byte blocked burner is no problem though.

Flo

Signature · 2 lines
Florian Lohoff                  [email protected]             +49-5201-669912
                        Heisenberg may have been here.
#11 lore raw
Quoted 2 lines · Florian Lohoff

BTW: I was not able to boot from a cd-rom drive which was not able to read 512 byte blocked. Burning on a 2048 byte blocked burner is no problem though.

I have a cdrom connected to my Indy which has been configured to 512. I think this hw is good, but will double check when I find an IRIX CD. When I boot, it complains "invalid partition".

I wrote the ISO you posted on an i386 box with cdrecord. I suspect my problem I didn't use set the blocksize to 512; exactly how did you burn this CD?

- Alex

Signature · 5 lines
Alex deVries
Principal Architect, Linuxcare Canada, Inc.
(613) 562 2759

Linuxcare. Simplifying Server Consolidation.
#12 lore raw
Quoted 7 lines · Alex deVries

I have a cdrom connected to my Indy which has been configured to 512. I think this hw is good, but will double check when I find an IRIX CD. When I boot, it complains "invalid partition".

I wrote the ISO you posted on an i386 box with cdrecord. I suspect my problem I didn't use set the blocksize to 512; exactly how did you burn this CD?

cdrecord with xcdroast - But burning does not care about block sizes it seems.

Can you try to dump the volume header with "decodevh" from

http://amaya.mediaways.net/homes/flo/software/decodevh.tgz

Compile and decode with

devodevh /dev/scd0

Flo

Signature · 2 lines
Florian Lohoff                  [email protected]             +49-5201-669912
                        Heisenberg may have been here.
#13 lore raw
In reply to Alex deVries
Quoted 3 lines · Alex deVries

I wrote the ISO you posted on an i386 box with cdrecord. I suspect my problem I didn't use set the blocksize to 512; exactly how did you burn this CD?

Blocks on CD media are always 2048 bytes long (disregarding correction
data). The 512-byte block size as implemented by a few CD drives is simply an ability to present chunks of native blocks in 512-byte amounts. This is just an artifical feature to fulfill a requirement of broken firmware that asserts that disks have 512-byte sectors.

Signature · 3 lines
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: [email protected], PGP key available        +
#14 lore raw
In reply to Florian Lohoff

Florian,

Cool! As soon as I can find a 512-byte ro CDROM, I'll try this.

I've got part of mkefs working, BTW, which I realize is not required to make bootable CDs, but might be helpful anyway.

- Alex

Quoted 42 lines · Florian Lohoff
Quoted 3 lines · Alex deVries

I'm curious about the possibility of making a Linux installer for the Indy that boots from CD; is there any description of the format of bootable IRIX CDs out there? What does the firmware expect?

I know that sash is involved somehow...

Ok - i reworked the procedure a bit whil beeing in Oldenburg.

flo@split:~/projects/boot$ mkisofs -J -R -V testboot -o iso
tftpboot-r4k-ip22.img
Total translation table size: 0
Total rockridge attributes bytes: 262
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 6644
2208 extents written (4 Mb)
flo@split:~/projects/boot$ isoinfo -l -R -i iso

Directory listing of /

dr-xr-xr-x   2 1750 1750             2048 Sep 27 2002 [    28]  .
?---------   0 1750 1750             2048 Sep 27 2002 [    28]  ..
-rwxr-xr-x   1 1750 1750          4414116 Sep 12 2002 [    31] tftpboot-r4k-ip22.img
flo@split:~/projects/boot$ echo $[ 31 * 4 ]
124
flo@split:~/projects/boot$ genisovh-0.1/genisovh iso sashARCS:124,4414116 ip22:124,4414116

The last command adds a "volume header" in the first 512 byte into the iso file. This volume header spans the whole iso filesystem and lists 2 files at identical positions which is the ECOFF tftpboot-r4k-ip22.img. The name sashARCS is coded in the Indys prom for the installer when using your mouse and "Install System Software" and "Local cdrom".

Now one needs to write a wrapper for the Indy bootfloppys aka debian-cd to produce bootable cds.

I put up the stuff:

http://www.silicon-verl.de/home/flo/software/ip22test.iso
http://www.silicon-verl.de/home/flo/software/genisovh-0.1.tgz

Flo

Signature · 5 lines
Alex deVries
Principal Architect, Linuxcare Canada, Inc.
(613) 562 2759

Linuxcare. Simplifying Server Consolidation.
#15 lore raw
Quoted 4 lines · Alex deVries

Cool! As soon as I can find a 512-byte ro CDROM, I'll try this.

I've got part of mkefs working, BTW, which I realize is not required to make bootable CDs, but might be helpful anyway.

Any plextor scsi drive should do. It has a jumper to enable 512byte block access. They can be bought for fairly cheap for read only drives.

Len Sorensen