===== Using the SRM Console ===== This page covers everyday use of the [[software:firmware:srm|SRM console]] with Linux: reaching the ''%%>>>%%'' prompt, setting up a serial console, the commands most often needed, and booting a current distribution. The [[software:firmware:srm|SRM Console]] page describes the firmware itself, its environment variables and device names in more detail, and its history. ==== Reaching the prompt ==== With ''auto_action'' set to ''halt'', the default, an SRM system stops at the ''%%>>>%%'' prompt after its power-on tests. Multiprocessor systems print ''%%P00>>>%%'', where the number is the primary CPU. [(>{{wiki:hardware:motherboards:common:srm_console_user_guide.pdf?linkonly|Alpha SRM Console for Alpha Microprocessor Motherboards User's Guide}}, pp. 3-2 to 3-4)] If the system is set to boot automatically, or is running an operating system, there are several ways back to the prompt: * **C-c during startup.** Pressing C-c repeatedly while the console is initializing, before it starts the boot, stops the automatic boot. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1997-June.mbox#L1499|"Re: Getting out of aboot in SRM?"]], Jay Estabrook, axp-list, 2 Jun 1997)] * **The Halt button.** Most Digital systems have a Halt button on the front panel. Pressed in at power-up, it brings the system up at the SRM prompt whatever ''auto_action'' says; pressed while an operating system runs, it sends a halt interrupt to the CPU. [(>{{wiki:software:firmware:alphaserver_800_users_guide.pdf?linkonly|AlphaServer 800 User's Guide}}, p. 1-9)] A button left in brings the system up at the prompt on every power-up. * **C-p.** C-p halts OpenVMS from a serial console, [(>{{wiki:software:firmware:alphaserver_es47_es80_gs1280_srm_console_reference.pdf?linkonly|AlphaServer ES47/ES80/GS1280 SRM Console Reference}}, p. 32)] but under Linux it is an ordinary character. Under Linux, Magic SysRq ''b'' has the same effect on a system booted from SRM: it halts to the prompt instead of rebooting; see [[documentation:kernel#debugging|Kernel: Debugging]]. * **Shutting down Linux.** ''halt'' or ''poweroff'' returns to SRM on most systems, although SRM may then report machine checks or show a blank screen, because Linux has changed the state it left the system in; ''init'' at the prompt resets it. See [[software:firmware:srm#known_issues|Known issues]]. * **The remote management console.** Systems with an RMC, such as the ES40, DS20E, and ES45, can halt and reset the system from the RMC prompt, reached with its escape sequence on the COM1 port. See [[#remote_management|Remote management]]. A system that booted ARC or AlphaBIOS instead of SRM is switched as described in [[software:firmware:arc#switching_to_srm|Switching to SRM]]. On most dual-console systems the Halt button pressed in at power-up also forces SRM. [(>{{wiki:software:firmware:alphaserver_800_users_guide.pdf?linkonly|AlphaServer 800 User's Guide}}, p. 6-1)] ==== Serial console ==== A serial console is the most convenient way to use an Alpha system today: it needs no keyboard or supported video card, it can be logged, and it shows kernel messages that a graphics console loses when a boot fails. Both sides must be set up: the firmware, and Linux. === Firmware === >>> set console serial >>> init ''console'' takes ''graphics'' or ''serial'', and the change takes effect after ''init'' or a power cycle. [(>{{wiki:software:firmware:alphaserver_800_users_guide.pdf?linkonly|AlphaServer 800 User's Guide}}, p. 6-13)] If no keyboard is connected, SRM uses the serial console regardless. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/1998-July.mbox#L2188|"Re: installation on PC164LX, SRM 5.1-3, serial console"]], Jay Estabrook, axp-list, 1 Jul 1998)] The console uses the first serial port (COM1), at 9600 baud, 8 data bits, no parity, and one stop bit; ''com1_baud'' changes the speed on systems that have it. [(>{{wiki:software:firmware:alphaserver_800_users_guide.pdf?linkonly|AlphaServer 800 User's Guide}}, p. 6-31)] ''set com1_baud'' without a value lists the speeds the console accepts, up to 57600 on the ES40, and ''set com1_baud 57600'' selects one. [(>{{wiki:hardware:systems:alphaserver_es40:alphaserver_es40_user_interface_guide.pdf?linkonly|AlphaServer ES40 and AlphaStation ES40 User Interface Guide}}, p. 2-56)] The kernel's ''console='' argument and the terminal program must then use the same speed. Some Digital systems have a 6-pin DEC MMJ connector for COM1 rather than a 9-pin D connector, and need an MMJ cable and adapter; on the AlphaServer 800 the MMJ port is COM1. [(>{{wiki:software:firmware:alphaserver_800_users_guide.pdf?linkonly|AlphaServer 800 User's Guide}}, p. 6-1)] The cable to a modern computer is a null modem cable, or a USB serial adapter with a null modem cable or adapter. A terminal program on the other end is set to the same speed, for example: picocom -b 9600 /dev/ttyUSB0 === Linux === Linux does not inherit the firmware's console setting. The kernel must be told to use the serial port, with ''console=ttyS0'' in the kernel arguments (see [[#booting_linux|Booting Linux]]). The speed can be given as well, as in ''console=ttyS0,9600n8'', to match the console's. If a graphics console is also wanted, both can be given; the last one named becomes ''/dev/console''. The ES47, ES80, and GS1280 need ''console=srm'' (below) instead of ''console=ttyS0''; see [[hardware:systems:marvel|Marvel]]. For the permanent setting, add ''console=ttyS0'' to the entry in ''/etc/aboot.conf'', or to ''boot_osflags'' if the kernel arguments are kept there. Most distributions start a login prompt on the kernel's console automatically, at the kernel's console speed. Two more options use the firmware's own console routines rather than the serial driver, and are useful when a kernel fails too early for the serial driver to print anything: * ''srmcons'' echoes the kernel's early messages through the SRM console until the real console driver takes over. * ''console=srm'' uses the SRM console routines for the whole session. It is slow, but works on any SRM system, whatever its serial hardware. Both are handled in ''arch/alpha/kernel/setup.c'', [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/kernel/setup.c?h=v7.3-rc1|arch/alpha/kernel/setup.c]], Linux 7.3)] and listed with the other Alpha parameters under [[documentation:kernel#kernel_parameters|Kernel: Kernel parameters]]. === Remote management === The later Compaq servers have a remote management console (RMC), a separate microcontroller powered whenever the system has AC power, which shares COM1. [(>{{wiki:software:firmware:alphaserver_800_users_guide.pdf?linkonly|AlphaServer 800 User's Guide}}, p. 1-9)] From the RMC prompt, the system can be powered on and off, halted, and reset remotely, and its status and environmental sensors read. It is reached by typing its escape sequence on the COM1 port, by default C-[ C-[ ''rmc'' (Esc Esc ''rmc'' on most keyboards), and left again with ''quit''. [(>{{wiki:hardware:systems:alphaserver_es40:alphaserver_es40_user_interface_guide.pdf?linkonly|AlphaServer ES40 and AlphaStation ES40 User Interface Guide}}, pp. 2-43, 4-18)] The system's own user guide describes the details, which differ from system to system. The ES47, ES80, and GS1280 have a backplane manager (MBM) instead, with its own ''MBM>'' command line. Its ''connect'' command reaches the SRM console, and Esc Esc ''MBM'' returns to the ''MBM>'' prompt; see [[hardware:systems:marvel#server_management|Marvel: Server management]]. ==== Everyday commands ==== The commands below cover most of what is needed to run Linux. Commands may be abbreviated, and numeric arguments are usually hexadecimal. The full list is on the [[software:firmware:srm#console_commands|SRM Console]] page and in each system's documentation. Not every console has every command; ''show fru'' in particular is found only on the larger systems. ^ Command ^ What it shows or does ^ | ''show config'' | The model, firmware versions, CPUs, memory, and every PCI and EISA device. The first thing to capture when asking for help | | ''show device'' | Bootable devices, by their SRM names such as ''dka0'' or ''dqa0'', and network interfaces such as ''ewa0'' | | ''show version'' | The SRM firmware version | | ''show *'' | Every environment variable; ''show boot*'' shows only the boot settings | | ''show memory'' | The memory configuration, by bank or module [(>{{wiki:software:firmware:alphaserver_es47_es80_gs1280_srm_console_reference.pdf?linkonly|AlphaServer ES47/ES80/GS1280 SRM Console Reference}}, p. 62)] | | ''show pal'' | The OpenVMS and Tru64 UNIX PALcode versions. Linux uses the Tru64 (OSF/1) PALcode [(>{{wiki:software:firmware:alphaserver_800_users_guide.pdf?linkonly|AlphaServer 800 User's Guide}}, p. 6-7)] | | ''show fru'' | Field-replaceable units, with part and serial numbers, on the systems that support it [(>{{wiki:software:firmware:alphaserver_es47_es80_gs1280_srm_console_reference.pdf?linkonly|AlphaServer ES47/ES80/GS1280 SRM Console Reference}}, p. 58)] [(>{{wiki:software:firmware:alphaserver_2000_2100_2100a_firmware_reference_guide.pdf?linkonly|AlphaServer 2000/2100/2100A Firmware Reference Guide}}, p. 1-81)] | | ''show cpu'' | The state of each CPU on multiprocessor systems [(>{{wiki:software:firmware:alphaserver_es47_es80_gs1280_srm_console_reference.pdf?linkonly|AlphaServer ES47/ES80/GS1280 SRM Console Reference}}, p. 55)] | | ''set //variable// //value//'' | Set an environment variable; the change is saved at once but some take effect only after ''init'' | | ''init'' | Reinitialize the system, as after power-up | | ''boot'' | Boot, see [[#booting_linux|below]] | | ''test'' | Run the system's diagnostics | | ''isacfg'' | Edit the console's table of ISA devices on the Digital Semiconductor motherboards, which cannot detect ISA cards by themselves. The table is for Tru64 UNIX and OpenVMS; Linux does not read it [(>{{wiki:hardware:motherboards:common:srm_console_user_guide.pdf?linkonly|Alpha SRM Console for Alpha Microprocessor Motherboards User's Guide}}, pp. 3-28 to 3-32)] | | ''wwidmgr'' | Register Fibre Channel disks so that SRM can boot from them [(>{{wiki:software:firmware:alphaserver_es47_es80_gs1280_srm_console_reference.pdf?linkonly|AlphaServer ES47/ES80/GS1280 SRM Console Reference}}, p. 68)] | Each SCSI controller has variables named after it, with the controller's letter in place of the ''*'': ''pka0_host_id'' for the first controller, ''pkb0_host_id'' for the second, and so on. ''pk*0_host_id'' sets the controller's own SCSI ID, 7 by default, which needs changing only when two controllers share a bus. ''pk*0_fast'' runs the bus in fast (1, the default) or standard (0) SCSI mode, and ''pk*0_soft_term'' sets the terminators of QLogic ISP1020 controllers to ''on'' (the default), ''off'', ''low'', or ''high''. All three take effect after ''init''. [(>{{wiki:hardware:systems:alphaserver_es40:alphaserver_es40_user_interface_guide.pdf?linkonly|AlphaServer ES40 and AlphaStation ES40 User Interface Guide}}, pp. 2-80 to 2-83)] On KZPEA (Adaptec) controllers with SRM V6.1 or later, the ID is set instead in the controller's own utility, started with ''run bios pka0'', and ''show pk*'' only displays it. [(>{{wiki:software:firmware:alphaserver_es40_v7.3_firmware_release_notes.pdf?linkonly|AlphaServer ES40 V7.3 Firmware Release Notes}}, p. 35)] ==== Booting Linux ==== Current distributions install [[software:boot_loaders:aboot|aboot]] on the boot disk, and SRM loads it from there. With ''/etc/aboot.conf'' in place, a boot needs only the device and the number of an aboot.conf entry: >>> show device >>> boot dka0 -flags 0 Without an aboot.conf, or to boot a different kernel, name the kernel's partition and path and give the kernel arguments. The partition is a digit, 1 for ''a'' up to 8 for ''h''; paths are relative to the partition: >>> boot dka0 -file 2/vmlinux.gz -flags "root=/dev/sda3 console=ttyS0" SRM and Linux name disks independently. On a simple system the first SCSI disk, ''dka0'', is ''/dev/sda'' under Linux, [(>[[https://github.com/alphalinux/aboot/blob/master/doc/faq/SRM-HOWTO.sgml|SRM Firmware Howto]], v0.8.1, 14 Feb 2004)] but Linux numbers disks in the order it finds them, so with other disks or controllers present the boot disk may get another name, and the ''root='' argument has to name it. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2000-May.mbox#L9252|"Re: Bizzare dual boot problem on DS20.."]], W Bauske, axp-list, 17 May 2000)] Partition numbers do correspond: partition //n// in SRM and aboot is partition //n// under Linux, as described under [[documentation:installation#partitioning|Installation: Partitioning]]. ''-flags i'' starts aboot's interactive prompt, whose ''l'' command lists the aboot.conf entries. The variables that make the system boot unattended, ''bootdef_dev'', ''boot_file'', ''boot_osflags'', and ''auto_action'', are set as described under [[documentation:installation#booting_the_installed_system|Installation: Booting the installed system]]. A kernel can also be booted from the network with BOOTP and TFTP, for example ''boot -protocols bootp ewa0''. ''ewa0_protocols'' sets the default protocol for the first Ethernet interface, ''mop'' unless changed, and ''ewa0_mode'' its media type, such as ''fast'' or ''fastfd'' for 100BaseT; other interfaces use ''ewb0_'' and so on. [(>{{wiki:hardware:systems:alphaserver_es40:alphaserver_es40_user_interface_guide.pdf?linkonly|AlphaServer ES40 and AlphaStation ES40 User Interface Guide}}, pp. 2-67 to 2-68)] See [[software:boot_loaders:aboot#network_booting|aboot: Network booting]] for the server side. If the system halts back to the prompt instead of booting, the usual causes are: * The disk has no BSD disklabel or no aboot. Check that ''show device'' lists the disk, and see [[documentation:installation#partitioning|Partitioning]]. * The kernel is not on the named partition, or the partition number is wrong. Boot with ''-flags i'' and list the directory with aboot's ''d'' command. * A pre-EV56 processor with a kernel from Linux 6.10 or later, which stops without printing anything. See [[:status#processor_baseline|Current Status]]. === wwidmgr === SRM does not scan Fibre Channel storage for bootable disks by itself. ''wwidmgr'' lists the disks it can see on a Fibre Channel loop or fabric and assigns each a small number, so that it appears as a ''dga'' device in ''show device''. On the AlphaServer 1200, 4000, 4100, 8200, 8400, GS60, and GS140 it runs only in diagnostic mode, entered with ''set mode diag''. On every system, ''init'' or a reset is needed after using it and before booting. [(>{{wiki:software:firmware:wwidmgr_v1.3_users_manual.pdf?linkonly|Wwidmgr User's Manual, V1.3}}, section 2.1)] [(>{{wiki:software:firmware:alphaserver_es47_es80_gs1280_srm_console_reference.pdf?linkonly|AlphaServer ES47/ES80/GS1280 SRM Console Reference}}, p. 68)] >>> wwidmgr -show wwid >>> wwidmgr -quickset -udid 10 >>> init >>> show device ==== Firmware versions ==== Use the last SRM version released for the system, listed in the table of [[software:firmware:srm#final_versions|final versions]]. Older versions may be too old for Linux: the DS20E, for example, needs V5.6-3 or later, [(>{{wiki:hardware:systems:alphaserver_ds20:alphaserver_ds20e_reference_guide.pdf?linkonly|AlphaServer DS20E Reference Guide}})] and booting from Adaptec SCSI controllers needs V5.8 on the AlphaPC 164LX and 164SX and V5.9 on the DS10, DS20, ES40, and XP1000 (see [[software:firmware:srm#known_issues|Known issues]]). [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/axp-list-mbox/2001-April.mbox#L35378|"Re: Alpha PC164, SRM, and Adaptec 2940UW"]], Jay Estabrook, axp-list, 11 Apr 2001)] Archived firmware images and the update procedure are described in [[software:firmware#obtaining_and_updating_firmware|Firmware: Obtaining and updating firmware]]. === Updating from the firmware CD === The later AlphaServers and workstations are updated by booting the Alpha Systems Firmware Update CD, the last of which is V7.3, from the SRM prompt. If an operating system has run since power-up, ''init'' first resets the system. The CD's loader offers a default image at its ''Bootfile:'' prompt, and pressing Enter starts the Loadable Firmware Update utility (LFU): [(>{{wiki:software:firmware:alphaserver_ds20_v7.3_firmware_release_notes.pdf?linkonly|AlphaServer DS20 V7.3 Firmware Release Notes}}, pp. 7-8)] >>> show device >>> init >>> boot dka500 Bootfile: UPD> list UPD> update UPD> verify UPD> exit ''list'' shows the installed and available version of each firmware, ''update'' writes them all after asking for confirmation, and ''update pka0'' updates only the named adapter. ''verify'' compares the flash contents with the loaded images, and ''exit'' resets the system into the new firmware. Firmware older than the installed version should not be loaded; a system shipped late may already have a newer version than the CD. [(>{{wiki:software:firmware:alphaserver_ds20_v7.3_firmware_release_notes.pdf?linkonly|AlphaServer DS20 V7.3 Firmware Release Notes}}, pp. 7-8)] On the ES45, LFU starts in a default mode that updates SRM, SROM, and I/O adapter firmware; the RMC firmware is updated in manual mode, entered by typing ''exit'' and answering yes. Each device is reported as "Verifying ... PASSED" when it has been written, and the update must not be interrupted. [(>{{wiki:software:firmware:alphaserver_es45_v7.3_firmware_release_notes.pdf?linkonly|AlphaServer and AlphaStation ES45 V7.3 Firmware Release Notes}}, pp. 7-10)] === Recovering from a failed update === A system whose console firmware is corrupted, for example by an interrupted update, no longer reaches the SRM prompt. The ES45 recovers with its fail-safe loader: with jumper J22 moved from its default position 1-2 to 2-3 and a fail-safe loader floppy in the drive, power-on loads a limited SRM console from the floppy, which prints the ''P00>>>'' prompt. From it, the firmware CD is booted and the firmware updated in LFU manual mode; the system is then powered down and the jumper returned to 1-2. The floppy is made on a PC with the ''mkboot'' utility and the system's fail-safe loader image. [(>{{wiki:software:firmware:alphaserver_es45_v7.3_firmware_release_notes.pdf?linkonly|AlphaServer and AlphaStation ES45 V7.3 Firmware Release Notes}}, pp. 10-11)] The recovery methods of other systems, such as the fail-safe booter of the Digital Semiconductor motherboards, are listed under [[software:firmware:srm#updating_firmware|SRM Console: Updating firmware]]. {{tag>documentation firmware srm}}