快轉到主要內容

Flatpak跨架構,aarch64模擬異質架構x86_64程式

· 民國113年甲辰年
· ·
分類   Linux系統 Linux使用技巧
標籤   Flatpak QEMU User Mode
目錄

Running x86_64 Flatpak apps on aarch64 platform using qemu-static.

有些Flatpak軟體打包的時候只有x86_64版本,沒有顧及aarch64 (ARM64) 平台的需求,像是著名的Firefox。

這個時候可以利用Flatpak自身的模擬功能來執行,如果你的系統有安裝qemu-user套件,Flatpak就會利用Linux核心的binfmt功能,模擬執行異質架構的程式。這樣就可以在aarch64架構的系統跑x86_64架構的程式,反之亦然。

1. 安裝qemu-user套件
#

以ARM架構的系統來說,這些套件似乎在Debian/Ubuntu系的系統才有收錄的樣子,Arch Linux ARM沒有這些套件。

以Raspberry Pi OS Bookworm為例子,安裝以下套件

sudo apt install qemu-user-static qemu-system-x86_64 qemu-system-aarch64

確認systemd-binfmt服務狀態

sudo systemctl status systemd-binfmt

2. 模擬執行x86_64程式
#

請注意,qemu-user效能比Box64/Box86轉譯差勁許多,不要期望有GPU加速。

可惜的是,Firefox這類大型程式在qmeu模擬會有許多函式庫找不到,所以我使用簡單的KDE時鐘來做示範。

  1. 從套件管理器安裝Flatpak

  2. 因為現在是跑在aarch64架構上,所以要指定下載x86_64版本的程式

flatpak install --arch=x86_64 org.kde.kclock
  1. 執行的時候指定架構,並加上verbose看錯誤訊息
flatpak run --arch=x86_64 org.kde.kclock
  1. 稍微等了一陣子才跑出來。

參考資料
#

相關文章

管理Linux系統家目錄泛濫成災的dotfile
分類   Linux系統 Linux使用技巧
標籤   Freedesktop Specifications Dotfile Flatpak
Linux應該用何種方法安裝應用程式,談談我的軟體安裝偏好來源
分類   Linux系統 Linux使用技巧
標籤   Flatpak Snap AppImage Freedesktop Specifications
Ubuntu系統下make install指令前,三思而後行
分類   Linux系統 Linux使用技巧
標籤   Distrobox Flatpak Ubuntu

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。