目录
这里有这部分内容的视频教程:「Linux游戏指南」关于Linux玩游戏的一切
如何确认一款游戏能不能玩
想确认一款游戏能不能在 Linux 上玩,可以参考以下网站的信息:
Steam
安装 steam
sudo pacman -S steam禁用 btrfs 写时复制
禁用游戏存放目录的 btrfs 的写时复制(CoW),否则会下载速度异常。默认目录是
~/.local/share/Steam/,通常禁用steamapps目录的 CoW 就行了。sudo chattr +C ~/.local/share/Steam/steamapps
卸载 steam
sudo pacman -R steam sudo rm -rfv ~/.steam ~/.local/share/Steam
Minecraft
从 AUR 安装启动器,推荐使用 xmcl、Prism Launcher、hmcl。
安装
waygl模组可以用 Wayland 运行 Minecraft。
Wine兼容层运行
Wine 是在 Linux 下运行 Windows 程序的兼容层,Proton 是 Steam 的母公司 V 社基于 Wine 开发的专门用来玩游戏的兼容层。原理是把 Windows 程序发出的请求翻译成 Linux 系统下的等效请求。通常使用最新的 Wine 或者 Proton 版本即可,或者使用 GE-proton,这是 GE 大佬修改的 Proton。另外还有基于 proton-cachyos 制作,专门为二游进行优化的 DW-Proton。
Wine、Proton 这些兼容层有一大特点叫 prefix,相当于一个虚拟的 C 盘环境,程序的所有操作都在这个 prefix 中进行,完全不会影响到主机的 Linux。当你想卸载软件的时候,可以直接把这个 prefix 扬了,相当于用删除 C 盘的方式卸载软件,相当干净。为了更好地利用 prefix 的优势,可以选择给每个应用单独创建一个 prefix,但用命令行创建会相当繁琐,于是就有了专门用来管理 prefix 的工具。
Lutris
Lutris 是一个专为玩游戏设计的管理工具,可以完全取代 Steam 的"添加非 Steam 游戏"功能。当然也可以用来管理普通软件。
安装
sudo pacman -S lutris第一次打开会自动下载各种需要的组件,点击左上角的加号可以看到主要功能。
下载 ge-proton
右上角三道杠进入
首选项,进入update页面,点击下载 xxxxx(大概是这个名字),此时下载最新版本的 ge-proton。设置 Wine 默认使用 GE-Proton
主页面,单击左下角 Wine 右边的齿轮。设置 Wine 默认使用 ge-proton。
卸载 lutris
sudo pacman -Rns lutrissudo rm -rfv ~/.config/lutris ~/.local/share/lutris
可选:ProtonPlus
yay -S protonplus
这是一个专门管理不同版本的 Proton 的软件。
可选:类似微星小飞机的帧数、资源监控软件
yay -S gamescope mangohud mangojuice
gamescope 是一个专门用来玩游戏的合成器。mangohud 是类似微星小飞机的监控软件,mangojuice 用来配置 mangohud。
mangohud 使用方法
mangojuice 设置要显示的项目,然后在 lutris 右键想要监控的软件 > 系统选项 > Display > 激活显示帧率(MangoHud)。Steam 的话设置启动参数
mangohud %command%。
如果要玩Epic的游戏
yay -S heroic-games-launcher
用显卡直通玩游戏
经过前面显卡直通的操作,我已经有了一台 4060 显卡的 Win11,并且配置了 looking glass,理论上所有 Win11 能干的事情我都能在这台虚拟机上干。具体的就不用再往下说了吧🤓☝️
小黄鸭补帧
https://github.com/PancakeTAS/lsfg-vk
视频教程:90s 学会在 Linux 用小黄鸭补帧
需要先下载 Steam 正版的小黄鸭。也许盗版也可以,有兴趣的可以自己试试,手动指定一下 lossless.dll 的路径说不定能运行。
- 从 yay 安装 lsfg-vk
yay -S lsfg-vk-bin
使用方法
具体的使用方法可以去看官方文档 Home · PancakeTAS/lsfg-vk Wiki。
我只演示一个方法。
打开 lsfg-vk-ui,新建一个 profile,任意取一个名字(profile name)。常见用途有两个,看视频和玩游戏。
看视频
mpv 的兼容性最好。打开终端,使用
LSFG_PROCESS变量指定 profile。比如:LSFG_PROCESS="miyu" mpv /home/shorin/Videos/test.mkv玩游戏
Steam 右键想要运行的游戏,启动参数填入刚刚的变量
LSFG_PROCESS="miyu",比如:LSFG_PROCESS="miyu" %command%其他
同理,lutris 之类的也可以像 Steam 那样设置启动参数。可以在终端输入
LSFG_PROCESS="miyu" 程序启动命令尝试对任意程序开启补帧,但是不一定生效。
lsfg 一旦生效,就可以修改 profile,实时更改补帧倍率。
安卓手游
Waydroid
安卓系统也是 Linux 内核,那 Linux 发行版自然也能运行安卓,并且性能还是接近原生的。Waydroid 是 Linux 上的安卓容器,相当于一个完整的安卓系统。
安装
yay -S waydroid可选:从 archlinuxcn 安装 waydroid-image(要求添加 CN 仓库,按照流程,在本文档的 yay 安装部分已经添加)。
sudo pacman -S waydroid-image初始化
sudo waydroid init启动服务
sudo systemctl enable --now waydroid-container安装 ARM 转译
我们的 CPU 架构是 x86_64,要运行 ARM 应用需要安装 ARM 转译,AMD 装 libndk,Intel 装 libhoudini。
git clone https://github.com/casualsnek/waydroid_script cd waydroid_script python3 -m venv venv venv/bin/pip install -r requirements.txt sudo venv/bin/python3 main.py按照窗口的指引进行安装。
可选:如果启用了防火墙还需要执行如下命令
# 查询当前防火墙状态 sudo ufw status # Status: active 则代表开启,inactive则代表关闭(最简单的方法是直接关闭防火墙,如果不愿意进行下一步) # 添加规则 # 方向选 in(Waydroid容器向宿主请求),按接口限定,避免影响 wlan0/eth0 sudo ufw allow in on waydroid0 to any port 67 proto udp sudo ufw allow in on waydroid0 to any port 53 proto udp sudo ufw allow in on waydroid0 to any port 53 proto tcp # 容器↔外网转发:显式路由规则,而不是放开整个 FORWARD 链 sudo ufw route allow in on waydroid0 sudo ufw route allow out on waydroid0开启会话
waydroid session start然后应该就能在桌面看到一大堆图标了。
可选:软件默认是全屏打开,可以设置窗口化打开软件,F11 切换全屏和窗口化。
waydroid prop set persist.waydroid.multi_windows true然后用命令重启会话,这一步会隐藏桌面的 Waydroid 图标,可以设置显示。如果开启不了的话可以 stop 之后再尝试用桌面快捷方式开启。
waydroid session stop waydroid session start
安装软件
waydroid app install /apk/的/路径
如果游戏出现摇杆无法左键移动的问题的话可以试试运行
waydroid prop set persist.waydroid.fake_touch "*"
安装谷歌框架
依旧是使用这个脚本安装 gapps casualsnek/waydroid_script: Python Script to add OpenGapps, Magisk, libhoudini translation library and libndk translation library to waydroid !,安装完成后用以下命令获取设备 ID。
Google Play Certification | Waydroid
sudo waydroid shell -- sh -c "sqlite3 /data/data/*/*/gservices.db 'select * from main where name = \"android_id\";'"
复制 ID 之后去这个网站注册设备:
https://www.google.com/android/uncertified
然后重启会话:
waydroid session stop
软件渲染
N 卡用户用不了 Waydroid,可以用软件渲染,但是性能很差,勉强玩 2D 游戏。
新出了一个 Waydroid Nvidia 项目,让 N 卡也能加速 Waydroid 了,可以试试
编辑配置文件
sudo vim /var/lib/waydroid/waydroid.cfg[properties] ro.hardware.gralloc=default ro.hardware.egl=swiftshader本地更新应用一下更改后的配置
sudo waydroid upgrade --offline重启服务
systemctl restart waydroid-container
卸载Waydroid
waydroid session stop
sudo systemctl disable --now waydroid-container.service
yay -Rns waydroid
如果下载了 waydroid-image 的话需要用 yay 一并卸载。
卸载完后清理残留文件:
sudo rm -rf /var/lib/waydroid ~/.local/share/waydroid ~/.local/share/applications/waydroid*
使用Proton破解运行D加密游戏
使用 DenuvOwO 团队的定制 Proton 即可运行 D 加密游戏。
确认 CPU 是否支持
cpuid_faultgrep -o cpuid_fault /proc/cpuinfogrep是文本搜索工具;-o是grep的选项,代表只输出匹配到的内容;cpuid_fault是用于匹配的关键词;/proc/cpuinfo是存放了 CPU 相关的信息的文件。如果有输出,说明 CPU 支持
cpuid_fault,可以继续往下看,如果没输出说明不支持。通常 9 代 Intel / AM4(7000系)及以后的 CPU 会有这个功能。如果不支持的话需要编译内核模块,通过虚拟化技术模拟此功能。因为我没有设备无法测试,所以没有写入教程,有需要的话可以自己看原帖。关闭 CPU 的 UMIP 功能
运行下面这段命令读取
/proc/cpuinfo中 cpu 的信息并尝试过滤出 UMIP 相关内容grep -o umip /proc/cpuinfo如果有输出的话说明 CPU 启用了 UMIP ,需要编辑内核参数写上
clearcpuid=514禁用此功能。sudo vim /etc/default/grubGRUB_CMDLINE_LINUX="clearcpuid=514"grub-mkconfig -o /boot/grub/grub.cfgreboot重启电脑后重新运行命令,应该没有任何输出
grep -o umip /proc/cpuinfo下载 LinUwUx 定制 Proton
Google Drive:点击下载
下载后解压到
~/.local/share/Steam/compatibilitytools.d下载游戏本体和 Hypervisor 破解补丁
靠你自己了。
破解游戏
解压破解补丁后找到
DenuvOwO.ini或者Reflex.ini,将里面的AutoLoad或AutoLoadHV的值设置为falseAutoLoad=false然后观察一下破解补丁目录和游戏目录的目录结构,将破解补丁覆盖到游戏目录
启动游戏
使用任意 Proton 管理工具,例如
lutris,导入前面下载的游戏,Proton 选择 LinUwUx 定制的 Proton。至此,Proton 破解运行 D 加密游戏成功。
下一节:性能优化