Tracing Problems in !Boot
Problems in the RISC OS boot sequence can have serious consequences: if an error occurs, the system simply stops working with the file it is currently in, and any important commands which follow will remain unseen. This can result in a wide variety of symptoms: the wrong screen resolution, broken networking, applications not launching on startup. The only common feature is that they will rarely be connected in any way to the original problem.
If you are having unexplained problems with your system, it is a good idea to confirm that no errors are occurring in !Boot before going on to look for other causes. The easiest way to do this is by creating a log of the events that take place as the system starts: Martin Avison’s Reporter, available from www.avisoft.force9.co.uk, provides a simple solution that works on all recent versions of RISC OS; users of RISCOS Ltd’s recent offerings can also use the *dmesg command.
Users of the Select scheme (including RISC OS Six) can also access the built in *dmesg command, which outputs a brief log of events as recorded by SysLog during the most recent boot. Its output isn’t as detailed as that of Reporter, but since it is built in to the OS, you can get information even if Reporter hadn’t been installed when a problem occurred.
To use *dmesg, press Ctrl-F12 to get to a taskwindow (or F12 for the
command line), and type
*dmesg followed by Return. A log of
events from the most recent start-up will be displayed.
For more detailed logging, or on systems where *dmesg isn’t available, it will be necessary to install a copy of Reporter.
To use Reporter for logging boot, download a copy. These instructions were written with version 2.64d in mind: a small update on 5th February 2010 added a check for locked files in !Boot, so that configuring Reporter does not fail if any are found. To install it, simply copy the !Reporter application to a suitable place on your hard disc, and double-click to run it. Remember that once installed in !Boot, the location of the application will be remembered in the boot sequence – it is best to put it into its permanent home now!
If Reporter opens its window, click Menu and select Config... to open the configuration dialogue. In some setups, no window opens on startup: to get to the configuration in this situation, click Menu over the !Reporter application in the filer, and select App. ‘Reporter’ – Help to open the Strong Help file (you will also need a copy of StrongHelp installed). Select Customisation from the Miscellaneous section of the manual, and then start the configuration tool by clicking on the link near the top of the Customisation manual page.
Configuration of Reporter’s boot logging is done via the Boot and BootLog tabs of its configuration dialogue. Configuring Reporter requires a copy of the Confix universal configuration utility: if not already installed, this can be downloaded from www.xat.nl/en/riscos/sw/confix and is best put in to !Boot.Resources so that it becomes available to other applications on the machine.
The Boot tab sets the options that Reporter starts with when loaded in the boot sequence. For debugging problems, detailed logs are probably best: tick Report Commands, with Time, Report Errors and Report VDU 4 text output. Change Text Size to be 1000KBytes, and optionally enter a filename for the Save File.
The BootLog tab sets the actual logging state: turn on Start Reporter in Boot.!Run so that it gets loaded early in the sequence. It is best to try a reboot with just this option ticked; once everything is known to work, return to the configuration and tick the various Report... points that need to be logged. Again, if you have an unknown problem, the more information that can be made available, the better – ticking all the Report... options is often best.
Once set, click on Save to store the settings. Be aware that this makes changes to your !Boot structure to insert the required logging points. Backups are kept: see the manual for more details.
Reporter in use
With Reporter configured, the machine can be re-booted and a log will be kept. As the machine starts up, a message similar to the following should be seen: showing that Reporter has been correctly started. If not, check the configuration options again.
When the desktop is reached, there will be a Reporter window open. It will still be logging events, so once the boot is complete click Menu and turn off all of the logging options in the centre section (On, CmdOn, ErrOn, RmaOn, TaskOn and Vdu4On). It is now possible to work through the report, looking for errors: these are shown with a red background.
The log shown here was generated with all the Report... options ticked in the BootLog tab of Reporter’s configuration. If you have just carried out a ‘test’ boot with these unticked, now is the time to return to the configuration and set the required options, before rebooting the machine again.
Note that not all errors are harmful: UnplugToolbox often reports errors when toolbox modules are not present, for example, and other sections of the boot sequence may well test for errors and act accordingly. If in doubt, investigate further before making any changes.
Stopping the logging
Having diagnosed the problem with your boot sequence, Reporter can be stopped by unticking Start Reporter in Boot.!Run in the BootLog section of its configuration and clicking on Save. It can safely be left in place, ready for the next time something goes wrong inside !Boot.
[Thanks to Martin Avison and members of the Iyonix Support list for their help with improving this guide.]