ChromeOS crosh环境下通过Chromebrew+Flatpak运行游戏的音频问题及PulseAudio适配CrAS方案咨询
嘿,兄弟,我懂你这种在Chromebook上折腾非官方游戏环境的痛苦——毕竟不用Crostini或双系统的资料真的少得可怜。先给你点个赞,能自己搞定/home挂载的exec问题已经很厉害了!针对你现在碰到的PulseAudio和CrAS兼容的音频问题,我整理了几个实际可操作的方案,你可以挨个试试:
换用PipeWire替代PulseAudio:现在不少ChromeOS版本已经悄悄用上PipeWire作为底层音频框架了,Flatpak对PipeWire的支持也越来越完善。你可以先给Flatpak环境装上PipeWire组件:
flatpak install org.freedesktop.Platform.PipeWire之后可以在Lutris的游戏配置里,把音频后端指定为PipeWire;或者全局配置Flatpak应用默认用PipeWire,这样Minecraft(ATLauncher)这类依赖Java的游戏也能受益。
用cras-pulse搭建PulseAudio到CrAS的桥接:有个专门适配ChromeOS的工具叫
cras-pulse,能帮PulseAudio和CrAS打通音频通道。你直接用Chromebrew安装就行:crew install cras-pulse安装完成后启动服务,然后调整PulseAudio的配置文件,让它默认连接到cras-pulse提供的桥接端口。记得启动前要确保你的用户有访问音频设备的权限,必要时可以用
usermod把自己加到audio用户组里。检查并升级Flatpak应用的音频权限:有时候不是兼容问题,是Flatpak的沙箱权限卡了音频。你可以用命令给Lutris和ATLauncher开全音频权限:
# 给Lutris加权限 flatpak override --socket=pulseaudio --socket=audio net.lutris.Lutris # 给ATLauncher加权限 flatpak override --socket=pulseaudio --socket=audio com.atlauncher.ATLauncher嫌命令麻烦的话,也可以装个Flatseal(用
flatpak install com.github.tchx84.Flatseal),图形化调整权限更直观,还能顺便检查有没有其他权限没开到位。针对性调整游戏的音频设置:Factorio的音质差可能是音频采样率或缓冲区设置的问题,你可以在Lutris的游戏配置里手动调整音频参数;Minecraft没声的话,试试在ATLauncher的启动参数里加上
-Daudiosystem=PulseAudio或者-Daudiosystem=PipeWire,强制指定音频驱动。
另外,你也可以试试在crosh里重启一下ChromeOS的音频服务,说不定能解决一些隐性问题:
restart cras
备注:内容来源于stack exchange,提问作者TheEngineerGuy

