L2 Cache

Behold the power of |!

User Tools

Site Tools


Sidebar

snipets:solaris:misc-serial-console

Setup Solaris Serial Console

Introduction

This page describes how to setup a serial console on a omnios/openindiana server.

This happens in multiple steps.

GRUB

Lets enable serial access on GRUB first.

BIOS Redirection

If you are lucky, your BMC/IPMI may do redirection! This is prefered over having GRUB configure a serial port. This way both the console and serial port will display the same menu at the same time.

Look for the following line in /rpool/boot/grub/menu.lst

splashimage /boot/grub/splash.xpm.gz

and simply comment it out:

#splashimage /boot/grub/splash.xpm.gz

To make this take effect we need to update the boot archive. Simple run:

bootadm update-archive

note: this seems to work for most SuperMicro Boards, someone mentioned it works for Dell also.

Pure GRUB

If BIOS redirection did not work, we can have GRUB configure the serial port for us. This has the down side of GRUB waiting for 31) seconds, first terminal with a key press will have the menu displayed. This does look prettier than the one you get with BIOS redirection.

Edit /rpool/boot/grub/menu.lst and uncomment the following lines:

#splashimage /boot/grub/splash.xpm.gz
serial --unit=0 --speed=115200 ---word=8 --parity=no --stop=1
terminal --timeout=3 console serial

To make this take effect we need to update the boot archive. Simple run:

bootadm update-archive

Illumos GRUB Composite

Newer Illumos distro come with grub composite mode, any recent SmartOS or OmniOS r151012 or newer.

Edit /rpool/boot/grub/menu.lst and uncomment the following lines:

#splashimage /boot/grub/splash.xpm.gz
serial --unit=0 --speed=115200 ---word=8 --parity=no --stop=1
terminal composite

To make this take effect we need to update the boot archive. Simple run:

bootadm update-archive

Kernel Output

This is pretty simple! Run the following commands to set it up. Personally I do not enable this.

eeprom console=ttya
eeprom ttya-mode="115200,8,n,1,-"
bootadm update-archive

Console Login

Configure ttydef for serial port 1 and 2

sttydefs -a com0 -i '115200 hupcl opost onlcr ofill' -f '115200'
sttydefs -a com1 -i '115200 hupcl opost onlcr ofill' -f '115200'

Allow root to login from all consoles:

/usr/gnu/bin/sed -i 's/^CONSOLE=/#CONSOLE=/' /etc/default/login

Patching console-login smf

svccfg export console-login > console-login.xml 
patch < console-login.patch
svccfg import console-login.xml && rm console-login.xml console-login.patch console-login.xml.orig 
 
svcadm enable svc:/system/vtdaemon:default
svcadm enable svc:/system/console-login:com1
console-login.patch
--- console-login.xml   2014-08-31 17:51:26.074514551 +0200
+++ console-login.xml   2014-08-31 17:55:06.599390359 +0200
@@ -225,6 +225,42 @@
         <propval name='value_authorization' type='astring' value='solaris.smf.value.vt'/>
       </property_group>
     </instance>
+    <instance name='com0' enabled='false'>
+      <dependency name='system-console' grouping='require_all' restart_on='none' type='service'>
+        <service_fmri value='svc:/system/console-login:default'/>
+      </dependency>
+      <dependency name='vtdaemon' grouping='require_all' restart_on='none' type='service'>
+        <service_fmri value='svc:/system/vtdaemon:default'/>
+      </dependency>
+      <property_group name='ttymon' type='application'>
+        <propval name='device' type='astring' value='/dev/ttya' />
+        <propval name='label' type='astring' value='com0'/>
+        <propval name='modules' type='astring' value='ldterm,ttcompat'/>
+        <propval name='nohangup' type='boolean' value='true'/>
+        <propval name='prompt' type='astring' value='`uname -n` com0 login:'/>
+        <propval name='terminal_type' type='astring' value='vt100'/>
+        <propval name='timeout' type='count' value='0'/>
+        <propval name='value_authorization' type='astring' value='solaris.smf.value.vt'/>
+      </property_group>
+    </instance>
+    <instance name='com1' enabled='false'>
+      <dependency name='system-console' grouping='require_all' restart_on='none' type='service'>
+        <service_fmri value='svc:/system/console-login:default'/>
+      </dependency>
+      <dependency name='vtdaemon' grouping='require_all' restart_on='none' type='service'>
+        <service_fmri value='svc:/system/vtdaemon:default'/>
+      </dependency>
+      <property_group name='ttymon' type='application'>
+        <propval name='device' type='astring' value='/dev/ttyb' />
+        <propval name='label' type='astring' value='com1'/>
+        <propval name='modules' type='astring' value='ldterm,ttcompat'/>
+        <propval name='nohangup' type='boolean' value='true'/>
+        <propval name='prompt' type='astring' value='`uname -n` com1 login:'/>
+        <propval name='terminal_type' type='astring' value='vt100'/>
+        <propval name='timeout' type='count' value='0'/>
+        <propval name='value_authorization' type='astring' value='solaris.smf.value.vt'/>
+      </property_group>
+    </instance>
     <stability value='Evolving'/>
     <template>
       <common_name>
1) can be changed, see terminal –timeout
snipets/solaris/misc-serial-console.txt · Last modified: 2014/10/09 22:02 (external edit)