SteamDeck折騰記


3樓貓 發佈時間:2025-02-03 21:32:47 作者:金富帥 Language

前言

毫無疑問,steamdeck是一臺遊戲機,但是因為完全自由的硬件設計,來到愛折騰的朋友手裡,花樣就會變多了。
我個人在買steamdeck之前,完全不瞭解Linux。買了之後,因為要折騰一些除了steam之外的應用商店,所以學了一些Linux的知識。
隨著學習的深入,我發現可以折騰的越來越多,導致我用steamdeck的時間,80%的時間在研究一些稀奇古怪的東西,20%的時間在打遊戲。
所以,steamdeck真是一臺優秀的遊戲(xuexi)機啊。

一些折騰的東西

其它遊戲商店

基礎一點的就是,安裝其他的遊戲商店。例如:
  • epic
  • gog
  • battle.net

proton兼容層

steamdeck是通過proton兼容層來運行windows的遊戲,這個項目也是開源的,所以會有人對官方的兼容層做一些改進。
更換不同的遊戲兼容層,可以讓原本不能在官方兼容層運行的遊戲運行,或是獲得更好的性能。

模擬器

然後呢,折騰模擬器,將模擬器遊戲放進steamdeck的遊戲庫裡,添加封面,相同平臺的遊戲分到一個組裡。看起來像是一個收藏櫃一樣,很酷! 模擬器能折騰的就多啦:
  • pcsx2->ps2
  • ppsspp->psp
  • deckstation->ps1
  • dolphin->wii,gamecube
  • mgba->gba,gbc
  • xemu->OG xbox
  • ……

遊戲模式的插件

valve給steamdeck提供了插件的功能,這樣很多開發者可以給steamdeck開發一些非常酷的插件。例如:
  • vibrantDeck:調整steamdeck-lcd屏幕顏色
  • SteamGridDB:可以給庫裡遊戲更換封面,或者給自己添加的遊戲補充封面。
  • CSS Loader:給steamdeck的UI更換主題
  • Bash Shortcuts:用於在遊戲模式運行命令行的命令,我主要用於同步無法雲存檔的遊戲存檔[2]。
  • ……

桌面模式

然後我開始折騰steamdeck的桌面模式。
steamdeck的桌面模式是一個使用x11協議的kde桌面,我們可以在裡面做很多事情,例如寫稿子,寫代碼,看視頻……。(這篇文章就是用steamdeck寫的)
kde的自定義功能非常強大,你甚至可以把他定義到很像Macos的樣子,當然只是外面的一層皮。我沒有定義,我還挺喜歡桌面的閥門壁紙的。
在這個過程中,我知道了steamdeck的遊戲模式其實本質上也是一個桌面環境[1]——valve開源的gamescope。它之所以會開機就會進入,是因為在登陸管理SDDM中配置了它的的開機自動登陸。
也就是說,只要是linux系統,只要安裝了gamescope這個軟件,也可以使用steamdeck遊戲模式一樣的界面。

瞭解steamdeck的分區設計

steamdeck的系統分區是很有趣的,是一個ab分區的設計。
簡單來說,就是玩家在使用的是A區,而系統更新的是B區,系統更新完成後,玩家會切換到B區,實現系統的無縫更新。
如下圖所示,可以看到,標紅的幾個分區都有兩份。
SteamDeck的AB分區

SteamDeck的AB分區

這樣的設計,可以讓所有玩家更新系統後,都獲得一樣的體驗。
但是,也有一個缺點,對於愛折騰的人,你在A區做的修改,在系統更新後就全沒了。
但是flatpak的商店裡原本需要存在於根分區的文件為什麼可以保存下來呢?
這些數據放在了哪呢?
他們被藏在/home中的一個叫.steamos的隱藏文件夾裡。
/home分區裡的.steamos

/home分區裡的.steamos

進入這個文件夾的offload文件夾,我們可以看到這些這些文件夾。
nix opt root srv var
這些本需要存在根分區的數據。,通過--bind綁定的方式,綁定到了對應的文件夾,每次更新完系統後,會重新綁定。

折騰其他linux系統

發展到後來,我開始給steamdeck折騰一些其他系統。例如:
  • manjaro
  • arhclinux[3]
  • ubuntu
  • fedora
  • windows11
剛開始的時候,我是給steamdeck的硬盤分了另一個區,但是呢,會導致一個問題,就是原本的steamos安裝遊戲的空間不夠了。
我試過使用掛載另一個系統分區的方案,但是呢?系統更新後還得再來一遍,不夠優雅。
有什麼解決方案呢?
裝到sd卡里?不行,sd卡的速度有點慢,日常使用倒是無影響,但是有點不爽。
最後,我發現了ventoy提供的一項功能。ventoy有一項功能vdisk boot,也就是說,可以從虛擬硬盤啟動一個Linux系統。
所以我創建了一個vdisk文件,把這個文件放在steamdeck裝遊戲的分區,我需要的Linux系統就裝在這個文件裡,從此steamdeck不用分區了,一直保持著出廠以來分區。

用steamdeck視頻硬件編解碼——也許會用到?

有人說steamdeck不支持硬件編碼h265的視頻,其實是錯誤的。
只要安裝了ffmpeg就可以使用vaapi在steamdeck上進行視頻硬件編碼。
你只需要使用如下命令,就可以使用steamdeck的進行視頻硬件編碼:
ffmpeg -vaapi_device /dev/dri/renderD128 -i input.mp4 -vf 'format=nv12,hwupload' -c:v hevc_vaapi output.mp4
可以看到,進行編碼的時候,系統監視軟件Resource顯示,gpu的硬件編碼被調用了。
硬件解碼器在被調用

硬件解碼器在被調用

這個命令使用軟件解碼,硬件編碼,對於支持的格式也可以使用軟件解碼,但我發現這會降低編碼的性能

一些其他淺嘗輒止操的折騰

例如:
  • 把steamdeck變成一臺軟路由
  • 把steamdeck變成一臺媒體服務器
為何淺嘗則止?一個手持移動遊戲機在家裡當服務器?鬧呢?
  1. steamdeck的官方系統steamos就基於archlinux創造。↩︎
  2. 使用git命令↩︎
  3. 此說法不嚴謹,更準確的說應該是,一套專門由於遊戲的UI環境↩︎

© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com