Alternative Boot Options - RPi
John Williams (567) 768 posts |
I’ve been cogitating about booting alternative versions. Not RISC OS or Linux, but various versions of RISC OS. The RISC OS image in the FAT partition is called RISCOS/IMG, and this is specified in the CONFIG.TXT file as kernel=RISCOS.IMG. Curiously, the downloadable experimental image is just called “riscos”, and has to be renamed to be used (why?). Now I don’t know what language/level reads this config file, but I wonder if it might be possible to amend this to allow, with a keypress or something (can key-presses be detected this early?) an alternative kernel to be specified at this stage, or an alternative config file to be used in a similar fashion. The latter might be more useful where stuff (data) is used between different machines with different monitors/sound outputs. If it were possible, this would allow a stable version of RISC OS to be booted, or an alternative “bleeding edge” version for testing, depending on the situation at boot-up. Thus reversion to a known-working version would be easy when things went wrong,rather than having to swap out/reprogram SD cards. Is there any mileage in this idea? Is there anyone out there with the knowledge to implement it? Is it a reasonable thing to want? Discuss. |
Rick Murray (539) 13806 posts |
The Pi does not have a user button, nor is the bootloader able to talk to the user via serial. |
Rick Murray (539) 13806 posts |
PS – I think the little internal boot firmware loads the primary firmware (firmware.bin?) and it is this that reads the configuration. There may potentially be something as a secret keypress will load the NOOBS installer instead of the chosen OS. I don’t know how this mechanism works to say if it can’t be faked into starting an alternative version of RISC OS. |
John Williams (567) 768 posts |
So it may not be such a stupid idea! |
Steve Pampling (1551) 8155 posts |
Seems like a common need and the sort of thing that others have looked for to boot the Pi in different ways – their concern is obviously different versions of Linux. Something built on the most obvious lines would pop up a simple text choices menu and wait for a matching key to be pressed then launch the selected image file with the required mempry settings etc. |
Richard Walker (2090) 431 posts |
Low-tech solution… two different SD cards?! If you want to run the ‘bleeding edge’ OS, then it’s probably not entirely sensible to do so with your main SD card. What if there was a FileCore issue, for example? And a newer RISC OS image might well need changes to Boot/HardDisc4, and if you’re really unlucky, those won’t work on the older image. In general, and I don’t mean this to sound elitist in any way, a ‘bleeding edge’ OS shouldn’t be trivial to install and use. It’s for geeks to play with. :) |
Theo Markettos (89) 919 posts |
I haven’t tried this, but I believe there’s a version of U-Boot for the Pi. That would enable you to boot RISC OS images in a similar way to the BeagleBoard, with USB support so you can pick one from a menu. I also successfully booted Linux from RISC OS (code on github ). You might be able to boot RISC OS from RISC OS using a variation of the existing RISC OS softload mechanism. |
John Sandgrounder (1650) 574 posts |
My solution to this problem is to switch between to distict builds of RISCOS – the first on an SD Card and the second on a USB memory stick. Building RISCOS to have the boot drive on a USB memory stick is fairly simple (instructions elsewhere). And then just change the boot drive with *configure:- The two systems need to be from the same basic build so that the contents of the Boot ‘partition’ are the same for both. You will need a powered USB hub or a pi Model B+ with 4 USB ports as you will have three ports in use (Keyboard, Mouse and Memory Stick) Finally, of course, to have different build (rather than just a different filesystem), you need to change the RISCOS/IMG file in the boot ‘partition’. (And then reboot using Ctrl Alt break) All-in-All, changing the SD Card is the much simpler option ! :) |