Updating Dell R710 iDRAC

Updating iDRAC on a Dell R710.

In this post I will cover my experience trying to update iDRAC on my Dell R710.

Missing Dependenices

While trying to run the downloaded script ./ESM_Firmware_KPCCC_LN32_2.92_A00.BIN from the Dell support website, I received the following error:

./getSystemId: not found 
not a dynamic executable 
This Update Package is not compatible with your system. 
spsetup.sh: 658: ./sputility.bin: not found

The mentioned files are stored inside the ESM_Firmware BIN file and can be extracted using the following command ./ESM_Firmware_KPCCC_LN32_2.92_A00.BIN --extract . Now that I have the files that the script is trying to execute I can inspect why these issues are occuring.

Running ./getSystemId returned a strange result

root@proxmox1:~# ./getSystemId
-bash: ./getSystemId: No such file or directory

Hmm… This is very strange. So I wanted to inspect the file more so I used the file command:

root@proxmox1:~# file getSystemId
getSystemId: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, stripped

So I cann see that it is a 32-bit Linux executable that is dynamically linked to interpreter /lib/ld-linux.so.2 Does this proxmox system even have /lib/ld-linux.so.2???

root@proxmox1:~# ls /lib/ld-linux.so.2
ls: cannot access '/lib/ld-linux.so.2': No such file or directory

Ok so I need to install the 32-bit version of the package that contains this interpreter. The debian package can be found here.

To install it I ran

dpkg --add-architecture i386
apt update
apt install libc6:i386

I then had to find out where it placed the ld-linux.so.2 file that I was after so I ran this command

root@proxmox1:~# dpkg -L libc6:i386 | grep ld-linux.so.2
/lib/i386-linux-gnu/ld-linux.so.2
/lib/ld-linux.so.2

Now I have the interpreter that was needed by the iDRAC update script, lets try run it again.

And another error

root@proxmox1:~# ./ESM_Firmware_KPCCC_LN32_2.92_A00.BIN
./getSystemId: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Error while loading shared libraries: libstdc++.so.5:
cannot open shared object file: No such file or directory.
Install the following dependencies:
RHEL: compat-libstdc.i686
SLES: libstdc++-33-32bit
Please check Dell Update package User guide for instructions
for installing the dependencies.
./sputility.bin: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory

The libxml2 package can be found here

So trying to install it gives

root@proxmox1:~# apt install libxml2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libxml2 is already the newest version (2.9.10+dfsg-6.7+deb11u2).
0 upgraded, 0 newly installed, 0 to remove and 48 not upgraded.

Ok, so it’s already installed. Let’s find it…

root@proxmox1:~# dpkg -L libxml2 | grep libxml2.so.2
/usr/lib/x86_64-linux-gnu/libxml2.so.2.9.10
/usr/lib/x86_64-linux-gnu/libxml2.so.2

Let’s create a symbolic link to this file in the /lib directory ln -s /lib/libxml2.so.2 /usr/lib/x86_64-linux-gnu/libxml2.so.2