{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreic6soizorx35ixh3jhk2da7il26uq2efsqhhvifkk242wjqirgvji",
"uri": "at://did:plc:46ti67tc37qcmwp2vaynk6fq/app.bsky.feed.post/3mnerycqhnan2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreifqaymphlhaou7ymuxlsdcq46k6c4k27dbs2lrqq2rxp5ioaxmdoy"
},
"mimeType": "image/jpeg",
"size": 8554
},
"path": "/2026/06/03/running-linux-i386-binary-steamcmd-via-debootstrap-foreign-chroot/",
"publishedAt": "2026-06-03T09:23:54.514Z",
"site": "https://00formicapunk00.wordpress.com",
"tags": [
"Steam command line client",
"Doom3 BFG shooter",
"Box64 benchmarks",
"Doom3 BFG instructions"
],
"textContent": "The Steam command line client, which I need to download the game data for the Doom3 BFG shooter, is only available as an Linux i386 binary. As my main home computer is an arm64 box, this could be an issue, but today we have no less than three different ways to run a Linux i386 binary on arm64: Fex, Box32/64 and the older qemu-user mode. According to the Box64 benchmarks, qemu-user is the slowest of the three. But since this is only to run a command line tool downloader, where network speed is the bottleneck, this doesn’t matter a lot.\n\nRunning steamcmd outside of a chroot via qemu-user and dpkg multiarch support was failing me with the error `i386-binfmt-P: Could not open '/lib/ld-linux.so.2': No such file or directory` even after installing the i386 libc. So I went the way of qemu-user and a chroot environment, a bit more convoluted but I can run any i386 binaries there in the future.\n\nCreate a debian-i386 chroot environment via deboostrap:\n\n\n $ sudo apt install qemu-user qemu-user-binfmt debootstrap\n $ fakeroot debootstrap --foreign --arch=i386 debian-i386\n $ sudo chroot debian-i386\n # inside the chroot\n # /debootstrap/debootstrap --second-stage\n # exit\n\n\nAdd needed mounts to run binaries inside the chroot:\n\n\n $ sudo mount --bind /dev/ debian-i386/dev/\n $ sudo mount --bind /dev/pts debian-i386/dev/pts\n $ sudo mount -t proc none debian-i386/proc/\n\n\nInstall steamcmd in the chroot client:\n\n\n $ sudo chroot debian-i386\n\n # export LANG=C\n # cat /etc/apt/sources.list\n deb http://deb.debian.org/debian stable main contrib non-free\n # apt update && apt install --yes steamcmd\n # useradd --create-home --shell /bin/bash steam\n # su - steam\n $ steamcmd\n ... will download an updated version of the tool, and print a lot of tracing information\n\n Steam> quit\n\n\nFrom now on you can follow the Doom3 BFG instructions to download the game data.\n\nOnce you exit the chroot, the game data will be available at `debian-i386/home/steam/`",
"title": "Emmanuel Kasper: Running Linux i386 binary (steamcmd) via debootstrap foreign chroot",
"updatedAt": "2026-06-03T08:50:29.000Z"
}