RIC OS Lite
Chris Hall (132) 3554 posts |
I am trying to put together a ‘painless’ way for a Beagleboard uder who has never heard of RISC OS to give it a try. The constraint is that he must be able to boot up into RISC OS with no external RISC OS drive. Instructions would require him to put files ‘boot.scr’, ‘uEnv.txt’ and ‘riscos’ onto the SD card (which we already have done). Edit: note file ‘uEnv.txt’ above added so that these instructions work both with the new and old SD card images. Then to put three files ‘RunMe’, ‘EtherUsb’ and ‘HardDisc4/util’ onto a pendrive no bigger than 2Gbytes in size. Booting the Beaglebaord will then show a ‘*’ prompt at which the user types ‘Exec RunMe’ The problem is that everything works, with RISC OS booting up nicely into the desktop [I shall add lots of Help files about various things later] using the RAM filing system as the boot drive, with no errors, The file ‘RunMe’ (edited 2100 Sat 23 July) is given below: *| This file will be run using '*Exec RunMe' *| Set status to convenient values for BBXM *| In lieu of a file 'cmos' on the SD card *status FileSystem SCSI *status SCSIFSDrive 0 *status CDROMDrives 0 *basic REM Allocate 64Mbytes to the RAM filing system SYS "OS_ChangeDynamicArea",5,64000000 QUIT *| Set file type of default HardDisc image *settype HardDisc4/util Utility *| Copy this self-extracting image to the RAM disc *copy HardDisc4/util RAM::0.$.* ~c ~v *| Copy network driver EtherUSB 0.12 if present *| obtain from the URL below: *| <a href="http://effarig.co.uk/riscos/">http://effarig.co.uk/riscos/</a> *ifthere EtherUSB then copy EtherUSB RAM::0.$.* ~c ~v else echo Netowrk driver not present *| Select the RAM filing system *ram *| Extract the necessary 'vanilla' boot image *run HardDisc4/util *| Move it into the root directory of the RAM disc *copy HardDisc4.* * ~c d r ~v *delete HardDisc4 *delete HardDisc4/util *Dir !Boot.Resources.!System.310.Modules *CDir Network *Dir BASIC REM Now add networking for the BBXM P=OPENIN"EtherUSB" IF P<>0 THEN CLOSE#P *SetType EtherUSB Module P=OPENOUT"SetUpNet" BPUT#P,"Run BootResources:!Internet" CLOSE#P *SetType SetUpNet Obey *Access !Boot.RO510Hook.Boot.PreDesk.SetUpNet /RW *Copy SetUpNet !Boot.RO510Hook.Boot.PreDesk.SetUpNet ~c ~v f *Access !Boot.RO510Hook.Boot.PreDesk.SetUpNet RW/R *Access !Boot.RO500Hook.Boot.PreDesk.SetUpNet /RW *Copy SetUpNet !Boot.RO500Hook.Boot.PreDesk.SetUpNet ~c ~v f d *Copy EtherUSB RAM::0.$.!Boot.Resources.!System.310.Modules.Network.* ~c ~v d *Access !Boot.RO500Hook.Boot.PreDesk.SetUpNet RW/R *Dir !Boot.Choices *CDir Internet *Dir P=OPENOUT"!Boot.Choices.Internet.Routes" BPUT#P,"|=====================================================================|" BPUT#P,"| Routes file for !Internet V5.39 (10-Jan-03) |" BPUT#P,"| |" BPUT#P,"| Place any extra *Route commands, apart from the default route that |" BPUT#P,"| can be set using !InetConf, into this file. |" BPUT#P,"| |" BPUT#P,"| For example, if your machine is connected to net 1, and you wish to |" BPUT#P,"| establish a route to net 2 via the interface 1.0.0.2 on a gateway: |" BPUT#P,"| |" BPUT#P,"| IF ""<Inet$Error>"" = """" THEN Route -e add -net 2 1.0.0.2 |" BPUT#P,"| |" BPUT#P,"| (The IF...THEN statement above is necessary, as is the '-e' |" BPUT#P,"| parameter.) |" BPUT#P,"| |" BPUT#P,"|=====================================================================|" CLOSE#P *SetType !Boot.Choices.Internet.Routes Obey P=OPENOUT"!Boot.Choices.Internet.StartUp" BPUT#P,"|================================================================|" BPUT#P,"| Startup file for !Internet V5.39 (10-Jan-03) |" BPUT#P,"| |" BPUT#P,"| This file was automatically generated by !InetSetup. Do not |" BPUT#P,"| edit it by hand unless you REALLY, REALLY, know what you're |" BPUT#P,"| doing. Comments and spacing are significant to !InetSetup. |" BPUT#P,"| |" BPUT#P,"| If you want to add extra configuration options, place them in |" BPUT#P,"| the User file. |" BPUT#P,"|================================================================|" BPUT#P,"" BPUT#P,"|" BPUT#P,"| Host name" BPUT#P,"|" BPUT#P,"Set Inet$HostName myname" BPUT#P,"Set Inet$LocalDomain .nom" BPUT#P,"Set Inet$EtherDevice EtherUSB" BPUT#P,"Set Inet$EtherIPAddr 10.0.0.68" BPUT#P,"Set Inet$EtherIPMask 255.0.0.0" BPUT#P,"|" BPUT#P,"| Interface: EtherUSB" BPUT#P,"|" BPUT#P,"RMEnsure EtherUSB 0.09 RMLoad System:Modules.Network.EtherUSB" BPUT#P,"IfConfig -e ej0 10.0.0.68 netmask 255.0.0.0" BPUT#P,"CheckError" BPUT#P,"Set Inet$EtherTypeA <Inet$EtherType>" BPUT#P,"|" BPUT#P,"| Loopback" BPUT#P,"|" BPUT#P,"IfConfig -e lo0 127.0.0.1" BPUT#P,"CheckError" BPUT#P,"Set Inet$EtherType <Inet$EtherTypeA>" BPUT#P,"Unset Inet$EtherTypeA" BPUT#P,"|" BPUT#P,"| Name resolver" BPUT#P,"|" BPUT#P,"If ""<Inet$Resolvers>"" = """" Then Set Inet$Resolvers 10.0.0.2 212.139.132.6 212.139.132.21" BPUT#P,"Set Alias$InetLoadResolver ""If <Boot$OSVersion> > 370 Then X ResolverConfig Else RMEnsure Resolver 0.55 RMLoad System:Modules.Network.Resolver""" BPUT#P,"SetEval Test$Eval 1" BPUT#P,"RMEnsure Resolver 0.55 SetEval Test$Eval 0" BPUT#P,"If Test$Eval THEN ResolverConfig" BPUT#P,"Unset Test$Eval" BPUT#P,"|" BPUT#P,"| Routing" BPUT#P,"|" BPUT#P,"Route -e add default 10.0.0.2" BPUT#P,"CheckError" BPUT#P,"Run Choices:Internet.Routes" BPUT#P,"CheckError" BPUT#P,"Set Inet$IsGateway """"" BPUT#P,"Set Inet$RouteDOptions """"" BPUT#P,"|" BPUT#P,"| Access" BPUT#P,"|" BPUT#P,"IfThere Resources:$.Resources.ShareFS.!Boot then Run Resources:$.Resources.ShareFS.!Boot" BPUT#P,"RMFind Freeway 0.26 System:Modules.Network.Freeway" BPUT#P,"RMFind ShareFS 3.38 System:Modules.Network.Share+" BPUT#P,"SetEval Inet$KickFiler 1" CLOSE#P *SetType !Boot.Choices.Internet.StartUp Obey P=OPENOUT"!Boot.RO510Hook.Boot.Tasks.Help" BPUT#P,"RISC OS is running with its resources provided by" BPUT#P,"the RAM disc" BPUT#P,"This 'Lite' version of RISC OS is fully functioning" BPUT#P,"but cannot be reconfigured because a reboot would" BPUT#P,"clear the RAM disc. With external RISC OS data" BPUT#P,"storage the set up can be adjusted and RISC OS" BPUT#P,"rebooted with the new settings." BPUT#P,"" BPUT#P,"The screen size can be adjusted by clicking on the" BPUT#P,"monitor icon below" BPUT#P,"" BPUT#P,"To access any shared RISC OS discs on the network" BPUT#P,"click on the 'Discs' icon below." BPUT#P,"" BPUT#P,"" BPUT#P,"" CLOSE#P *SetType !Boot.RO510Hook.Boot.Tasks.Help Text P=OPENOUT"!Boot.Resources.Configure.!INetSetUp.AutoSense.EtherJ" BPUT#P,"Set InetSetUp$Driver$USB EtherUSB:ej0:EtherUSB:0.09:EtherUSB" CLOSE#P *SetType !Boot.Resources.Configure.!INetSetUp.AutoSense.EtherJ Obey P=OPENOUT"!Boot.Choices.Internet.User" BPUT#P,"|================================================================|" BPUT#P,"| User startup file for !Internet V5.39 (10-Jan-03) |" BPUT#P,"| |" BPUT#P,"| Place any special configuration options that cannot be set |" BPUT#P,"| using !InetSetup into this file. It is executed immediately |" BPUT#P,"| after the automatically-generated Startup file. |" BPUT#P,"|================================================================|" BPUT#P,"" BPUT#P,"Set Inet$MimeMappings InetDBase:MimeMap" BPUT#P,"Set Inet$ResolverDelay 5" BPUT#P,"Set Inet$ResolverRetries 3" BPUT#P,"SetEval Test$Eval 1" BPUT#P,"RMEnsure Resolver 0.55 SetEval Test$Eval 0" BPUT#P,"If Test$Eval THEN ResolverConfig" BPUT#P,"Unset Test$Eval" CLOSE#P *SetType !Boot.Choices.Internet.User Obey ENDIF QUIT *Run !Boot |
Chris Hall (132) 3554 posts |
Silly me. The RunMe file is now corrected. This all works giving the following display: Now… all we need to do is to persuade ROOL to bundle some useful stuff in a self extracting archive (like HardDisc4/util, including that and a lot more) – a browser, some HTML help files to take you through how to set up RISC OS, lots of links to free software on the web, a better (perhaps DHCP rather than static) network set up, EtherUSB, etc. I’d do this but I don’t think I have the copyright permission to bundle the various individual components. Then the prospective RISC OS user can be provided with a browser window with help files all linked together, a functioning network (assuming an external DHCP server). This way he is not required to do any set up, formatting of drives etc. and can explore RISC OS immediately. |
Rob Heaton (274) 515 posts |
Nice work Chris! |
Chris Hall (132) 3554 posts |
Nice work Chris! Actually I’m not sure! RISC OS loads my file ‘cmos’ after the various ‘Status’ changes introduced by ‘RunMe’, also I have two ‘USB’ pen drives, one RISC OS (my normal boot drive) and one Fat32 (which is where ‘RunMe’ runs from) as well as a USB hard drive, so much of my careful ‘STATUS’ commands are undone by ‘cmos’ [which new users would not have] or the drives actually present [which pop up an icon (I think) whatever the configuration]. |
Andrew Conroy (370) 740 posts |
SCSIHide will allow you to hide specific drive icons, but that would then lead to some card reader slots not having an icon on the iconbar which could be even more confusing. |
Jeffrey Lee (213) 6048 posts |
The cmos file gets loaded by the HAL during the kernel initialisation, so unless you’re using something like *LoadCMOS to load a different file during the boot sequence there’s no way that it could be interfering with your *Status commands. The RISC OS 5 version of SCSIFS ignores the configured number of drives and just goes by what the auto-detection tells it, so the only way to stop certain drives appearing would be to use SCSIHide (or just unplug them ;-)) |
Chris Hall (132) 3554 posts |
The cmos file gets loaded by the HAL during the kernel initialisation I stand corrected (I thought it might have been loaded after *Run !Boot but clearly not). |
Tank (53) 375 posts |
By the way *Status I believe does not set the option, just displays it, you need *Configure. |
Chris Hall (132) 3554 posts |
By the way *Status I believe does not set the option, just displays it, you need *Configure. Another barb. Ouch! Quite correct of course. |