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.
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:
After that you also need to install some libs in your CentOS container.
This works fine for me. Steamcmd works fine