Install 32bit glibc without downgrading 64 bit??

Issues related to applications and software problems and general support
Post Reply
mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Install 32bit glibc without downgrading 64 bit??

Post by mathog » 2020/03/20 19:09:13

Installed CentOS 8 on a Powerdge T110 II. This system was a spare which never had CentOS 7 installed on it, so It still needed the BIOS and BMC firmware updated. Dell doesn't list RH 8 as a supported OS, the most recent is RH 7. Nevertheless downloaded these:

Code: Select all

T110-II_BIOS_5R0T5_LN_2.10.0.BIN
T110-II_ESM_Firmware_414G9_LN32_1.95_A00.BIN
The first one installed OK and updated the BIOS with:

Code: Select all

./T110-II_BIOS_5R0T5_LN_2.10.0.BIN
Unfortunately when the 2nd one runs it does this:

Code: Select all

Collecting inventory...
..../bmcie.sh: line 27: ./bmcfwul: No such file or directory
.
Inventory collection failed.
If it is run with --extract the bmcfwul binary appears in that directory. This script was used on some other similar machines which were running CentOS 7. So either this is a 7 vs. 8 difference or there is something package missing that it needs, but it doesn't warn about. It is a 32 bit dynamic binary. Trying to run it interactively gives the same thing:

Code: Select all

file bmcfwul
bmcfwul: sticky ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, not stripped
./bmcfwul
bash: ./bmcfwul: No such file or directory
This was because it needed 32 bit versions of glibc. Unfortunately...

Code: Select all

dnf install glibc-2.28-72.el8.i686
CentOS-8 - AppStream                                                 14 kB/s | 4.3 kB     00:00    
CentOS-8 - Base                                                      15 kB/s | 3.8 kB     00:00    
CentOS-8 - Extras                                                   2.9 kB/s | 1.5 kB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64                       85 kB/s |  19 kB     00:00    
Dependencies resolved.
====================================================================================================
 Package                       Architecture       Version                  Repository          Size
====================================================================================================
Installing:
 glibc                         i686               2.28-72.el8              BaseOS             3.3 M
Downgrading:
 glibc                         x86_64             2.28-72.el8              BaseOS             3.5 M
 glibc-common                  x86_64             2.28-72.el8              BaseOS             811 k
 glibc-langpack-en             x86_64             2.28-72.el8              BaseOS             818 k

Transaction Summary
====================================================================================================
Install    1 Package
Downgrade  3 Packages

Total download size: 8.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): glibc-langpack-en-2.28-72.el8.x86_64.rpm                     3.1 MB/s | 818 kB     00:00    
(2/4): glibc-2.28-72.el8.i686.rpm                                    18 MB/s | 3.3 MB     00:00    
(3/4): glibc-common-2.28-72.el8.x86_64.rpm                          1.8 MB/s | 811 kB     00:00    
(4/4): glibc-2.28-72.el8.x86_64.rpm                                 3.4 MB/s | 3.5 MB     00:01    
----------------------------------------------------------------------------------------------------
Total                                                               3.5 MB/s | 8.4 MB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                            1/1 
  Downgrading      : glibc-common-2.28-72.el8.x86_64                                            1/7 
  Downgrading      : glibc-langpack-en-2.28-72.el8.x86_64                                       2/7 
  Running scriptlet: glibc-2.28-72.el8.x86_64                                                   3/7 
  Downgrading      : glibc-2.28-72.el8.x86_64                                                   3/7 
  Running scriptlet: glibc-2.28-72.el8.x86_64                                                   3/7 
  Running scriptlet: glibc-2.28-72.el8.i686                                                     4/7 
  Installing       : glibc-2.28-72.el8.i686                                                     4/7 
  Running scriptlet: glibc-2.28-72.el8.i686                                                     4/7 
  Cleanup          : glibc-2.28-72.el8_1.1.x86_64                                               5/7 
  Cleanup          : glibc-langpack-en-2.28-72.el8_1.1.x86_64                                   6/7 
  Cleanup          : glibc-common-2.28-72.el8_1.1.x86_64                                        7/7 
  Running scriptlet: glibc-common-2.28-72.el8_1.1.x86_64                                        7/7 
  Running scriptlet: glibc-common-2.28-72.el8.x86_64                                            7/7 
  Verifying        : glibc-2.28-72.el8.x86_64                                                   1/7 
  Verifying        : glibc-2.28-72.el8_1.1.x86_64                                               2/7 
  Verifying        : glibc-common-2.28-72.el8.x86_64                                            3/7 
  Verifying        : glibc-common-2.28-72.el8_1.1.x86_64                                        4/7 
  Verifying        : glibc-langpack-en-2.28-72.el8.x86_64                                       5/7 
  Verifying        : glibc-langpack-en-2.28-72.el8_1.1.x86_64                                   6/7 
  Verifying        : glibc-2.28-72.el8.i686                                                     7/7 

Downgraded:
  glibc-2.28-72.el8.x86_64  glibc-common-2.28-72.el8.x86_64  glibc-langpack-en-2.28-72.el8.x86_64 

Installed:
  glibc-2.28-72.el8.i686                                                                            

Complete!
bmcfwul will run now, but before I install the firmware, which requires a reboot, what exactly did those "downgrades" do? The x86_64 packages are still installed. What changed?

Thanks.

User avatar
TrevorH
Site Admin
Posts: 33218
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: Install 32bit glibc without downgrading 64 bit??

Post by TrevorH » 2020/03/20 19:15:39

You went from 2.28-72.el8_1.1 to an earlier version. You should yum update to get back to where you were and post whatever the errors are when it fails. Your mirror/repo must be missing the latest i686 package.
The future appears to be RHEL or Debian. I think I'm going Debian.
Info for USB installs on http://wiki.centos.org/HowTos/InstallFromUSBkey
CentOS 5 and 6 are deadest, do not use them.
Use the FAQ Luke

mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Re: Install 32bit glibc without downgrading 64 bit??

Post by mathog » 2020/03/20 20:55:33

TrevorH wrote:
2020/03/20 19:15:39
You went from 2.28-72.el8_1.1 to an earlier version. You should yum update to get back to where you were and post whatever the errors are when it fails. Your mirror/repo must be missing the latest i686 package.
Not the repo, I cut and pasted the wrong line from

Code: Select all

dnf provides /lib/libdl.so.2
as there were a couple of matches. "dnf update" fixed it.

Thanks.

mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Re: Install 32bit glibc without downgrading 64 bit??

Post by mathog » 2020/03/20 21:08:30

What is the CentOS 8 equivalent of this?

Code: Select all

compat-libstdc++-33-3.2.3-72.el7.i686
Thanks.

User avatar
jlehtone
Posts: 4530
Joined: 2007/12/11 08:17:33
Location: Finland

Re: Install 32bit glibc without downgrading 64 bit??

Post by jlehtone » 2020/03/21 00:46:13

That package provides 32-bit libstdc++ that was originally supplied with GCC 3.3.
The package exists for compatibility, just to keep old binaries functional.

RH 5 had already GCC 4. The compat-libstdc++-33 could be found from CentOS 5, 6, and 7.
RH 5 appeared about 2007. Do you really have 14+ years old unreplaceable binaries?

mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Re: Install 32bit glibc without downgrading 64 bit??

Post by mathog » 2020/03/21 17:42:35

jlehtone wrote:
2020/03/21 00:46:13
RH 5 had already GCC 4. The compat-libstdc++-33 could be found from CentOS 5, 6, and 7.
RH 5 appeared about 2007. Do you really have 14+ years old unreplaceable binaries?
At least one - see the first post in this thread. This situation isn't that unusual when working with older hardware. The manufacturers tend to stick with firmware loaders based on tried and true, ie very old, programs. These tend to be archaic even when the last firmware update is released, and only become more difficult to use as the years pass.

This machine also has Ubuntu 18.04 LTS as an option, but it couldn't even run the BIOS updater. If push comes to shove I can install Centos 7 on some partition, boot that, install the BMC update, then wipe that partition.

It would be a lot easier to load compat-libstdc++ though. Perhaps the el7 one will install on CentOS 8? Either that or maybe I can copy the needed dynamic library files (and their dependencies, if any) from a CentOS 7 system into a directory, set up LD_LIBRARY_PATH to point to it, and go from there?

User avatar
jlehtone
Posts: 4530
Joined: 2007/12/11 08:17:33
Location: Finland

Re: Install 32bit glibc without downgrading 64 bit??

Post by jlehtone » 2020/03/21 18:01:03

I would try whether yum is willing to install the rpm. If not, I wonder if it is possible to rebuild the rpm from srpm in el8.

Would it be possible to run a el7 container in the el8 system? Probably, but would it have sufficient access to hardware?

Some programs are statically linked monoliths. Nearly independent of the OS. Too bad the hw vendors did not do that.

mathog
Posts: 258
Joined: 2008/07/09 23:52:06

Re: Install 32bit glibc without downgrading 64 bit??

Post by mathog » 2020/03/23 21:17:10

There were only two files in compat-libstdc++-33 (well, a file and a link) and those were copied over to /lib from a CentOS 7 system. But the firmware installer still did not work. In retrospect perhaps all it needed was a reboot or ldconfig. Before that happened though, a couple of other suspects were installed because of the instsvcdrv messages which were appearing, and one or both of these may be needed too.

Code: Select all

dnf install OpenIPMI
dnf install redhat-lsb-core
At that point it was rebooted, and then this ran without problems:

Code: Select all

./T110-II_ESM_Firmware_414G9_LN32_1.95_A00.BIN
However, the BCM won't let anything connect to the shared port. An nmap subnet scan shows the MAC of the shared ethernet interface at the hardcoded IP address, but a port scan of that IP address shows all ports closed, and an https: connection to it times out. This looks like it is probably this non-CentOS issue:

https://blog.le-vert.net/?p=178

So, bottom line, it was possible with way too much effort to upgrade the firmware on this machine under CentOS 8, but the compat-libstdc++-33 files had to come from either an existing CentOS 7 (as here) or by unpacking the corresponding RPM on CentOS 8.

Thank you for all the help.

Post Reply