最近很想買個 Steam Deck 感受一下 linux 下的遊戲體驗,無奈老婆不批經費,就想試試能不能用家裡的老 mac 裝 linux 玩一下。
系統
裝置: Macbook Pro Retina Late 2013 13 寸
系統:ubuntu 22.10
- 選 ubuntu 的原因是 steam for linux 說官方目前只支援 ubuntu LTS 版本(22.04)
- 選 22.10 的原因是 22.04 的依賴裝起來有不少小問題,後面升級的 22.10
(踩過坑後的)推薦步驟
- 安裝系統,處理一些雞毛蒜皮的驅動問題、系統小 bug
- 安裝 lutris,會自動幫你安裝很多依賴
- 安裝 ProtonUp,用它給 lutris 安裝其他的相容層版本,預設 wine 有問題的情況下可以多換幾個試試,小白建議無腦全裝上,有問題一個一個換。
- 搞幾個想體驗的遊戲,在 lutris 中新增好,就可以啟動試試了
效果如何
試驗了將近十款遊戲,都是很輕量的,一款 3d。
少數需要折騰一些,最終都執行起來了,體驗屬於可以正常遊玩的程度。
個人感受是超出預期的,對 Steam Deck 的實際表現更加期待了。
名詞解釋
折騰過程中讀者可能會遇到大量新概念,這裡對我覺得比較關鍵的概念做簡單解釋:
directx、opengl、vulkan、metal
- 都是圖形 API,同一類東西
- directx 是 windows 下的
- metal 是蘋果的
- opengl 跨平臺
- vulkan 比較新
dxvk、wined3d
- dxvk 是指 DirectX VulKan,將 directx 的指令翻譯成 vulkan 的,做到本不支援的 directx 上的遊戲可以執行在 vulkan API 上
- wined3d 同理,是把 directx 翻譯成 opengl,是 wine 內建的方案。優勢是相容性好。但現在基本全是用 dxvk
wine
- 作用是在 POSIX 相容系統中執行 Windows 應用
- 不是虛擬機器/模擬器,它的名字的由來就說了這點 “Wine Is Not an Emulator”
- 原理也是翻譯,把 Windows API 翻譯成 POSIX。相對虛擬機器來說的優勢是效能很高,可以認為是原生效能在 linux 上跑 windows 應用
wineprefix
- 使用 wine 執行 windows 應用的環境。不同的應用需要不同的環境,比如應用分 32/64 位。有些遊戲需要特定版本的依賴,高了/低了就崩潰,但另一個又需要另一個版本,兩邊就衝突了。為了兩個遊戲都能正常正常執行,可以讓它們在兩個相互獨立的環境中執行,各自用各自的依賴、配置,換不同的 wineprefix 就可以實現。
lutris
- 開源的遊戲庫管理工具,可以新增 steam、gog、epic、本地等各種來源的遊戲,統一管理、檢視、啟動
mangohud
- 遊戲中可以檢視 cpu gpu 記憶體 fps 等資訊的儀表盤
Q&A
可以不用 lutris,直接執行 exe 麼
- 可以,另外單獨裝 wine,然後
wine xxx.exe
即可
- 可以,另外單獨裝 wine,然後
WINEARCH 建議用什麼
- 建議 64(預設也是 64),因為 64 既可以跑 64 位應用,也可以跑 32 位。實在出問題跑不動再明確換成 32
WINEPREFIX 建議搞幾個
- 網上看到有人每款遊戲一個 prefix,有點過了。。建議預設一個 prefix 即可,有遊戲需要獨立 prefix 的再單獨開
建議普通玩家嘗試這個方案麼
- 不建議,別想不開。沒有技術背景的普通使用者推薦步驟的第一步可能都走不通
nvidia、amd GPU 遇到問題咋辦
- 沒試過,我是 intel 的板載 gpu,不是正經要用這個方案玩遊戲,純粹體驗一下而已
lutris 安裝依賴的時候出問題了
- 具體問題千變萬化,自行搜尋解決
wine 日誌裡有一堆 fixme,需要關注麼
- 可以忽略,有問題的時候只看 err 即可,fixme 可以理解成寫給開發者看的
日誌有個
MESA-INTEL: warning: Haswell Vulkan support is incomplete
什麼意思- 我的裝置是 intel haswell 顯示卡,裝置太老了驅動中對 vulkan api 的支援不完整。不是說完全不能用,只是提醒你大機率踩坑
- 實際使用中其實沒有遇到什麼問題,估計是因為我體驗的遊戲本身也都是老古董
我想玩的遊戲啟動不了怎麼辦?
- 1 換相容層,再試,不行再換,換完都不行繼續步驟 2
- 2 檢視日誌,找到錯誤
- 3 搜尋錯誤資訊,找解決方案
- 個人體驗下來問題最少的相容層是 Proton GE
- 有些錯誤不一定是相容層的問題,而是透過相容層執行的應用的報錯,所以如果查出來的解決方案和 wine 毫無關係也不要忽略。比如我測試的一款依賴了 chromium 的遊戲,報的錯搜尋出來全是瀏覽器相關的,按指導加執行引數就正常了
想看遊戲的 fps
- lutris 有這個選項,去遊戲配置裡找一下,叫做 mangohud fps 啥啥啥的
- 可能只對部份遊戲有用,不行就不看了唄,能不能玩順不順自己上手試試就知道了嘛
視窗很小怎麼辦
- 在 lutirs 的遊戲配置裡啟用 DPI upscaling,調高 DPI
調整完 DPI 沒有變化怎麼辦
- 你的遊戲可能太老了,可以參考下面一條用“全屏顯示”
如何全屏顯示所有遊戲
- lutris 有這個選項,去遊戲配置裡找一下,叫做 enable gamescope 啥啥啥的
- 如果選項是灰的,就自行搜尋先安裝上 gamescope
- 然後下面兩個解析度的框的填寫格式是 1080x900 這樣,具體含義自行搜尋
- 可能出現滑鼠速度變快/慢/卡的情況,我沒了解過怎麼解決
我只要一切換視窗遊戲就會關閉怎麼辦
- 同上,使用 gamescope 可以解決
用 gamescope 全屏顯示了,還能視窗化麼
- 可以,ctrl + alt + f 視窗化
可以玩 steam 遊戲麼
- 可以,ubuntu app store 搜尋 steam beta 安裝即可,裝起來比 lutris 方便多了
- 裝完後,可以使用 ProtonUp 裝額外的相容層
可以用 FSR 麼
- 可以,lutris 預設開啟 FSR,在全屏模式中調低解析度即可