Booting RTEMS/GeSys on a x86 PC

The BSP and all other software was compiled for a pentium CPU and therefore needs to be rebuilt for older CPUs. Support for Intel EEPRO100, DEC 21140, 3c etherlink (e.g., 3c90x) and 3c509 (ISA) ethernet adapters has been built in. Chips are probed for in that order and the first one found is configured and used for networking. Note that not all recognized chip variants have been tested under RTEMS (most RTEMS networking drivers have been ported from FreeBSD).

Any common bootloader such as etherboot or GRUB can be used for net-booting RTEMS/GeSys. A recent version (at the time of this writing, 5/2004,) of GRUB is included on the CD which has been made bootable, i.e., GRUB can be booted right off the CD. The GRUB shipped on the CD, in addition to support netbooting off the same ethernet devices that have been listed above, also supports booting an image right from the CD.

Boot Modes

The CD's GRUB script offers the following boot variants:

One unfortunate detail about GRUB is noteworthy: GRUB does not honour the BOOTP/DHCP provided 'filename'. You always have to specify the file you want to boot using e.g., the 'kernel' command. It is possible, however, to let GRUB use a remote configuration script/menu where the boot file path can be programmed. Consult GRUB documentation for more information (setenv INFOPATH /afs/slac/package/rtems/4.6.2/info; info grub or online).

Steps to a Running System

  1. Make sure your PC has a bootable CDrom and it is enabled and searched prior to the HD by the BIOS.
  2. Insert the CD into the drive and boot your PC
  3. When the GRUB menu appears you can chose a boot mode (see above). The default will load RTEMS/GeSys from CD, boot and try to initialize the network.
  4. Remove the CD, insert and mount it on a host machine (server). Obviously, it is more comfortable to have a second CD or a copy on disk.
  5. Make sure '/afs/slac/package/rtems/4.6.2' is "NFS exported" to the target machine.
  6. Start a BOOTP/DHCP server on the host. You don't need a TFTP server since you booted off the CD. However, RTEMS/GeSys will use the 'filename' info it got from the BOOTP server to guess the pathname of an initialization script. You can use a pathname that maps to your NFS server (template line for use in 'dhcpd.conf'):

    filename = "<nfshost>:/afs/slac/package/rtems/4.6.2:ssrlApps/i386-rtems/pc586/bin/rtems.exe";

    The CD will then be automatically mounted (i.e., from the server, over NFS - no local access to the CD drive) on "/boot" on the target. You can find everything underneath there and there is no need for any nfsMount operation when playing with the examples (accessible under "/boot/examples").

    In summary: RTEMS/GeSys initializes the network, retrieves the network configuration from the BOOTP server, mounts the CD on '/boot' and executes the startup script '/boot/ssrlApps/i386-rtems/pc586/bin/st.sys'which performs some useful initialization (loading basic modules, defining aliases).

  7. Your're all set at a Cexp> command line prompt... If everything loaded properly, you should be able to telnet into the box. The default password is 'rtems'.

Links