/proc/cpuinfo doesn't present guest cpuinfo for most architectures (including M1 Macs)
Host environment
- Operating system: MacOS Big Sur 11.5.1
- OS/kernel version: Darwin MyMac.local 20.6.0 Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:27 PDT 2021; root:xnu-7195.141.2~5/RELEASE_ARM64_T8101 arm64
- Architecture: Apple M1
- Docker Desktop: 4.1.1 (69879)
- QEMU flavor: unknown, comes with docker desktop
- QEMU version: unknown, comes with docker desktop
- QEMU command line: ----
Emulated/Virtualized environment / Docker Image
Operating system:
- Operating system: Ubuntu 18.04.6 LTS x86_64
- OS/kernel version: Linux e66a90939f2d 5.10.47-linuxkit #1 SMP PREEMPT Sat Jul 3 21:50:16 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
- Architecture: x86
Description of problem
I tried to start Blender inside an amd docker container, emulated on M1 Mac, running noVNC to access the the GUI via Chrome. From Blender versions 2.8 and higher I get the following error message:
ArchError: Could not find 'cpu MHz' in /proc/cpuinfo
Function: Arch_InitTickTimer
File: /home/sybren/buildbot-builder/linux_glibc217_x86_64_cmake/build_deps/deps/build/usd/src/external_usd/pxr/base/arch/timing.cpp
Line: 133
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted
I posted the problem to Blender here as well as to docker here.
what I found out so far
The issue seems to be the /proc/cpuinfo
file which resembles the host system rather than the emulated system inside the container. So the x86 blender isnside the x86 container find a ARM cpuinfo file which does not provide the information cpuMHz
.
I also tested other settings like emulating arm linux on x86 windows to cross check if this behavior is unique to mac or m1. In this configuration the /proc/cpuinfo
once again matches the host not the emulation.
Regarding to a comment on my docker post this issue affects others as well
Same issue when running cadvisor images, arch detected as amd64 but no MHz/GHz info is in the cpuinfo
Steps to reproduce
You need:
-
✅ M1 Mac -
✅ Docker Desktop 4.1.1 (69879)
Setup the Container:
- Unzip the attached file
- In a terminal go to the unzipped folder
- run
source build-and-launch.sh
to build the image and spin up a container - open a browser and go to http://localhost:6901
- login using password
pass
- see the README.txt on the Desktop you just logged into
- == Follow the README instructions ==