添加多架构(i386)跨设备和运行时支持

添加多架构(i386)跨设备和运行时支持

在 22.04.03 系统上我添加了 i386 架构支持:

sudo dpkg --add-architecture i386

我可以看到 multiarch-support 已经安装:

sudo apt list --installed multi*
Listing... Done
multiarch-support/now 2.27-3ubuntu1.5 amd64 [installed,local]

当我尝试执行 32 位程序时收到此错误:

bash: ./awk: cannot execute binary file: Exec format error

file ./awk
./awk: ELF 32-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libx32/ld-linux-x32.so.2, BuildID[sha1]=814da5a7561a71760e7ee54790fef0e6fbc6f4a7, for GNU/Linux 3.4.0, stripped

当我查看 /libx32 时发现它是空的。

我之前已经设置了交叉编译(在另一个 22.04 系统上,其中 32 位和 64 位二进制文​​件正在运行)并且我不记得我特别做了什么来使它运行。

任何指点都值得赞赏。

答案1

从内核 6.5 降级到 5.15 解决了我的问题。

我安装了 arch-test,它在正常工作的系统上显示 3 个条目 (amd64、i386 和 x32),但在损坏的系统上只显示 (amd64、i386)。arch-test 检查内核 (而不是发行版)。因此我回滚了内核并修复了这个问题。

我希望放弃 x32 biarch 支持不是故意的。我该如何提出这个问题?

顺便说一下,您还需要安装软件包 libc6-x32,但正确的内核却没有帮助。

相关内容