RISCiX Netboot

discuss general risc os software applications and utilities
Related forum: adventures


Post Reply
SteveBagley
Posts: 250
Joined: Sun Mar 15, 2015 8:44 pm
Contact:

RISCiX Netboot

Post by SteveBagley » Fri Jan 03, 2020 12:55 pm

I've been poking around RISCiX over Christmas and came across an interesting file lurking that might go someway to explaining how RISCiX can be net booted (e.g. on the R225, but it'd also be fun to get it to netboot off a modern UNIX system). Over in the RISCiX cloned thread, crj said
crj wrote:
Sun Oct 08, 2017 10:56 pm
As I recall, it only contained two relocatable modules.

The first was the TCP/IP module pared down to do UDP, not TCP. (For all I know it was the same one used for AUN?) The second was a netboot module, which could use bootp and tftp to load a kernel.

Once the kernel was in RAM, and had been passed supplementary bootp parameters, RISC OS's job was done.
Inside /tftpboot on the cloned RISCiX installation, I found a file called 'pboot' (attached) that seems to contain (amongst other things) a RISC OS module that implements NFS. There's some interesting strings in the file (e.g. 'Acorn RISC OS NFS (Development version)') and lots of stuff about 'nfsboot', 'GetRootFs' as well as references to 'vmunix', so I'm now wondering if the R225s tftp'd this file in order to netboot.

However, the pboot file itself is in a weird format (there's obviously RISC OS commands before (*configure RMASize 512k) and after (*opt 4 2) the module at the very least, and attempting to just extract the module didn't work (Gives errors when loaded under ARculator -- although that could be down to the lack of a TCP/IP stack).

Does anyone have any idea what format this file is in? I've compared the format with podule format, and the ROM/RAM card format and from a cursory glance it doesn't seem to match. (Fortunately, it doesn't seem to be a compressed format…) It'd be interesting to extract the contents and then see if it is possible to persuade RISCiX to netboot…

Steve
Attachments
pboot.tar.gz
(65.68 KiB) Downloaded 14 times

SteveBagley
Posts: 250
Joined: Sun Mar 15, 2015 8:44 pm
Contact:

Re: RISCiX Netboot

Post by SteveBagley » Fri Jan 03, 2020 4:08 pm

A bit more playing around and I've managed to extract the NFS module (attached -- there also appears to be an application called 'nfsboot' in the pboot file which I still need to extract). The pboot file has an interesting structure... It seems to be made up of 512 byte blocks, where the first 8 bytes contain some pattern (see the table below) and the remaining 504 bytes contain the data from the file. The 8 byte 'header' is fairly constant, so I've only shown the entries where it differs from the previous header. I've no idea what the header means :)

Code: Select all

00000000: 81 60 68 6f 00 00 10 00 
00000200: 04 60 68 6f f8 01 00 00 
00016c00: c4 7c 68 6f c4 01 00 80 
00016e00: 04 60 68 6f f8 01 00 00 
00017200: 04 6c 68 6f b7 00 00 80 
00017400: 04 60 68 6f f8 01 00 00 
0002aa00: 44 77 68 6f 6c 01 00 80 
Within the data, section the files themselves seem to be prefixed by a short file header, from which it is possible to spot the RISC OS file type and date stamp, see the examples below, although its not entirely clear where the file header begins or ends (I was able to find the start of the module by tracking back from the module header).

Code: Select all

00000000  c2 61 69 6f 63 6f 6e 66  69 67 75 72 65 20 52 4d  |.aioconfigure RM|
00000010  41 73 69 7a 65 20 35 31  32 6b 00 6f 03 21 74 6f  |Asize 512k.o.!to|
00000020  42 fa ff ff 3c 96 cc 87  6e 66 73 00 04 20 61 ea  |B...<...nfs.. a.|
00000030  c4 01 00 00

Code: Select all

00016da0  2e 2e 2e 0a 7c 0a 6e 66  73 62 6f 6f 74 0a 20 70  |....|.nfsboot. p|
00016db0  43 61 74 6f 42 f8 ff ff  b4 bd e7 ae 6e 66 73 62  |CatoB.......nfsb|
00016dc0  6f 6f 74 00 04 20 20 20  64 00 00 00 00 00 00 fb  |oot..   d.......|
Steve
Attachments
nfs_module.tar.gz
(37.21 KiB) Downloaded 11 times

User avatar
Bardolph
Posts: 2
Joined: Sun May 05, 2019 6:38 am
Contact:

Re: RISCiX Netboot

Post by Bardolph » Sat Jan 04, 2020 12:20 am

Heck, I had forgotten about this - I was looking into the same stuff a while back.
I hope it's ok to give my input too.

I originally tried to remove the 512-byte markers by pattern matching, but they seem to differ every 8K (I think it was)
So the first attempts to extract nfs resulted in something that just gave Address Exceptions - tracing through the module showed it was trying to access crazy memory locations, and that seemed to be due to the missed markers messing up instructions.

So instead I wrote some code to strip the periodic bytes regardless of that they were, then extracted the 4 attached files from re-alligned pboot.
I suspect my 'nfs' and 'nfsboot' are a lot larger than they need to be, so could maybe be trimmed down.


Testing was done in Arculator, but I was waiting to give it a real trial on an A440/1 & Ether2.
However even under emulation running nfs then nfsboot gets as far as complaining about Inet$BootDevice - at which point I was stumped.

netboot_progress.png

It seems nfsboot does manage to detect failed RISCiXFS boot attempts, so I suspect it's the networking equivalent of secureboot..


(Also If I remember correctly, didn't the R225 supposedly contain an AKA05 ROM/RAM podule for startup? So pboot could well be something RAM-image based.)
Attachments
pboot_files.zip
(63.15 KiB) Downloaded 14 times
Last edited by Bardolph on Sat Jan 04, 2020 10:19 am, edited 1 time in total.

User avatar
Bardolph
Posts: 2
Joined: Sun May 05, 2019 6:38 am
Contact:

Re: RISCiX Netboot

Post by Bardolph » Sat Jan 04, 2020 10:15 am

Thinking about it this morning, I remember a couple more things about the attempt.

Protocols looks very much like the protocol file in the modern !Internet, but the R225 most likely had a minimalist setup.
So my plan was to locate Acorn's old TCP/IP Protocol Suite (AES32/AES48) and investigate how regular nfs was intended to be set up on RISC OS 2.

I never managed to find a copy, but it's possible it's out there somewhere.

waldorfmuppet
Posts: 6
Joined: Wed Sep 12, 2018 11:46 am
Contact:

Re: RISCiX Netboot

Post by waldorfmuppet » Sun Jan 05, 2020 12:22 pm

Did the R225 truly exist? I know it was advertised but, like the A410 I’m not sure I have ever seen someone saying they had one

SteveBagley
Posts: 250
Joined: Sun Mar 15, 2015 8:44 pm
Contact:

Re: RISCiX Netboot

Post by SteveBagley » Sun Jan 05, 2020 2:44 pm

waldorfmuppet wrote:
Sun Jan 05, 2020 12:22 pm
Did the R225 truly exist? I know it was advertised but, like the A410 I’m not sure I have ever seen someone saying they had one
The RISCiX cloned thread suggests they did -- ajw99uk mentions there might be one at TNMoC and crj seems to have analysed the modules on the podule.

I guess the difference between the R225 and the A410 is that the A540, R225 and R260 are effectively identical machines -- just with different badges and podules added to it

Played around with nfsboot yesterday in Arculator, and managed to get to the point where it looked like it was doing something (and suggests it might be possible to netboot RISCiX over Econet -- by running NFS over IP over Econet)
Screenshot 2020-01-04 at 23.43.07.png
I guess the next stage would be to write an Ethernet podule for Arculator (probably emulating the Ether1 since it is well documented, simple, supported by RISCiX, the module source is available and there's existing code emulating the 82586 about).

Steve

User avatar
IanS
Posts: 1211
Joined: Mon Aug 31, 2009 7:02 pm
Contact:

Re: RISCiX Netboot

Post by IanS » Sat Feb 15, 2020 10:23 pm

Digging through some old photos, I've definately seen an R225. It's shown in the post about the ARM 6 prototype card - viewtopic.php?p=66601#p66601
It also did have a ROM/RAM podule with "R225 BOOT ROM1" and "R225 BOOT ROM2" in it.
r225.PNG
R225 ROM/RAM Podule
r225-boot-roms.PNG
Boot ROMs

User avatar
IanS
Posts: 1211
Joined: Mon Aug 31, 2009 7:02 pm
Contact:

Re: RISCiX Netboot

Post by IanS » Sun Feb 16, 2020 11:01 am

SteveBagley wrote:
Sun Jan 05, 2020 2:44 pm
...suggests it might be possible to netboot RISCiX over Econet -- by running NFS over IP over Econet)
The RISCiX "Acorn Unix Econet Device Driver and Network Device" document https://www.chiark.greenend.org.uk/~the ... Device.pdf makes mention of an Econet only boot. (page 18 of the pdf)
Attachments
econet-boot.PNG

SteveBagley
Posts: 250
Joined: Sun Mar 15, 2015 8:44 pm
Contact:

Re: RISCiX Netboot

Post by SteveBagley » Mon Feb 17, 2020 12:25 pm

IanS wrote:
Sun Feb 16, 2020 11:01 am
SteveBagley wrote:
Sun Jan 05, 2020 2:44 pm
...suggests it might be possible to netboot RISCiX over Econet -- by running NFS over IP over Econet)
The RISCiX "Acorn Unix Econet Device Driver and Network Device" document https://www.chiark.greenend.org.uk/~the ... Device.pdf makes mention of an Econet only boot. (page 18 of the pdf)
Thanks for this (and the pictures of the R225, very interesting) -- I've read that document before and didn't pick up on that bit. It definitely sounds like it should be possible to boot an Arc into RISCiX via Econet. Definitely something to try once I get my A3000 working properly ;) I guess Acorn's compressed binaries are helping here.

Speaking of booting RISCiX -- does anyone know why an A310 (upgraded to ARM3, 4MB and RISC OS 3) won't boot the RISCiX image doing the rounds? I've had the same problem with the image in Arculator, but can get it to boot there by switching back to RISC OS 2.00… Do I need an updated version of the RISC OS boot loader component for it to work on Risc OS 3?

Steve

User avatar
davidb
Posts: 2724
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: RISCiX Netboot

Post by davidb » Mon Feb 17, 2020 5:37 pm

I could be mistaken but I think there may have been an updated boot application. :?

4corn has a mirror of the Acorn FTP site which might be useful. There might also be something worth looking at in Drobe's FTP mirror.

Post Reply

Return to “32-bit acorn software: other”