Skip to content

DellConsole

Rob Nagler edited this page Nov 19, 2018 · 7 revisions

Dell Console

You can communicate with the console "port" of Dell servers via the iDRAC in a number of ways.

Our m1000e has an iKVM, which allows you to talk to the console (see p185) at the data center. That's practical for initializing the chassis management controller (CMC), but not useful otherwise. Obviously, it's good in a panic, too.

The best remote way to connect to m620s is via the Java Console. You connect by:

idrac_console fnl99

This will prompt you for a password.

Java Console

If you have an iDRAC Enterprise license, you can use VNC to connect to your iDRAC. We don't so we have to use the built-in VNC console written in Java that's built into the iDRAC. It doesn't work out of the box unless you are on the same net as you iDRAC, unfortunately, which isn't the case.

We don't want our iDRAC directly connected to the Internet. We also don't want to hang out in a data center -- rather noisy especially when the m1000e boots. This means we have to tunnel our console ports via ssh. Unfortunately, the Java console is not aware that we are doing that, and it doesn't work by simply clicking on Launch Virtual Console in the iDRAC web GUI.

We wrote a simple wrapper called idrac-java-console, which does the work of fixing up the JLNP file created by the iDRAC. It's a bit of a hack, but works with our verison (2.15.10.10) of the iDRAC firmware. If there's enough interest, we'll generalize it. The Python docstring tells you how to use the program.

Once setup, you'll be able to see the console. This is useful if you haven't installed one of these puppies before. (Would you be reading this if you were an expert at configuring Dell blades?)

Java Console Gotchas

  • Don't turn on Single Cursor mode. It can completely take over your computer to the point where you have to hard reboot.
  • Soemtimes keystrokes no longer are sent to the DRAC. Not sure what's going on, but you have to reboot.

Dell has said that it is better to use Windows for the Java Console.

idrac-m620-setup.sh

We've enacpsulated all the m620 setup code in idrac-m620-setup.sh, which is a sequence of functions you can selectively execute, including ra.

Serial over LAN (SOL) Console

One of the things you want to be able to do is connect to the console port of the computer so you can configure the BIOS and such.

Serial over LAN is a standard protocol in the Intelligent Platform Management Interface (IPMI), which is a set of protocols for communicating out-of-band with the computer system via the Baseboard Management Controller (BMC), aka. Dell's iDRAC. One of the protocols is Serial over LAN (SOL) console.

You can connect to the SOL console in a number of ways. The most popular (and the one Dell recommends) is ipmitool. This is available as an rpm for CentOS.

Unfortunately, ipmitool is a bit lame. Here's an example output:

$ ipmitool -v -I lanplus -H 192.168.1.233 -U root sol activate
Password:
Running Get PICMG Properties my_addr 0x20, transit 0, target 0x20
Error Response 0xc1 from Get PICMG Properities
No PICMG Extenstion discovered
[SOL Session operational.  Use ~? for help]

That's it. You don't get any more information, because nothing is happening. You don't know if the machine is booted, hung in the boot, or whatever. SOL doesn't have the ability to retrieve history. It's still useful to have, especially when you aren't in a position to use a GUI so let's configure it.

If you reboot the device, you can can get into the console so you might want to use both the Java and serial consoles side by side, since the Java console loses the ability to enter keystrokes.

Configuring ipmitool (and SOL console)

You can't just use ipmitool, however. You first have to configure the iDRAC to allow it. There are some gotchas.

First you have to configure IPMI over the LAN using racadam. Others hand edit the BIOS, but we're trying to be fully automated here.

Here's the command to turn on Dell's IPMILan feature;

$ ra 1 set iDRAC.IPMILan.Enable 1
Password:
Security Alert: Certificate is invalid - self signed certificate
Continuing execution. Use -S option for racadm to stop execution on
certificate-related errors.
[Key=iDRAC.Embedded.1#IPMILan.1]
Object value modified successfully

Unlike many other BIOS configuration options, this takes effect immediately. See RACADM Command Line Reference Guide iDRAC7 (p278) for a complete description of this command.

SerialCommSettings

Before you can use the SOL console, you have to set the SerialCommSettings. Let's get them first:

$ ra 1 get BIOS.SerialCommSettings
[Key=BIOS.Setup.1-1#SerialCommSettings]
ConTermType=Vt100Vt220
FailSafeBaud=115200
RedirAfterBoot=Enabled
SerialComm=Off
SerialPortAddress=Com1

This might be how your SerialCommSettings are set by default. We want to turn on console redirection. Just to be sure, we'll use all the possible racadm commands to set this up (in bash):

slot=1
ra "$slot" set BIOS.SerialCommSettings.ConTermType Vt100Vt220
ra "$slot" set BIOS.SerialCommSettings.RedirAfterBoot Enabled
ra "$slot" set BIOS.SerialCommSettings.SerialPortAddress Serial1Com2Serial2Com1
ra "$slot" set BIOS.SerialCommSettings.SerialComm OnConRedirCom2
ra "$slot" set BIOS.SerialCommSettings.FailSafeBaud 115200

SerialCommSettings ssh to drac

https://www.slac.stanford.edu/grp/cd/soft/unix/EnableSerialConsoleAccessViaSSH.htm

ssh root@<idrac-ip>
racadm
set IOS.SerialCommSettings.RedirAfterBoot Enabled
set BIOS.SerialCommSettings.SerialPortAddress Serial1Com2Serial2Com1
jobqueue create BIOS.Setup.1-1
serveraction powercycle
ssh root@<idrac-ip>
console com2

racadm set iDRAC.SSH.Enable 1

You need to commit the changes with a job:

ra "$slot" jobqueue create BIOS.Setup.1-1 -r pwrcycle -s TIME_NOW -e TIME_NA

Learn jobs work on the iDRAC to see why this might not work the first time.

CentOS 7 Serial Console (Serial1Com2Serial2Com1)

https://kernelmanic.com/2015/10/14/enable-serial-console-on-centosrhel-7/

https://help.ubuntu.com/community/SerialConsoleHowto

$ diff /etc/default/grub-dist /etc/default/grub
5,6c5,7
< GRUB_TERMINAL_OUTPUT="console"
< GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=2f8476d6:c69ef43a:634bb920:01b6e507 rd.lvm.lv=centos/root rd.md.uuid=591be47b:fb3549c1:28d3b4b0:57583bf5 rhgb quiet"
---
> GRUB_TERMINAL="console serial"
> GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
> GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=2f8476d6:c69ef43a:634bb920:01b6e507 rd.lvm.lv=centos/root rd.md.uuid=591be47b:fb3549c1:28d3b4b0:57583bf5 console=tty1 console=ttyS0,115200n8"
grub2-mkconfig -o /boot/grub2/grub.cfg

To test:

systemctl start serial-getty@ttyS0.service

To enable:

systemctl enable serial-getty@ttyS0.service

Dell Key Mappings

When you are connected to ssh console com2, you can get to various things this way:

  • ESC-1 F1
  • ESC-2 System Setup (F2)
  • ESC-0 Lifecycle Controller (F10)
  • ESC-! BIOS Boot (F11)
  • ESC-@ PXE Boot

This doesn't seem to work:

  • Use the <ESC><R><ESC><r><ESC><R> key sequence for <Ctrl><Alt><Del>