快轉到主要內容

FreeBSD安裝Steam教學,透過Wine Proton玩Windows遊戲

· 民國115年丙午年
·
切換繁體/簡體
分類 資訊科技 BSD系統
標籤 Wine FreeBSD Steam
目錄

Installing unofficial Steam client on Linux and playing Windows games through Proton.

讓Ivon討論如何在FreeBSD系統安裝Steam客戶端,以及透過Wine Proton執行Windows遊戲。

Steam是一個全球知名的遊戲銷售平台,由Valve公司經營。Steam官方支援Linux、Windows、macOS系統。即使大部分遊戲是針對Windows開發的,Steam透過運用Proton (Wine) 的技術,讓玩家可以在Linux轉譯遊玩Windows的遊戲。

那麼,Steam支援BSD家族的系統嗎?截至撰文當下Valve官方都沒有支援計畫。雖然Linux跟FreeBSD的架構有相似之處,但Linux版的Steam不能直接在FreeBSD上執行。因此我們需要靠FreeBSD社群所移植的方案才能跑Steam。

1. FreeBSD跑Steam客戶端的方案探討
#

目前FreeBSD 15,有幾個社群提出的非官方移植方案:

  1. shkhln/linuxulator-steam-utils:自動建立chroot環境,善用Linuxulator來跑Linux版Steam客戶端,再使用FreeBSD原生移植的Wine Proton執行Windows遊戲。僅提供基本的瀏覽器和Proton支援,不支援Steam Input、Steam VR、反作弊系統等功能。

  2. Alexander88207/Mizutamari:Wine啟動器。

  3. 直接透過FreeBSD的Wine跑Windows版Steam客戶端。

本文採用的是1.。作者比較常在更新相關解法。

3. 安裝Steam客戶端
#

  1. 安裝之前請確保顯示卡GPU驅動已經安裝妥當。另外,建議在X11桌面操作,Wayland畫面可能會出不來。我個人的環境是KDE Plasma 6.6 X11。還有Steam客戶端僅支援x86_64架構。

  2. 啟用FUSE、以及允許一般使用者建立chroot、使用Linux真正的網路界面,並設定開機載入nullfs與Linuxulator相容層模組。

echo "security.bsd.unprivileged_chroot=1" | sudo tee -a /boot/loader.conf

echo "vfs.usermount=1" | sudo tee -a /boot/loader.conf

echo "compat.linux.use_real_ifnames=1" | sudo tee -a /boot/loader.conf

sudo sysrc kld_list+=nullfs

sudo sysrc kld_list+="linux linux64"

sudo sysrc linux_enable="YES"
  1. 重開機。

  2. 使用pkg安裝以下套件:

sudo pkg install games/linuxulator-steam-utils
  1. 按照套件作者指示,輸入以下指令,開始初始化Steam客戶端運作環境。Steam對你的家目錄有完整讀取權限,雖然作者建議新增一個使用者帳號專門用來執行Steam,防止Steam上的惡意程式讀取密碼和SSH金鑰。但這裡我選擇無視警告,畢竟使用這種封閉平台本身就要承擔風險了。
export DUMB_PERSON_FLAG='--allow-stealing-my-passwords,-browser-history-and-ssh-keys'

/usr/local/steam-utils/bin/lsu-bootstrap ${DUMB_PERSON_FLAG}
  1. 執行Steam客戶端,讓它安裝依賴。接著登入帳號。
/usr/local/steam-utils/bin/steam
  1. 之後按左上角的Settings → Interface將界面調成中文。

  2. 在這個階段,你只能下載原生支援Linux的遊戲。例如《War Thunder》、《narccrisu》。至於執行Windows遊戲,需要透過Proton轉譯。

2. 安裝Proton跑Windows遊戲
#

根據linuxulator-steam-utils作者解釋,Steam客戶端內建的Proton無法在chroot內使用,故這裡要改用FreeBSD宿主機的原生Wine Proton來執行Windows遊戲。這個架構十分的詭異,只能說勉強可用。

  1. 在系統匣對Steam的圖示按右鍵,離開Steam。

  2. 安裝Proton的依賴套件,這裡安裝的是64位元的Wine Proton 9.0。

sudo pkg install wine-proton libc6-shim python3
  1. 補齊Proton所需要的32位元套件依賴。(註:未來Wine 11以上版本可以用WOW64直接執行32位元的exe,到時應該就不需要安裝32位元的依賴了!)

FreeBSD 14以下的版本可以透過這個指令安裝Proton所需的32位元依賴:

/usr/local/wine-proton/bin/pkg32.sh install wine-proton mesa-dri

至於FreeBSD 15以上版本,官方暫時移除了32位元的套件。請參考這部影片的步驟,手動下載lib32函式庫,以及暫時切換FreeBSD套件庫到latest,才能安裝Proton所需的32位元依賴:

sudo https://download.freebsd.org/releases/amd64/15.0-RELEASE/lib32.txz

sudo tar -C / -xvJf lib32.txz

sudo sed -i '.quarterly' 's/quarterly/latest/' /etc/pkg/FreeBSD.conf

sudo cp /etc/pkg/FreeBSD.conf /etc/pkg/FreeBSD.conf.latest

sudo /usr/local/share/wine/pkg32.sh install wine mesa-dri

sudo cp /etc/pkg/FreeBSD.conf.quarterly /etc/pkg/FreeBSD.conf
  1. 重新啟動Steam。
/usr/local/steam-utils/bin/steam
  1. 在遊戲收藏庫,對Windows遊戲點右鍵,點選「內容」→「相容性」,勾選「強制使用特定Steam Play相容性工具」,選擇FreeBSD Wine (emulators/wine-proton)

  2. 設定Proton後,Windows專屬的遊戲也開的起來,例如《This is a game》。請到ProtonDBWineDB查看能用Proton跑的遊戲列表。

參考資料
#

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

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