Dell iDRAC6 virtual console viewer from GNU/Linux command line

6,189

Solution 1

assuming iDRAC IP is 10.64.31.76

download this file https://10.64.31.76:443/software/avctKVM.jar from your idrac

run:

java -cp Downloads/avctKVM.jar com.avocent.idrac.kvm.Main ip=10.64.31.76 kmport=5900 vport=5900 user=root passwd=calvin apcp=1 version=2 vmprivilege=true "helpurl=https://10.64.31.76:443/help/contents.html"

user and root passwords are the idrac credentials.

I got a working console

tested with:

  • Windows 10
  • java version "10.0.2" 2018-07-17
  • Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
  • Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
  • iDRAC 6 Enterprise
  • PowerEdge R310

credits to: https://gist.github.com/xbb/4fd651c2493ad9284dbcb827dc8886d6

Solution 2

There are 2 console available:

  1. VGA via iDRAC VNC
  2. Serial via IPMI Serial Over Lan

VGA

  1. Install JDK
  2. Linux workstation: download avctVMLinux64.jar and avctKVMIOLinux64.jar. Create a lib folder, then unpack libavctKVMIO.so and libavmlinux.so into lib/ folder. You can find the URLs in the *.jnlp file.
  3. Windows workstation: download similar files found in *.jnlp. Download avctVMWin64.jar and avctKVMIOWin64.jar. Create lib folder, then unpack avctKVMIO.dll and avmlinux.dll into lib folder.
  4. Edit jre/lib/security/java.security and make sure you remove 3DES_EDE_CBC from jdk.tls.legacyAlgorithms=
  5. Import SSL certificate: $JAVA_HOME/bin/keytool -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -importcert -file <(echo ""|openssl s_client -connect iDRACHostName:443 2>/dev/null|openssl x509) -alias iDRACHostName -noprompt
  6. Connect: $JAVA_HOME/bin/java -cp avctKVM.jar -Djava.library.path=./lib com.avocent.idrac.kvm.Main ip=iDRACHostName kmport=5900 vport=5900 apcp=1 version=2 vmprivilege=true helpurl=https://iDRACHostName:443/help/contents.html user=Administrator passwd=ipmi_password

IPMI SOL

  1. Configure serial redirection in BIOS
  2. Linux: configure serial support in GRUB and install and configure a serial agetty
  3. Windows: enable serial console, then reboot: bcdedit /ems {current} on then bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  4. Connect: ipmitool -I lanplus -H iDRACHostName -U Administrator -P password sol activate
Share:
6,189
Ole Tange
Author by

Ole Tange

I am strong believer in free software. I do not believe in Santa, ghosts, fairies, leprechauns, unicorns, goblins, and gods. Author of GNU Parallel.

Updated on September 18, 2022

Comments

  • Ole Tange
    Ole Tange 3 months

    I am annoyed that I have to launch a webbrowser just because I want to use the virtual console through the iDRAC6.

    I managed to download viewer.jnlp and I can start the viewer with:

    javaws viewer.jnlp
    

    But it seems viewer.jnlp changes for each run. Specifically:

    <argument>user=1234567890</argument>                                                   
    <argument>passwd=123456789</argument>                                                  
    

    My guess is that iDRAC6 makes a random user/password for each run and that this can be used only once.

    I would much prefer, if I could simply do:

    drac-virtual-console-viewer username password drac.ip.nr
    

    Is there a tool for that?

    Or is there a way I can download the viewer.jnlp given the username/password?

    It seems other versions of the iDRAC support VNC, but I cannot get that to work on the iDRAC6. But if I could get that to work, it would also solve my problem.

    System: Dell R815 iDRAC6

    • gregg
      gregg over 2 years
      Have you heard or used racadm? It's a command-line tool you use to tweak iDRAC, BIOS, get logs, etc. You don't see the BIOS startup in a GUI, but you can query BIOS settings & set those settings. I think its available for iDRAC6 & Linux? dell.com/support/manuals/us/en/04/…
  • Ole Tange
    Ole Tange over 2 years
    Now there is also a GNU/Linux command: gitlab.com/ole.tange/tangetools/-/tree/master/drac
  • Ole Tange
    Ole Tange over 2 years
    How does your first solution differ from exeral's? It seems the last command is essentially the same.
  • desasteralex
    desasteralex over 2 years
    @Ole: Tops for the solution. Mixing foo and $(bar) in one script, please don't :).
  • RaveTheTadpole
    RaveTheTadpole about 2 years
    This improves on the accepted answer. The added details around the security exceptions and importing the certificate made this work for me, whereas the simple version did not.