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