快轉到主要內容

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

分類   Linux系統 Linux使用教巧
標籤   Flatpak QEMU User Mode
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

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. 稍微等了一陣子才跑出來。

參考資料
#

相關文章

什麼是AUR套件庫?如何安裝Arch Linux的AUR軟體?
分類   Linux系統 Linux使用教巧
標籤   Arch User Repository Arch Linux
管理Linux系統家目錄泛濫成災的dotfile
分類   Linux系統 Linux使用技巧
標籤   Dotfile Flatpak
Linux系統以Flatpak格式安裝Android Studio和Flutter SDK
分類   Linux系統 Linux好用軟體
標籤   Flatpak Android Studio Android

留言板

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

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請貼Imgur或Postimages。