crmrhm
October 14, 2025, 9:41pm
1
I tried to use opensuse-migration-tool to go from Leap 15.6 to 16.0 on a ThinkPad X201. CPU check shows:
`howard@X201-oS15KDE:~> /lib64/ld-linux-x86-64.so.2 --help
Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]… EXECUTABLE-FILE [ARGS-FOR-PROGRAM…]
You have invoked ‘ld.so’, the program interpreter for dynamically-linked
ELF programs. Usually, the program interpreter is invoked automatically
when a dynamically-linked executable is started.
This program interpreter self-identifies as: /lib64/ld-linux-x86-64.so.2
Shared library search path:
(libraries located via /etc/ld.so.cache)
/lib64 (system search path)
/usr/lib64 (system search path)
Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3
x86-64-v2 (supported, searched)
howard@X201-oS15KDE:~>
`
So has v2. But the tool returns:
What’s happening here?
That’s not a sufficient test. It doesn’t necessarily confirm that the CPU actually supports all required v2 instruction set extensions.
You need to check exactly which flags are missing…
grep -o 'sse4_2\|popcnt\|cx16\|ssse3\|sse3\|lahf_lm' /proc/cpuinfo | sort -u
. That’s what the opensuse-migration-tool
checks against.
If any of the x86-64-v2
features (like sse4_2
or popcnt
) are absent, then Leap 16 will not install.
crmrhm
October 14, 2025, 10:49pm
3
howard@X201-oS15KDE:~> grep -o 'sse4_2\|popcnt\|cx16\|ssse3\|sse3\|lahf_lm' /proc/cpuinfo | sort -u
cx16
lahf_lm
popcnt
sse4_2
ssse3
howard@X201-oS15KDE:~>
so sse3 is missing, hence no installation. Sad, I really like this X201.
Thanks,
Howard
jsulig
October 14, 2025, 11:26pm
4
crmrhm
October 15, 2025, 12:03am
5
Yes, the pni flag is present:
howard@X201-oS15KDE:~> grep -o 'pni' /proc/cpuinfo | sort -u
pni
howard@X201-oS15KDE:~>
The Info Center lists the flags as:
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid dtherm ida arat vnmi flush_l1d
but something must be missing that the opensuse-migration-tool requires.
Looking at opensuse-migration-tool at line 133 I read:
required_v2_flags=("cx16" "sse4_1" "sse4_2" "popcnt" "xsave")
so am I missing something? sse3/pni does not seem to have a role?
Looks as “xsave” is missing?
jsulig
October 15, 2025, 12:38am
8
2 Likes
It is opensuse-migration-tool
that is using the wrong test.
opened 04:00PM - 28 Sep 25 UTC
closed 04:47PM - 01 Oct 25 UTC
`movbe` flag is currently required for x86-64-v2 micro-architecture:
https://git… hub.com/openSUSE/opensuse-migration-tool/blame/a2db6dea523b5e5789ce6d2aa8eb205ad568cf86/opensuse-migration-tool#L133
while https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels says that `movbe` is needed only for x86-64-v3 variant.
Mod edit: Unnecessary arrogant comments removed.
Is that the reason why the migration tool claims the processors on my kvm host are not v2 and won’t update the system from 15.6 to 16 even though that same system runs new installs of Leap 16 perfectly fine in virtual machines?
crmrhm
October 15, 2025, 5:27am
11
hui
October 15, 2025, 5:30am
12
You can download the code from github via zip file. Unpack the zip file. Runthe tool as usual (as described on the github page and the Leap upgrade wiki). You need to specify the file path or the old script supplied by the rpm will still get used.
Run it:
sudo /path-to-where-you-have-unpacked-the-file/opensuse-migration-tool
crmrhm
October 15, 2025, 6:22am
13
I got the file without movbe, but had to edit it to remove the xsave requirement. It is now running, downloading 3182 packages.
1 Like
Consider submitting an issue (or, better, PR) then. Indeed, xsave
is defined for x86_64-v3
.
hui
October 15, 2025, 11:01am
15
The issue with xsave is already identified and reported. Only a PR would be needed…
opened 07:08AM - 03 Oct 25 UTC
Hi folks,
first, thanks a lot for creating this nice tool! It saves a lot of ti… me :)
For one of my machines, which is an older intel Celeron in a NUC device, the tool complains about incompatible CPU wile it seems to have the correct microcode. Here is my lscpu output (with the sse4_2 flag set):
<
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 36 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Vendor ID: GenuineIntel
Model name: Intel(R) Celeron(R) CPU N3050 @ 1.60GHz
CPU family: 6
Model: 76
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
Stepping: 3
CPU(s) scaling MHz: 22%
CPU max MHz: 2160.0000
CPU min MHz: 480.0000
BogoMIPS: 3200.00
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 ss ht tm pbe syscall nx rdtscp lm c
onstant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable
nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monito
r ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt ts
c_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb sti
bp tpr_shadow flexpriority ept vpid tsc_adjust smep erms dtherm ida ara
t vnmi md_clear
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 48 KiB (2 instances)
L1i: 64 KiB (2 instances)
L2: 2 MiB (2 instances)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0,1
Vulnerabilities:
Gather data sampling: Not affected
Indirect target selection: Not affected
Itlb multihit: Not affected
L1tf: Not affected
Mds: Mitigation; Clear CPU buffers; SMT disabled
Meltdown: Mitigation; PTI
Mmio stale data: Unknown: No mitigations
Reg file data sampling: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Not affected
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP disabled; RSB
filling; PBRSB-eIBRS Not affected; BHI Not affected
Srbds: Not affected
Tsa: Not affected
Tsx async abort: Not affected
>
Also the command seems to suggest the correct microcode version (tail of </lib64/ld-linux-x86-64.so.2 --help> reply:
ubdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4
x86-64-v3
x86-64-v2 (supported, searched)
Another suggested test (<inxi -aCz | grep level>) also seem to indicate CPU compatibility:
Info: model: Intel Celeron N3050 bits: 64 type: MCP arch: Airmont level: v2 built: 2015-17
Just trying to find out if the CPU is indeed incompatible wiht Leap16 or if the compatibility test fails for some reason and I should resort to a more manual upgrade
Thanks & Cheers, Christian
Strictly speaking, the v2
check lacks lahf
and ssse3
. False negative is relatively harmless, false positive may lead to the unbootable system.
crmrhm
October 15, 2025, 5:28pm
18
Thanks, all. My X201 is now running Leap 16.0. Deleting movbe and xsave requirements from the migration tool let it run.
Howard