ELOM JumpStart

From Brandonhutchinson.com

(Difference between revisions)
Jump to: navigation, search
Current revision (20:50, 29 January 2008) (edit) (undo)
(Using ''perl'' instead of ''vi'')
 
(4 intermediate revisions not shown.)
Line 113: Line 113:
After performing a JumpStart, but before rebooting the system, perform the following steps so that you may access the system console via ssh.
After performing a JumpStart, but before rebooting the system, perform the following steps so that you may access the system console via ssh.
 +
=== Change 1 ===
# '''vi /a/boot/solaris/bootenv.rc'''
# '''vi /a/boot/solaris/bootenv.rc'''
Change:
Change:
setprop ttyb-mode 9600,8,n,1,-
setprop ttyb-mode 9600,8,n,1,-
- 
To:
To:
setprop ttyb-mode 115200,8,n,1,-
setprop ttyb-mode 115200,8,n,1,-
 +
==== Using ''perl'' instead of ''vi'' ====
 +
# '''perl -p -i.`date +%Y%m%d` -e 's/setprop ttyb-mode 9600,8,n,1,-/setprop ttyb-mode 115200,8,n,1,-/' /a/boot/solaris/bootenv.rc'''
 +
 +
=== Change 2 ===
# '''vi /a/var/svc/manifest/system/console-login.xml'''
# '''vi /a/var/svc/manifest/system/console-login.xml'''
Change:
Change:
<propval name='label' type='astring' value='console' />
<propval name='label' type='astring' value='console' />
- 
To:
To:
<propval name='label' type='astring' value='115200' />
<propval name='label' type='astring' value='115200' />
 +
==== Using ''perl'' instead of ''vi'' ====
 +
# '''perl -p -i.`date +%Y%m%d` -e "s|<propval name='label' type='astring' value='console' />|<propval name='label' type='astring' value='115200' />|" /a/var/svc/manifest/system/console-login.xml'''
 +
 +
=== Change 3 ===
# '''echo 'priorities=12;name="asy" parent="isa" reg=1,0x2f8,8 interrupts=3;' >> /a/kernel/drv/asy.conf'''
# '''echo 'priorities=12;name="asy" parent="isa" reg=1,0x2f8,8 interrupts=3;' >> /a/kernel/drv/asy.conf'''

Current revision

Contents

Overview

In order to use the ssh console (serial port on ttyb) with Sun ELOM during JumpStart, the ttyb settings in the x86 miniroot (specifically, in bootenv.rc) have to be modified; booting the JumpStart client with console=ttyb is not enough.

In our environment, this is made more challenging as our JumpStart server uses the SPARC architecture, so we have to create a temporary x86 install server to modify the miniroot.

Note: ELOM stands for Embedded Lights Out Manager and is used on at least the Sun Fire X2200 M2 and Sun Fire X2200 M1 systems.

This example assumes the following:

  • Arbitrary x86 client: x86_client
  • SPARC JumpStart server: jumpstart
  • Install server path: jumpstart:/export/install/OS/Solaris_10_2006-11_ia
  • Temporary x86 install server path: x86_client:/opt/Solaris_10_2006-11_ia
  • Temporary x86 miniroot: x86_client:/tmp/miniroot

Procedure

  • Allow the x86 client root access to the JumpStart tree.
(jumpstart) # unshare /export/install
(jumpstart) # share -F nfs -o root=x86_client /export/install/OS/Solaris_10_2006-11_ia
  • Mount the JumpStart tree.
(x86_client) # mkdir /tmp/mnt
(x86_client) # mount jumpstart:/export/install/OS/Solaris_10_2006-11_ia /tmp/mnt
  • Create an install server on the x86 client. Using root_archive packmedia below with an NFS file system is extremely slow compared to a local install server.
(x86_client) # /tmp/mnt/Solaris_10/Tools/setup_install_server /opt/Solaris_10_2006-11_ia
Verifying target directory...
Calculating the required disk space for the Solaris_10 product
Calculating space required for the installation boot image
Copying the CD image to disk...
Copying Install Boot Image hierarchy...
Copying /boot x86 netboot hierarchy...
Install Server setup complete
  • Unpack the x86 miniroot.
(x86_client) # /boot/solaris/bin/root_archive unpackmedia /opt/Solaris_10_2006-11_ia/ /tmp/miniroot
  • Modify boot/solaris/bootenv.rc within the miniroot.
(x86_client) # vi /tmp/miniroot/boot/solaris/bootenv.rc

Change:

setprop kbd-type US-English
setprop ata-dma-enabled 1
setprop atapi-cd-dma-enabled 0
setprop ttyb-rts-dtr-off false
setprop ttyb-ignore-cd true
setprop ttya-rts-dtr-off false
setprop ttya-ignore-cd true
setprop ttyb-mode 9600,8,n,1,-
setprop ttya-mode 9600,8,n,1,-
setprop lba-access-ok 1
setprop prealloc-chunk-size 0x2000

To:

setprop kbd-type US-English
setprop ata-dma-enabled 1
setprop atapi-cd-dma-enabled 0
setprop ttyb-rts-dtr-off false
setprop ttyb-ignore-cd true
setprop ttya-rts-dtr-off false
setprop ttya-ignore-cd true
setprop ttyb-mode 115200,8,n,1,-
setprop ttya-mode 9600,8,n,1,-
setprop lba-access-ok 1
setprop prealloc-chunk-size 0x2000
setprop input-device ttyb
setprop output-device ttyb
setprop console ttyb
  • Re-pack the x86 miniroot into the temporary x86 install server.
(x86_client) # /boot/solaris/bin/root_archive unpackmedia /opt/Solaris_10_2006-11_ia/ /tmp/miniroot

Note: Running root_archive on the JumpStart SPARC system (i.e., ./Solaris_10/Product/SUNWcakr.i/reloc/boot/solaris/bin/root_archive) will not work.

  • Copy the modified files from the temporary x86 install server back to the JumpStart tree.
(x86_client) # rsync -av /opt/Solaris_10_2006-11_ia/ /tmp/mnt/

In this example, only the following files were modified in the x86 install server:

Solaris_10/Misc/.install_config/Makefile
Solaris_10/Misc/.install_config/large_default
Solaris_10/Misc/.install_config/medium_default
Solaris_10/Misc/.install_config/rules.ok
Solaris_10/Misc/.install_config/small_default
Solaris_10/Tools/
Solaris_10/Tools/Boot/
Solaris_10/Tools/Boot/X.cpio.bz2
Solaris_10/Tools/Boot/X_small.cpio.bz2
Solaris_10/Tools/Boot/netmask
Solaris_10/Tools/Boot/pkg_db.cpio.bz2
boot/
boot/multiboot
boot/x86.miniroot
boot/grub/menu.lst
  • Unmount the JumpStart tree from the x86 client.
(x86_client) # umount /tmp/mnt
  • Restore normal JumpStart tree share permissions.
(jumpstart) # unshare /export/install/OS/Solaris_10_2006-11_ia
(jumpstart) # shareall
(jumpstart) # share | fgrep /export/install
-               /export/install   ro,anon=0   ""
  • Remove the temporary x86 miniroot.
(x86_client) # rm -r /opt/Solaris_10_2006-11_ia

Post-JumpStart Steps

After performing a JumpStart, but before rebooting the system, perform the following steps so that you may access the system console via ssh.

Change 1

# vi /a/boot/solaris/bootenv.rc

Change:

setprop ttyb-mode 9600,8,n,1,-

To:

setprop ttyb-mode 115200,8,n,1,-

Using perl instead of vi

# perl -p -i.`date +%Y%m%d` -e 's/setprop ttyb-mode 9600,8,n,1,-/setprop ttyb-mode 115200,8,n,1,-/' /a/boot/solaris/bootenv.rc

Change 2

# vi /a/var/svc/manifest/system/console-login.xml

Change:

               <propval name='label' type='astring' value='console' />

To:

               <propval name='label' type='astring' value='115200' />

Using perl instead of vi

# perl -p -i.`date +%Y%m%d` -e "s|<propval name='label' type='astring' value='console' />|<propval name='label' type='astring' value='115200' />|" /a/var/svc/manifest/system/console-login.xml

Change 3

# echo 'priorities=12;name="asy" parent="isa" reg=1,0x2f8,8 interrupts=3;' >> /a/kernel/drv/asy.conf

If you've already rebooted the system, and are unable to access the system remotely (i.e., with an ssh login or with an ssh console connection), you'll need to reboot the system into "Solaris failsafe" mode and make the above changes into the appropriate partitions.

Links

Personal tools