Using Dell iDRAC6 Virtual Console without JavaWebStart

Authors

An image of Leondro Lio

Leondro Lio

I stare at Visual Studio Code for a living.

Share

About

Page created: 16th August 2022, 2:17:04 am

Last modified: 29th August 2022, 12:55:43 am

About a 5 minute read

A screenshot of both Dell iDRAC6 LOM remote access terminal and the stdout of the software that powers the terminal.
The access window currently displays a picture of the Proxmox system information, printed out with neofetch.
Much easier than expediting VGA cables straight to your datacentre.

As a strong advocate of recycling, I'm always for reusing old servers for all sorts of cool fun and personal projects. Being able to use all the features on older servers however, becomes a chore when you combine the trinity of licencing, old software and hardware.

After sourcing an iDRAC6 Enterprise Card from everyone's favourite second-hand shopping website, the only thing to get working is the software side of the equation, as even though Java is lauded for it's "write once, run anywhere" approach, Dell and it's partners have seemed to abandon the iDRAC6 remote access software in the past.

This tutorial assumes you already have access to the web interface. Log in with the default username of root and the password of calvin if you haven't yet changed the password.

1. Download the KVM software and libraries

From your server

With the IP address of your iDRAC6 web interface, download one of each file for your specific client operating system, depending on what you need.

We haven't tried this on any Windows, Linux and OS X ARM devices. You may need to install the AMD64 version of Java 8 and run it through your operating system of choices' architecture emulation layer of choice.

  1. avctKVM:
    • https://[ip here]/software/avctKVM.jar
  2. avctKVMIO:
    • https://[ip here]/software/avctKVMIOWin32.jar
    • https://[ip here]/software/avctKVMIOWin64.jar
    • https://[ip here]/software/avctKVMIOLinux32.jar
    • https://[ip here]/software/avctKVMIOLinux64.jar
    • https://[ip here]/software/avctKVMIOMac64.jar
  3. avctVM:
    • https://[ip here]/software/avctVMWin32.jar
    • https://[ip here]/software/avctVMWin64.jar
    • https://[ip here]/software/avctVMLinux32.jar
    • https://[ip here]/software/avctVMLinux64.jar
    • https://[ip here]/software/avctVMMac64.jar

Java 8

You will also need Java 8 installed, which you can retrieve from AdoptOpenJDK here. Even if you have Java 8 already installed, I recommend downloading a second copy, as we will need to re-enable some insecure encryption algorithms in a later step.

Top tip: Especially within Microsoft Windows, de-select "Add to Path" when this option comes up in your installer, you do not want to have this version of Java as your default, especially in 2022.

2. Laying out your files

Create a blank folder with all your files, as well as a blank lib folder for the shared libraries we will need to extract.

A Windows Explorer window with all downloaded files within

All the files dumped into one place

Extract your avctKVMIO and avctVM .jar files and place the resultant files (ignoring META-INF) into the lib folder. You can do this with 7zip on Windows, and unzip on Linux.

Folders with all files extracted

You might not have all the files in the /lib folder if you're not, for example, doing this on OSX

3. Modifying Java

To allow for avctKVM to run, we need to lower our security by re-allowing insecure TLS algorithms, since we've come a long way since 2012.

Find the /jre/lib/security/java.security file within the Java installation, before removing all algorithms set in the jdk.tls.disabledAlgorithms option.

Before

# Note: This property is currently used by the JDK Reference implementation.
# It is not guaranteed to be examined and used by other implementations.
#
# Example:
#   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

After

# Note: This property is currently used by the JDK Reference implementation.
# It is not guaranteed to be examined and used by other implementations.
#
# Example:
#   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
jdk.tls.disabledAlgorithms=

With IBM Semeru, I found my installation at
C:\Program Files\Semeru\jdk-8.0.345.1-openj9\jre\lib\security\java.security

On Ubuntu, the file was over at
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

Your kilometerage may vary for the location of these files.

Copy your full path to the java.exe or java executable, you will need this on the next step.

4. Start Script

Windows

Create a batch file named ./start.bat with the following, remembering to change the IP address, password and Java location.

"C:\Program Files\Semeru\jdk-8.0.345.1-openj9\bin\java.exe" ^
  -cp avctKVM.jar ^
  -Djava.library.path=.\lib ^
  com.avocent.idrac.kvm.Main ^
  ip=10.0.0.215 ^
  vmprivilege=true ^
  helpurl=https://gosystem.co.uk/blog/2022-08-14-idrac6-without-javawebstart ^
  title=My+Home+Server ^
  user=root ^
  passwd=calvin ^
  kmport=4559 ^
  vport=4559 ^
  apcp=1 ^
  version=2 ^

Linux

Create a shell script named ./start.sh with the following, remembering to change the IP address, password and Java location.

#!/bin/bash

/usr/lib/jvm/java-8-openjdk-amd64/bin/java \
  -cp avctKVM.jar \
  -Djava.library.path=./lib \
  com.avocent.idrac.kvm.Main \
  ip=10.0.0.215 \
  vmprivilege=true \
  helpurl=https://gosystem.co.uk/blog/2022-08-14-idrac6-without-javawebstart \
  title=My+Home+Server \
  user=root \
  passwd=calvin \
  kmport=4559 \
  vport=4559 \
  apcp=1 \
  version=2 \

Don't forget to make your shell script executable!

$ chmod +x start.sh

5. Test

Try running your script! You should see the VGA output from your server, and be able to control any mouse input such as for Windows Server.

A screenshot of the iDRAC6 KVM software, with the help screen opened.

Not sure why you would run the software in Windows Subsystem for Linux, but it works there too!

Known Issues

  • The first time I ran the software on Linux, it immediately crashed with the following error:

    free(): invalid pointer
    

    Not sure what happened, but it hasn't crashed since running it again.

Found any additional problems with iDRAC or this post? Contact us and help the goSystem community by letting us know.

Let goSystem empower you and your business with IT
Contact Us
goSystem Logo

goSystem Solutions Limited is a company registered in England and Wales with company number: 12925922

DUNS number: 226323931