Create Windows ARM releases
Feature request description
Enable container development on Snapdragon X Elite ARM systems by providing a Windows ARM release binary that can be used with WSL.
Suggest potential solution
Provide arm64 in addition to amd64 Windows binaries.
Have you considered any alternatives?
I tried installing podman amd64, which does install and run. However, attempting to use it results in:
WARNING: image platform (linux/amd64) does not match the expected platform (linux/arm64)
Additional context
Snapdragon X Elite ARM laptops are available with Windows ARM:
https://www.lenovo.com/us/en/p/laptops/yoga/yoga-slim-series/yoga-slim-7x-gen-9-(14-inch-snapdragon)/len101y0049
And there is a Dev Kit mini-PC:
https://www.qualcomm.com/news/releases/2024/05/qualcomm-accelerates-development-for-copilot--pcs-with-snapdrago
@ashley-cui something that you can add to our jenkins jobs?
@thewtex Are you looking for a podman-remote-release-windows_arm64.zip, or an installer?
@baude The .zip would be easy, but an .msi or .exe could be significantly more research/work
@ashley-cui an installer would be ideal, but a .zip would be helpful, too. Thank you in advance.
I installed podmain via winget. I think many others may do the same. I assume that an installer is required, and the winget package configuration needs to be updated. It looks like only 4.X is available there, by the way,
https://winget.run/pkg/RedHat/Podman
Arm support for the WSL distro was added in https://github.com/containers/podman/pull/16987 I assume compiling podman for arm on windows wouldn't be to difficult. However without access to devices to test this I am not sure if we should "release" cross compiled binaries.
Also not sure if hyperV disk images support it, I guess not.
A friendly reminder that this issue had no activity for 30 days.
Arm support for the WSL distro was added in #16987 I assume compiling podman for arm on windows wouldn't be to difficult. However without access to devices to test this I am not sure if we should "release" cross compiled binaries.
Also not sure if hyperV disk images support it, I guess not.
If you need testing, I can offer to run test suites on my Surface Laptop.
Hmm, maybe some feedback from me, was playing with it at work on Windows on ARM laptop with Snapdragon X Elite, where ubuntu for ARM works perfectly in WSL:
- Installed
podman-desktop-1.15.0-setup-arm64.exe - Went through the initial setup, stuck at the "podman machine init", which tries to start amd64 image !? Attaching the logs, maybe I messed up something:
PS C:\Users\mw> podman machine init
Looking up Podman Machine image at quay.io/podman/machine-os-wsl:5.3 to create VM
Getting image source signatures
Copying blob 54c816116e80 done |
Copying config 44136fa355 done |
Writing manifest to image destination
54c816116e80d74b8e638baf1fb37f3d6c4b6545f8c405d998169513766e1dc5
Extracting compressed file: podman-machine-default-amd64: done
Importing operating system into WSL (this may take a few minutes on a new WSL install)...
Import in progress, this may take a few minutes.
The operation completed successfully.
<3>WSL (10) ERROR: CreateProcessParseCommon:711: Failed to translate C:\Users\mw
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\VulkanSDK\1.3.296.0\Bin
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\system32
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\System32\Wbem
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\System32\WindowsPowerShell\v1.0\
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\System32\OpenSSH\
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\dotnet\
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\Git\cmd
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\CMake\bin
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\Microsoft VS Code\bin
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\RedHat\Podman\
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\AppData\Local\Programs\Python\Python312-arm64\Scripts\
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\AppData\Local\Programs\Python\Python312-arm64\
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\AppData\Local\Microsoft\WindowsApps
<3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\.dotnet\tools
Processing fstab with mount -a failed.
Failed to mount C:\, see dmesg for more details.
<3>WSL (10) ERROR: CreateProcessEntryCommon:505: execvpe /bin/bash failed 8
<3>WSL (10) ERROR: CreateProcessEntryCommon:508: Create process not expected to return
Error: package permissions restore of shadow-utils on guest OS failed: command C:\Users\mw\AppData\Local\Microsoft\WindowsApps\wsl.exe [-u root -d podman-machine-default rpm --restore shadow-utils] failed: exit status 1
PS C:\Users\mw> podman info
OS: windows/amd64
provider: wsl
version: 5.3.1
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: Get "http://d/v5.3.1/libpod/_ping": dial unix /run/podman/podman.sock: connect: A socket operation encountered a dead network.
PS C:\Users\mw> podman machine info
host:
arch: amd64
currentmachine: ""
defaultmachine: ""
eventsdir: C:\Users\mw\.local\share\containers\podman\podman
machineconfigdir: C:\Users\mw\.config\containers\podman\machine\wsl
machineimagedir: C:\Users\mw\.local\share\containers\podman\machine\wsl
machinestate: ""
numberofmachines: 0
os: windows
vmtype: wsl
version:
apiversion: 5.3.1
version: 5.3.1
goversion: go1.23.3
gitcommit: 4cbdfde5d862dcdbe450c0f1d76ad75360f67a3c
builttime: Thu Nov 21 16:45:23 2024
built: 1732203923
osarch: windows/amd64
os: windows
Just in case: I can help with testing of solution, if you need such help.
Hmm, maybe some feedback from me, was playing with it at work on Windows on ARM laptop with Snapdragon X Elite, where ubuntu for ARM works perfectly in WSL:
- Installed
podman-desktop-1.15.0-setup-arm64.exe- Went through the initial setup, stuck at the "podman machine init", which tries to start amd64 image !? Attaching the logs, maybe I messed up something:
PS C:\Users\mw> podman machine init Looking up Podman Machine image at quay.io/podman/machine-os-wsl:5.3 to create VM Getting image source signatures Copying blob 54c816116e80 done | Copying config 44136fa355 done | Writing manifest to image destination 54c816116e80d74b8e638baf1fb37f3d6c4b6545f8c405d998169513766e1dc5 Extracting compressed file: podman-machine-default-amd64: done Importing operating system into WSL (this may take a few minutes on a new WSL install)... Import in progress, this may take a few minutes. The operation completed successfully. <3>WSL (10) ERROR: CreateProcessParseCommon:711: Failed to translate C:\Users\mw <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\VulkanSDK\1.3.296.0\Bin <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\system32 <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\System32\Wbem <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\System32\WindowsPowerShell\v1.0\ <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Windows\System32\OpenSSH\ <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\dotnet\ <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\Git\cmd <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\CMake\bin <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\Microsoft VS Code\bin <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\RedHat\Podman\ <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\AppData\Local\Programs\Python\Python312-arm64\Scripts\ <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\AppData\Local\Programs\Python\Python312-arm64\ <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\AppData\Local\Microsoft\WindowsApps <3>WSL (10) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Users\mw\.dotnet\tools Processing fstab with mount -a failed. Failed to mount C:\, see dmesg for more details. <3>WSL (10) ERROR: CreateProcessEntryCommon:505: execvpe /bin/bash failed 8 <3>WSL (10) ERROR: CreateProcessEntryCommon:508: Create process not expected to return Error: package permissions restore of shadow-utils on guest OS failed: command C:\Users\mw\AppData\Local\Microsoft\WindowsApps\wsl.exe [-u root -d podman-machine-default rpm --restore shadow-utils] failed: exit status 1 PS C:\Users\mw> podman info OS: windows/amd64 provider: wsl version: 5.3.1 Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM Error: unable to connect to Podman socket: Get "http://d/v5.3.1/libpod/_ping": dial unix /run/podman/podman.sock: connect: A socket operation encountered a dead network. PS C:\Users\mw> podman machine info host: arch: amd64 currentmachine: "" defaultmachine: "" eventsdir: C:\Users\mw\.local\share\containers\podman\podman machineconfigdir: C:\Users\mw\.config\containers\podman\machine\wsl machineimagedir: C:\Users\mw\.local\share\containers\podman\machine\wsl machinestate: "" numberofmachines: 0 os: windows vmtype: wsl version: apiversion: 5.3.1 version: 5.3.1 goversion: go1.23.3 gitcommit: 4cbdfde5d862dcdbe450c0f1d76ad75360f67a3c builttime: Thu Nov 21 16:45:23 2024 built: 1732203923 osarch: windows/amd64 os: windows
I am having the same issue
Hi guys I have the same issue, it’s downloading an amd64 image on my arm64 device.:
PS C:\Users\apolt> podman machine init
Looking up Podman Machine image at quay.io/podman/machine-os-wsl:5.3 to create VM
Getting image source signatures
Copying blob 0021d8961b49 done |
Copying config 44136fa355 done |
Writing manifest to image destination
0021d8961b49754cef2c9f0f27476775a48c231657cc967ba9a2fc6478e2b9e1
Extracting compressed file: podman-machine-default-amd64: done
Importing operating system into WSL (this may take a few minutes on a new WSL install)...
Import in progress, this may take a few minutes.
The operation completed successfully.
<3>WSL (11) ERROR: CreateProcessParseCommon:763: Failed to translate C:\Users\apolt
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\fnm_multishells\16780_1738308447482
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Program Files\WindowsApps\Microsoft.PowerShell_7.4.6.0_arm64__8wekyb3d8bbwe
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Program Files\Microsoft\jdk-21.0.4.7-hotspot\bin
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\WINDOWS\system32
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\WINDOWS
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\WINDOWS\System32\Wbem
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\WINDOWS\System32\WindowsPowerShell\v1.0\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\WINDOWS\System32\OpenSSH\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Program Files\dotnet\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Program Files\Microsoft SQL Server\150\Tools\Binn\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Program Files\Git\cmd
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\ProgramData\chocolatey\bin
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\scoop\shims
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Python\Python313-arm64\Scripts\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Python\Python313-arm64\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Python\Launcher\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Microsoft\WindowsApps
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Microsoft\WinGet\Links
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\.dotnet\tools
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Ollama
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Fiddler
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Lens\resources\cli\bin
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\.cache\lm-studio\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Program Files\RedHat\Podman\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\scoop\shims
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Python\Python313-arm64\Scripts\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Python\Python313-arm64\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Python\Launcher\
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Microsoft\WindowsApps
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Microsoft VS Code\bin
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Microsoft\WinGet\Links
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\.dotnet\tools
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Ollama
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Fiddler
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Programs\Lens\resources\cli\bin
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\.cache\lm-studio\bin
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\AppData\Local\Microsoft\WindowsApps
<3>WSL (11) ERROR: UtilTranslatePathList:2852: Failed to translate C:\Users\apolt\.dotnet\tools
Processing fstab with mount -a failed.
Failed to mount C:\, see dmesg for more details.
Failed to mount D:\, see dmesg for more details.
<3>WSL (11) ERROR: CreateProcessCommon:559: execvpe(/bin/bash) failed: Exec format error
Error: package permissions restore of shadow-utils on guest OS failed: command C:\Users\apolt\AppData\Local\Microsoft\WindowsApps\wsl.exe [-u root -d podman-machine-default rpm --restore shadow-utils] failed: exit status 1
Got it working by creating a default machine from the downloaded archive : see here
You may have to remove the defautl machine created by podman desktop
podman machine init --image Downloads\5.1-rootfs-arm64.tar.zst
then ssh to the machine :
podman machine ssh podman-machine-default
sudo su -
dnf install qemu-user-static-x86 qemu-user-binfmt
mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
# otherwise got error
systemctl start systemd-binfmt.service
still need to automate the mount part each time default machine is restarted now I can use podman --arch=amd64 on windows.
This is done now, latest release does have a windows arm64 installer attached
sorry to tag onto this, but i have a new Surface 7, and im still getting the same errors as above? ive downloaded the 1.19.2 version of podman desktop, installed, let it install podman and setup wsl etc but still the same problem? do i need to do anything else?
EDIT: OK FIXED IT MYSELF AFTER A BRAIN WAVE
i installed podman-desktop-arm64, then i downloaded the podman installer in arm64 and installed that
then ran wsl --unregister podman-machine-default to remove the stale wsl i had
then ran podman machine init and it built/started without any problems!
im guessing the installer for desktop is still installing the wrong x64 version of podman rather than arm64!
podman-desktop is a separate project, if they are installing the wrong arch then you should report it there I guess https://github.com/podman-desktop/podman-desktop
I also experienced this issue of using amd64 image on my arm64 device and I managed to work around it. The issue occurs if:
- you use
wingetto installpodmanOR - you use
podman-desktopto installpodman(even with the ARM64 build)
The workaround is to download the podman-installer-windows-arm64.exe
installer directly from https://github.com/containers/podman/releases