cancel
Showing results for 
Search instead for 
Did you mean: 

STLink / STCubeProgrammer support on Windows ARM64

CPop.1
Associate II

I can't get the STLink drivers installed on Windows 10 / 11 aarch64 Parallels VM running on Mac M1.

Is there any support for ARM64 Windows STLink drivers?

1 ACCEPTED SOLUTION

Accepted Solutions
CPop.1
Associate II

I was able to make this work end to end with STM32CubeProgrammer and IAR on Windows 11 ARM64 (running in Parallels on an Apple M1). To make that work, I have removed all references to the certificate signatures (CAT files) from INF files.

To install, you need to temporarily disable driver checks: https://appuals.com/how-to-fix-the-third-party-inf-doesnt-contain-digital-signature-information/ (use the temporary solution 3 - Reset while holding Shift). After rebooting with driver signature checks, go to Device Manager, find the STLink device and manually specify the folder where you've unzipped the file attached below.

Important! This will install an unsigned driver. Make sure that what you've downloaded contains only INF changes from the official drivers (I have not changed any binary files, which in this case are the official COM installers supplied and still properly signed by Microsoft. - I simply renamed the amd64 folder to arm64 from the official driver and changed the content of the INF files as pointed out by @Pavel A.​ )

@Nawres GHARBI​ it would be great if ST re-releases ST Link so that it works on Windows 10/11 ARM64 with properly signed drivers (the CAT files must be updated). This will enable developers on both Windows Surface X as well as Apple M1 + VM to work with STLink devices.

View solution in original post

11 REPLIES 11
TDK
Guru

ARM64 isn't a listed supported version.

https://www.st.com/en/development-tools/stsw-link009.html

Likely you can try to invoke some compatibility mode (less likely to work for a driver), or it just won't work.

If you feel a post has answered your question, please click "Accept as Solution".
Pavel A.
Evangelist III

Duplicate. https://community.st.com/s/question/0D53W00000kvUj9SAE/how-to-install-stm32cubemx-on-windows-10-arm64-on-raspberry-pi-4

ST-LINK driver package is INF-only, all the functions have in-box drivers.

If new ST-LINKs have the Microsoft winusb descriptor, then it will be installed automatically, without any driver at all.

Thank you!

From your answer, it sounds like ST needs to resign their driver package.

I made the modifications and because the inf changed Windows fails to install the driver (tampering). Because the driver is signed and the signature changed, I don't know of a simple way to disable the check. This means there is no viable workaround for now for all Windows ARM64 users.

Hi @CPop.1​ 

could you share the drivers please?

Sure! Again, Pavel's solution is really something that must be done by ST and cannot be worked-around by the community.

The changes I've made cannot work (for security reasons as the driver package is signed). The changes are following driver documentation from Microsoft here: https://docs.microsoft.com/en-us/windows-hardware/drivers/install/inf-controlflags-section

I have attached only the INF files from the STLink driver. These have been changed from NTamd64 to NTarm64. The correct fix is to add another arm64 section (i.e. wherever amd64 is used, add something similar for arm64).

My change requires renaming the amd64 folder to arm64.

After that change is made, you will also need to create another arm64 folder (x86 and amd64 already exist) and resign all CAT files (and DLL?).

PS: Not ideal but if you could supply us with unsigned drivers we could, in theory, temporarily work around this issue. The existence of an invalid signature triggers the Windows policy.

I would also like to add that I did test this on Win 11 arm64 (Parallels VM running on Mac M1) and it failed because of invalid signature.

CPop.1
Associate II

I was able to make this work end to end with STM32CubeProgrammer and IAR on Windows 11 ARM64 (running in Parallels on an Apple M1). To make that work, I have removed all references to the certificate signatures (CAT files) from INF files.

To install, you need to temporarily disable driver checks: https://appuals.com/how-to-fix-the-third-party-inf-doesnt-contain-digital-signature-information/ (use the temporary solution 3 - Reset while holding Shift). After rebooting with driver signature checks, go to Device Manager, find the STLink device and manually specify the folder where you've unzipped the file attached below.

Important! This will install an unsigned driver. Make sure that what you've downloaded contains only INF changes from the official drivers (I have not changed any binary files, which in this case are the official COM installers supplied and still properly signed by Microsoft. - I simply renamed the amd64 folder to arm64 from the official driver and changed the content of the INF files as pointed out by @Pavel A.​ )

@Nawres GHARBI​ it would be great if ST re-releases ST Link so that it works on Windows 10/11 ARM64 with properly signed drivers (the CAT files must be updated). This will enable developers on both Windows Surface X as well as Apple M1 + VM to work with STLink devices.

Pavel A.
Evangelist III

There is a simple way to install the winusb driver manually, from device manager, see here.

I don't have arm64 machine and cannot validate.

Maybe makes sense to provide an "universal" driver package. it would be shorter, cleaner, none of that "coinstaller" nuisance. But such driver won't support Windows 7, 8. Only 10 and 11.

---pa

Thank you, I have been looking for a solution for this for quite some time. Followed the above instructions and works 100% for me. Thanks again!