podman icon indicating copy to clipboard operation
podman copied to clipboard

Create Windows ARM releases

Open thewtex opened this issue 1 year ago • 5 comments

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

thewtex avatar Jun 27 '24 13:06 thewtex

@ashley-cui something that you can add to our jenkins jobs?

baude avatar Jun 27 '24 19:06 baude

@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 avatar Jun 27 '24 20:06 ashley-cui

@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

thewtex avatar Jun 28 '24 14:06 thewtex

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.

Luap99 avatar Jun 28 '24 14:06 Luap99

A friendly reminder that this issue had no activity for 30 days.

github-actions[bot] avatar Jul 29 '24 00:07 github-actions[bot]

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.

itpropro avatar Sep 30 '24 16:09 itpropro

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

olologin avatar Jan 14 '25 16:01 olologin

Just in case: I can help with testing of solution, if you need such help.

olologin avatar Jan 16 '25 06:01 olologin

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

preardon avatar Jan 20 '25 15:01 preardon

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

minzdrav avatar Jan 31 '25 07:01 minzdrav

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.

henriavelabarbe avatar Feb 10 '25 08:02 henriavelabarbe

This is done now, latest release does have a windows arm64 installer attached

Luap99 avatar Jun 11 '25 11:06 Luap99

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!

si458 avatar Jul 09 '25 22:07 si458

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

Luap99 avatar Jul 10 '25 09:07 Luap99

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 winget to install podman OR
  • you use podman-desktop to install podman (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

damianh avatar Sep 02 '25 08:09 damianh