Using the boot configurations

Kickstart files on disk.

On a Classic Amiga, we had a ROM which contained the basic libraries: Exec, Dos, Intuition... The ROM made it possible to boot on a disk where no system is installed - Booting without Startup-Sequence, allowing you to use a basic Shell to do "first aid" on your system. 

Uboot, the AmigaOne ROM, initialises the hardware and boots an operating system but doesn't feature all needed libraries to boot AmigaOS - it doesn't allow you to boot without Startup-Sequence like on the Classic. It does, however feature key components (ExecSG, FFS2...) which are stored on disk, like all other files, and must be placed in the SYS:Kickstart directory. The advantage of this system is that it's now possible to update the OS just by updating one of these modules. The drawback is that it's easy to break your boot partition leading to a non-bootable OS: wrong library version, missing module...etc. 

The kickstart module configurations.

You tried to update your OS4 and you made a wrong move ? Your system doesn't boot anymore ? No problem !
As a good Amigan, you have safe configurations. Yes, it is possible to define as many kickstart module configurations as necessary. 

To understand how it works, it is necessary to have a look at the Kicklayout file in SYS:Kickstart; a text file that you can edit easily with your prefered text editor and contains the configurations that the SLB (Second Level Booter) will load. Its layout is simple: one line starting by the word "LABEL" defines the name of the configuration that will follow, the lines that start with the word "MODULE" allow you to declare each module that should be loaded by this configuration. There is also a line "EXEC Kickstart/loader" that you will probably never change - it is the program that relocates the modules in memory before they are executed. 

Example:

          LABEL Default
          EXEC Kickstart/loader

          MODULE Kickstart/kernel
          MODULE Kickstart/a1ide.device.kmod
          ....etc. 

In order to create several configurations, you just have to edit the Kicklayout file. As an example, you will be able to create one default configuration that will be automatically loaded at each system boot, a backup configuration you will be able to always boot, another one to test a module you just developed (if you are a coder)...etc. 

You can choose the configuration you want to boot by going into the boot selector menu of Uboot and modifying the "Configuration" field. Of course, the configuration called "Default" in your kicklayout file will be loaded if you don't change this value in Uboot. 

How do I create several configurations ?

You just have to declare several configurations in your Kicklayout file with the list of all modules to load in each of them. Let's take an example: you download an update of the OS4 kernel and you want to install it; to be on the safe side, you want to keep the "Default" configuration that you use everytime. Then, you just have to copy all lines of the "Default" configuration, paste them below in your kicklayout file, give to it a new name and define the kernel filename you want to use: 

          LABEL Default
          EXEC Kickstart/loader
          MODULE Kickstart/kernel
          ....etc. 

          LABEL update
          EXEC Kickstart/loader
          MODULE Kickstart/updated-kernel
          ....etc. 

You can then boot your A1 stepping into Uboot to tell the SLB that you want to load the "update" configuration. 

Easy management of configurations.

If you create several configurations, you'll see that having several versions of some modules can overload your Kickstart directory. 

          kernel
          kernelv2
          kernel-51.0
          kernel-01-01-2004
          ....etc.

This will make it more difficult to read the directory content and you could easily make some mistakes so I advise you to create one directory per configuration, making it easier to create new configurations or to compare two of them to identify which modules are more recent. 

My Kickstart directory looks like this: 

          Kickstart (dir)
              ConfigOK (dir)
                  module1.kmod
                  module2.kmod
              ...
              Default (dir)
                  module1.kmod
                  module2.kmod
              ...
              Debug (dir)
                  module1.kmod
              ...

Conclusion

This system allows to easily correct a misconfiguration. Of course, if you have more serious problems like a harddisk failure, the SLB won't be able to read the kickstart modules. In this case, it won't be possible to reach the early startup menu in order to boot without Startup-Sequence. You will need to boot from your OS4 CDROM and fix the problem. Let's hope that one day, with a bigger market, we'll be able to have an extanded ROM again...

Written by:
Philippe 'Elwood' Ferrucci

Edited by the Intuitionbase Team
published: 23rd June 2004