4.4. How to use PALO at early boot stage ?

4.4.1. The theory

You have setup everything, rebooted your box, and suddendly you want to change something to the kernel boot arguments, or even boot another kernel. Damn it ! How could you, now that the box is booting ? Well, stay calm and relax, we have the solution !

First, you must learn how to interact with PALO during the startup sequence. You have to enter BOOT_ADMIN, as explained in Section 3.1.1. For some old models (up to 712 or so), you must add the ipl (or isl) string to your boot command in the BOOT_ADMIN console :
BOOT_ADMIN> boot pri ipl
On most PA-RISC boxes, the system will ask you if you want to interact with IPL anyway. You just have to answer by a "y". You will fall back to PALO configuration display, with the list of all parameters and their corresponding numbers.

You just have to enter the number corresponding to the parameter you want to change. Hit ENTER, modify it and validate the changes by hiting ENTER again. The system will redisplay the new list. This modification is not permanent ! To save your changes, you will have to run /sbin/palo when your system will be up and running, and it will write on the disk all the parameters contained in the default file, (/etc/palo.conf), which you will have properly modified if needed. If you want to add a supplementary parameter, select any one and write yours on the editing line, beginning with a space :

Edit which field?
(or 'b' to boot with this command line)? 0  
3/boot/vmlinux initrd=root.bin
After validation, the list will count one more parameter. If you want to delete one, select it and erase the complete entry. You will see that the list counts one less parameter.

For more informations about PALO, please take look at the PALO readme. This section is mostly inspired from Paul Bame's file as well as the page about PALO you can find at http://www.pateam.org/palo.html.

4.4.2. A complete example

This example has been suggested by Michael Damaschke. So, let's go for the story of the happy PA/Linux user booting a kernel, also called "I don't know how to configure my workstation to use the kernel I want during boot sequence !".

After switching your workstation and monitor on, a message on the screen will tell you that the workstation is about to start automatically the boot sequence, except if you hold the Esc key to stop the auto-booting. This is a very difficult step : you must hold the Esc key down ;o)

Warning

Depending on your model, you might need to press this key during a quite long time.

Tip

In some cases, the monitor can be too slow to get on, and won't allow you to see the warning message. A good workaround is to keep a close eye on the keyboard's lights : when they blink, this is the right time to press and hold the Esc key. If you still have troubles, please refer to the Consoles section.

There are few differences about the way to get access to BOOT_ADMIN (see Section 3.1.1). If you have an old box, you will get an information message displayed, where the workstation's firmware tells you that it will start searching for all bootable devices, or that you can break this by holding down the Esc key. This is the same procedure as before, you must press the Esc key.

You might then get a menu where you must press the a-key followed by ENTER-key. You are now facing the deadly 'BOOT_ADMIN>' prompt :^). First, we will turn off auto boot process by entering the following lines :


BOOT_ADMIN> auto boot off

then hit the ENTER key.

After that, you must tell the system from which boot device you would like to boot. If it's a hard drive, it must have a 'f0' partition at the beginning (see Chapter 5).

In this example, the old kernel is vmlinux and the new one is vmlinux-2.4.17-pa3. The chosen SCSI boot device is designed by : SCSI.X.0, where X is the SCSI-ID of the disk you want to boot from. e.g.


BOOT_ADMIN> boot SCSI.5.0

At the end of the previous command line, you must add the IPL token if you have a HP 9000/7xx system to specify that you want to interact with IPL. If you have a more recent hardware, the system will ask if you want to interact with IPL anyway :

Interact with IPL (Y or N)?>
Now, you can manually configure the PALO booting parameters. You can see a new menu, where you can configure on line '0' (selected by default) the boot partition number, and the path of your boot kernel.

Here is the complete session log of a A500 serial console output :

Main Menu: Enter command or menu > bo scsi.5.0 ipl
Interact with IPL (Y, N, or Cancel)?> y


Booting... 
Boot IO Dependent Code (IODC) revision 1


HARD Booted.
palo ipl 0.97 root@c3k Tue Nov 27 14:51:48 MST 2001
Information: Boot device can't seek past 2Gb (ignore next error).
byteio_read: seekread() returned -1 expected 2048

Partition Start(MB) End(MB) Id Type
1               1      15   f0 Palo
2              16     503   82 swap
3             504    2887   83 ext2

PALO(F0) partition contains:
    0/vmlinux64 3990942 bytes @ 0x44000

Information: No console specified on kernel command line. This is normal.
PALO will choose the console currently  used by firmware (serial).
Current command line:
3/boot/vmlinux root=/dev/sda3 HOME=/ console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux
 1: root=/dev/sda3
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

Edit which field?
(or 'b' to boot with this command line)? 0  
3/boot/vmlinux-2.4.17-pa3 initrd=0/root.bin
Current command line:
3/boot/vmlinux-2.4.17-pa3 initrd=root.bin root=/dev/sda3 HOME=/ 
                                       console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux-2.4.17-pa3
 1: initrd=0/root.bin
 2: root=/dev/sda3
 3: HOME=/
 4: console=ttyS0
 5: TERM=vt102


Edit which field?
(or 'b' to boot with this command line)? 1  
                          
Current command line:
3/boot/vmlinux-2.4.17-pa3  root=/dev/sda3 HOME=/ console=ttyS0 TERM=vt102
 0: 3/boot/vmlinux-2.4.17-pa3
 1: root=/dev/sda3
 2: HOME=/
 3: console=ttyS0
 4: TERM=vt102

Edit which field?
(or 'b' to boot with this command line)? b
PALO was first setup to boot the kernel file vmlinux located on the third partition of the SCSI device ID 5 LUN 0. (We know this since we have asked BOOT_ADMIN to boot on this device). But we wanted another kernel this time. We have pressed the ENTER key (to validate the default choice '0') and modify the text to match our needs, here vmlinux-2.4.17-pa3. We have also added an initrd=0/root.bin argument to the command line. We have validated our changes by hitting the ENTER key. Finally we have decided that we didn't want this additional argument, so we have selected it and erased it. At the end it asked again which field we wanted to edit, we have just put 'b' instead of any number and hit ENTER to boot our new kernel.

Caution

Please don't change any other parameter unless you really know what you do !

That's it ! PALO has no more secrets for you :-)

Note

As you might have noticed, the BOOT_ADMIN interface can take several apparences, so don't be disappointed if yours does not match our examples.