Hello @rchnh2cooh, please include a flags line from cat /proc/cpuinfo (all cores should have the same contents). Also, what motherboard model/bios version do you have?
There's several motherboards from that time period which are missing microcode in the bios for LGA771 cpus and that leads to missing CMPXCHG16B. You should check if there's a bios update available for your system.
Hello @rchnh2cooh, please include a flags line from
cat /proc/cpuinfo(all cores should have the same contents). Also, what motherboard model/bios version do you have?There's several motherboards from that time period which are missing microcode in the bios for LGA771 cpus and that leads to missing CMPXCHG16B. You should check if there's a bios update available for your system.
Hello, @kisak-valve
cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU L5420 @ 2.50GHz
stepping : 10
microcode : 0xa0b
cpu MHz : 2477.639
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl cpuid aperfmperf pni tm2 ssse3 lahf_lm pti dtherm
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit
bogomips : 4999.53
clflush size : 64
cache_alignment : 64
address sizes : 38 bits physical, 48 bits virtual
power management:
my motherboard is Gigabyte g41m-combo, and i have the latest version of BIOS (according to gigabyte's site - 26/02/2012).
microcodes - last version:
modprobe cpuid && iucode_tool -tb -lS /tmp/micro
iucode_tool: system has processor(s) with signature 0x0001067a
microcode bundle 1: /tmp/micro/intel-microcode-64.bin
selected microcodes:
001/041: sig 0x00010676, pf_mask 0x80, 2010-09-29, rev 0x060f, size 4096
001/042: sig 0x00010676, pf_mask 0x40, 2010-09-29, rev 0x060f, size 4096
001/043: sig 0x00010676, pf_mask 0x10, 2010-09-29, rev 0x060f, size 4096
001/044: sig 0x00010676, pf_mask 0x04, 2010-09-29, rev 0x060f, size 4096
001/045: sig 0x00010676, pf_mask 0x01, 2010-09-29, rev 0x060f, size 4096
001/046: sig 0x00010677, pf_mask 0x10, 2010-09-29, rev 0x070a, size 4096
001/047: sig 0x0001067a, pf_mask 0xa0, 2010-09-28, rev 0x0a0b, size 8192
001/048: sig 0x0001067a, pf_mask 0x44, 2010-09-28, rev 0x0a0b, size 8192
001/049: sig 0x0001067a, pf_mask 0x11, 2010-09-28, rev 0x0a0b, size 8192
linux-ocjh:/home/rchnh2cooh/Downloads/intel-microcode-3.20151106.1 # dmesg | grep "updated"
[ 0.000000] microcode: microcode updated early to revision 0xa0b, date = 2010-09-28
Thanks, so this is a motherboard compatibility issue, and looking at Rev 1.3 Rev 1.4 Rev 2.0, that LGA771 processor is simply not supported in that LGA775 motherboard and you've encountered a side effect from mismatched hardware.
There was some related talk about this over on reddit, but modifying your bios is definitely risky and outside the scope of support for Steam.
Thanks, so this is a motherboard compatibility issue, and looking at Rev 1.3 Rev 1.4 Rev 2.0, that LGA771 processor is simply not supported in that LGA775 motherboard and you've encountered a side effect from mismatched hardware.
There was some related talk about this over on reddit, but modifying your bios is definitely risky and outside the scope of support for Steam.
But before updating Steam client worked normally, and i doesn't update my bios.
I'm going to re-open this for visibility, but missing hardware features from mismatched hardware is not a bug in Steam.
temporary solving of this problem was proposed on steamcommunity by xwing:
Ok, I may have a fix for you:
In order to workaround the check you have to replace an app named "steam-runtime-check-requirements". In my installation it's located here:
[code]
$HOME/.stema/ubuntu12_32/steam-runtime/i386/usr/bin/
$HOME/.stema/ubuntu12_32/steam-runtimeamd64/usr/bin/
[/code]
So the first step will be to do a backup of them:
[code]
mv $HOME/.stema/ubuntu12_32/steam-runtime/i386/usr/bin/steam-runtime-check-requirements $HOME/.stema/ubuntu12_32/steam-runtime/i386/usr/bin/steam-runtime-check-requirements.original
mv $HOME/.stema/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-check-requirements $HOME/.stema/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-check-requirements.original
[/code]
The next step is to create our "fake" runtime-check. For that this bash script will do the trick:
[code]
#!/bin/bash
exit 0
[/code]
and add the execution permissions (chmod +x to the file)
And finally you must copy the script to the folder of the originals:
[code]
cp fake-runtime-check $HOME/.stema/ubuntu12_32/steam-runtime/i386/usr/bin/steam-runtime-check-requirements
cp fake-runtime-check $HOME/.stema/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-check-requirements.original
[/code]
With that you should be able to workaround the issue... I think
TL;DR:
Execute this script (replace steam path properly before!) & run steam:
[code]
#!/bin/bash
STEAM_32BIT_PATH="$HOME/.steam/ubuntu12_32/steam-runtime/i386/usr/bin/"
STEAM_64BIT_PATH="$HOME/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin/"
CHECKER="steam-runtime-check-requirements"
CHECKER_OLD="steam-runtime-check-requirements.old"
cp $STEAM_32BIT_PATH/$CHECKER $STEAM_32BIT_PATH/$CHECKER_OLD
cp $STEAM_64BIT_PATH/$CHECKER $STEAM_64BIT_PATH/$CHECKER_OLD
echo '#!/bin/bash' &>FakeCheck
echo 'return 0' &>>FakeCheck
chmod +x FakeCheck
cp FakeCheck $STEAM_32BIT_PATH/$CHECKER
mv FakeCheck $STEAM_64BIT_PATH/$CHECKER
[/code]
оставлю это здесь. вдруг кто-то еще это ищет)
I have just checked PowerEdge 2950 with L5420 CPU, cx16 is in /proc/cpuinfo. I have made E5450 771 mod before, the problem is Intel microcode update did not work last time you booted Linux. You can avoid this problem by 1) fixing microcode update and/or 2) inserting 771 microcode into your BIOS ROM. This can be done by modding BIOS or using Coreboot.
^^ Valve stop reading here, should probably be closed, it is because of unfinished motherboard mod. Rare problem, it also involved physical hardware mod. You need to cut motherboard socket with scalpel and re-arrange LGA contacts on CPU with conductive sticker. ^^
https://www.delidded.com/lga-771-to-775-adapter/ has links to microcodes if I remember correctly. I don't remember if you can use the ones from Linux update, it's been a while.
You can get much better budget computer with Xeon 2620 v3 (needs X99 motherboard, very large socket). Can usually find for $20, 6 core Haswell. If you cannot find motherboard, ali express will have, $70 or so will be enough. Then you will also have quad channel DDR3/4. (Intel through Skylake all support DDR3 for sure, 14nm Xeon should also work in X99 board.) (Ali express has DDR3 and DDR4 X99 motherboards, you can use desktop or server memory.) Make sure to get quad channel board if using DDR3, some games will saturate DDR3 1600 dual channel on quad core haswell desktop. Server DDR3 $2/gb, desktop DDR3 $4/gb, desktop DDR4 $4/gb if you look. Server DDR4 expensive.
If you are heavily invested in socket 775, see if you can snipe E5450 for $5. You will need all you can get. I say this from experience.
If you need integrated graphics, I have found E3 1225 (Sandy Bridge) for $15. Good used/refurb OEM boards can be found for around $25. Sandy Bridge Xeon E3 does not need mod to work in desktop motherboard. May need microcodes, not sure, Dell Optiplex already had them in my case.
Not sure what status is on hyperscaler recycling, but they might be dumping 14nm broadwells (also X99) soon. Replaced by Ryzen, of course. (Skylake Xeons are a bit different, Ryzen is more similar to broadwell for certain users.) 16core 2GHz or so, 40MB cache, would be potential upgrade path if not available at your price yet. Assuming they do not destroy CPUs because they are worried about 140 atoms telling their secrets. Hard drive, you know, head may not be exactly aligned during shred...
I'm going to re-open this for visibility, but missing hardware features from mismatched hardware is not a bug in Steam.
To be clear, are these hardware features only required in Steam for Linux? In the reddit thread you linked it is claimed that the same CPU still works in Windows, which sounds odd (could it be that they are not opted into the Steam beta there or something along those lines?).
Compilers can be configured to build programs with level of instructions that are large enough to run program quickly and efficiently but small enough to be compatible with old CPU. According to Valve, Steam binaries require the instructions listed in README.md. Linux distro may need more or less. Gentoo for example, it can be configured to compile to use all of your CPU features.
He is probably using Windows 10, and his microcode update worked the time he booted Windows. He said it worked before in Linux, so probably his microcode update did not run. If you run Intel 771 CPU with no microcode, very strange things can happen, include missing half of CPU instructions/features.
Microcode update is run during boot and replaces CPU microcode with updated version from the OS. His BIOS does not have microcode, so if OS does not provide or has trouble providing, CPU will be running with no microcode.
So to be clear, he is running CPU with no microcode and it is not working properly. Just enough to boot Linux.
Nothing extracted yet.
Your system information
Running Steam on opensuse-tumbleweed 20200501 64-bit
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
Error: Sorry, this computer's CPU is too old to run Steam.
Steam requires at least an Intel Pentium 4 or AMD Opteron, with the following features:
- x86-64 (AMD64) instruction set (lm in /proc/cpuinfo flags)
- CMPXCHG16B instruction support (cx16 in /proc/cpuinfo flags)
- SSE3 instruction support (pni in /proc/cpuinfo flags)