Running 32-bit Programs in CentOS 7 Container on OpenWrt: Troubleshooting Steamcmd Issue

230 Views Asked by At

I'm running a CentOS 7 container inside a Docker on OpenWrt with the following kernel version: Linux iStoreOS 5.10.176 #0 SMP Tue Jul 25 05:14:16 2023 x86_64 GNU/Linux. However, no matter what I try, I can't run the 32-bit version of steamcmd within the CentOS 7 container. It gives the following error: ./steamcmd.sh: line 37: /home/steamcmd/linux32/steamcmd: cannot execute binary file. What could be the issue? Why can't a 64-bit CentOS run a 32-bit program? I've already installed the required dependencies for running 32-bit programs: glibc.i686, libstdc++.i686, libcurl4-gnutls-dev.i686, and libcurl.i686.

Expected that the steamcmd program would execute successfully without any issues.

1

There are 1 best solutions below

1
DimW On

Solved this problem by set these two flags CONFIG_IA32_EMULATION=y, CONFIG_X86_X32=y in kernel config and recompile the openwrt firmware.

Flags:

CONFIG_IA32_EMULATION=y
CONFIG_X86_X32=y

After that you also need to install some libs in your CentOS container.

This works fine for me. Steamcmd works fine