OrangePI 3B Steam 主机

OrangePI 3B Steam 主机
MeteorCat之前买 Orange 5Pro 来设计 NAS 的时候顺带买个 Orange 3B, 因为嫌弃性能不够一直没拆封过;
最近跨年整理的时候才发现这块开发板, 想着闲着也是闲着就看看能干点什么.
最后想着搭配手里的8寸便携式显示器直接改造成简单的小型 Steam Machine, 通过连接 XBOX 蓝牙手柄来游玩游戏.
OrangePI 3B 后面简称为 opi3
这套方案的具体配置如下:
-
RockChip RK3566 瑞芯微四核 64 位 ARM 处理器, 主频最高 1.8GHz
-
8GB LPDDR4/4X 自带内存
-
120GB SATA 廉价朗科固态硬盘(这是我额外购买扩展固态硬盘)
-
支持 Wi-Fi5/蓝牙/HDMI 方案
-
Armbian 系统(Debian的 iot 方案)
-
支持 OpenGL ES 1.1/2.0/3.2 | OpenCL 2.0 | Vulkan 1.1(Vulkan是重中之重)
需要注意: 这块开发板默认只启用的 NVME 协议, 直接接入 SATA 协议的固态是没办法识别的.
如果固态是 SATA 协议就需要修改 Armbian 启动引导文件 /boot/armbianEnv.txt 添加 overlays=rk3566-roc-pc-sata2:
1 | overlay_prefix=rk35xx |
确保这两行配置存在, 之后重启开发板确认能够识别:
1 | reboot # 重启 |
初始化固态并挂载可以网上搜索 Linux挂载硬盘 即可, 但这里还有个坑点: 不要用 UUID 识别挂载硬盘
可能是本身开发板厂家固件问题, 扩展硬盘的 UUID 是和 TF 卡系统的 UUID 一致, 如果设置 /etc/fstab 用 UUID 挂载直接无法启动;
所以这里我提供直接硬件路径写入启动项:
1 | cat /etc/fstab |
我这边的系统是基于 Debian13 iOT 的 Armbian 版本, 需要手动来安装 GPU 的 Vulkan 驱动:
1 | 安装 GPU 工具还有 Vulkan 和 OpenGL 驱动, 安装之后需要重启开发板 |
这里就是正式部署的前置准备, 之后的操作都需要小心操作避免弄错而无法启动服务.
系统账户
这里是很多人容易疏忽的点: 默认 Steam 都是安装在自己 HOME 目录之中, 那些目录都是保存 TF 卡(读写性能很差, 最大性能瓶颈).
所以需要指定创建自己的系统账户让这个账户的 HOME 目录指向挂载的固态硬盘目录, 最大限度利用固态硬盘的高速读写特性;
这里直接命令行来创建指定开机启动 Steam 专用账号登陆:
1 | 注意: 我这边固态挂载的地址是 /data, 所以我创建 /data/users 目录用来放置扩展的系统用户 |
这就是定制的 steamd 系统管理员, 用于负责启动桌面环境来调动 Steam 客户端任务, 基于 SATA 协议固态硬盘尽可能避免读写瓶颈.
虚拟内存
因为本身开发板性能并不是那么高, 默认安装之后系统分配的虚拟内存会分配在 TF 卡上面会很明显影响到运行顺序.
所以就需要让分配出来的虚拟内存地址映射到 SATA 协议的固态硬盘之中, 而非 TF 卡的空间之中, 这里需要执行命令:
1 | 注意: 这里需要 sudo 或者最高管理员执行 |
这里默认分配 4G 作为固态硬盘映射的虚拟内存提供给开发板使用, 大部分情况小型游戏应该不会用到, 而大型游戏瓶颈也不是内存问题.
桌面环境
可能是开发板固态硬件还是什么适配问题, 我按照网上说本来采用 xfce 这类节省启动资源的桌面环境,
但是配置 lightdm 桌面管理器一直启动报错, 之后切换成 gnome 方案才没问题(xfce 只有错误码 = 1, 没有其他任何错误信息):
1 | 在命令行之下输入以下内容, 改用 gnome 资源占用比较大但兼容性比较好, 安装完成会自动启动开发板 |
启动之后能够看到开机之后默认进入桌面环境, 之后就准备折腾社区的模拟 x86 和 x64 方案, 目前社区方案如下:
这里可以手动编译或者源安装, 这方面按照自己需求选择; 我这边采用源安装, 直接命令行执行:
1 | 安装所需依赖 |
注意: 首次启动网络不好的时候, Steam 客户端更新会很缓慢, 不看命令行还以为卡死
重启开发板之后, 进入桌面模式输入 /usr/local/bin/box64 /data/users/steamd/steam/steam 登陆账户.
首次进入的时候会非常卡顿, 因为这时候会加载游戏库的 所有游戏封面/公告/最新消息, 也就是游戏库越多, 启动的时候越卡.
而且 opi3 羸弱的 CPU 性能在这种并发下载游戏周边资源 CPU 会疯狂飙升, 有可能温度控制不好会出现直接开发板死机卡死的情况.
这种情况下最好下进入游戏库页面当中不去管他, 让 Steam 去下载游戏相关封面和图标资源并且在本地构建成缓存数据.
另外还需要注意: 记得在 gnome 桌面模式当中关闭掉屏幕保护和省电模式, 避免待机的时候系统自动进入休眠状态
游戏测试
这套方案是目前都是社区提供, 所以免不了会出现大量动态库链接异常或者兼容性闪退, 而目前看 Steam 官方还没有出 ARM 版本计划
现在相当于套两层系统转译层运行(proton + box64/box86), 这效率比常规 x64 + proton 还差;
受限于 Orange3B + ARM, 这已经超越小马拉大车达到玩具四驱车拉火箭的情况.
这套方案需要注意的点: 尽可能把开发板视为硬件提供者调用库文件, 而软件方面尽可能通过固态硬盘加载和运行
OrangePi 的固件有问题, 没办法单独通过接入固态硬盘来启动系统, 必须要采用 TF 卡才能引导系统启动
另外目前 box64 对于 Steam 专门大屏幕模式有兼容问题, 可能会导致进去该界面卡死无反映, 不过目前没有测试过也不知道是否修复好了.
这里下载完游戏启动会唤起 Vulkan 来启动 Window 环境兼容层并编译着色器, 这过程特别久且会停止响应.
老旧的 Vulkan 支持 + amd64 模拟层 + window 模拟层, 性能 debuff 叠加满
不能说完全没办法运行, 只能说涉及到稍微需要 3D 渲染的情况, 整个卡顿都非常明显, 甚至一直处于转圈加载进不去界面.
这期间的 CPU 温度也是十分烫手, 虽然 CPU 已经很努力在运行了
游戏帧率都卡得不到个位数, 《魔法少女的魔女审判》 基本上没办法流畅, 只能换个性能需求低的游戏来测试.
之后切换成泰拉瑞亚(Terraria)测试, 进入游戏的速度还是一如既往的惨不忍睹, 进入游戏更是惨不忍睹卡顿运行.
生成随机世界种子构建卡了很久(快半小时), 感觉是这颗 RK35XX 的 CPU 性能特别差(别看是4核的CPU), CPU 感觉运行得快冒烟了
其实应该选择支持 Linux 原生平台的游戏, 尽可能减少模拟 window 层的代价来加速运行效率.
可能换成 Orange-Pi5-Pro 开发板就能跑得稳定些, 毕竟 RK3588S 的 2.4GHz 主频怎么都比 OrangPi-3B 强.
Orange-Pi5-Pro 也是 E+P 大小核架构, 就是看着 CPU 的8核心唬人而已(一般都是屏蔽小核)
不过我这边手头的 Orange-Pi5Pro 都拿去跑自己的 NAS 服务器, 而官方好像没有补货所以暂时买不到.
其他的就是需要留意以下情况, 从而才能达到最高的运行效率:
-
尽可能少接入外部设备: 如果可以只需要接入 HDMI 显示, 其他设备拔出降低供电
-
尽可能采用官方最高功率(5V5A): 保持最大供电可以让开发板运行效率更好
-
留意散热情况: 因为目前是冬天, 所以温度问题感知不明显, 如果夏天使用最好加装小型风扇辅助散热
-
尽可能采用固态加载运行: TF 卡读写效率太差, 最好只用来做 BOOT 引导系统, 其他都在固态硬盘运行
-
选择占用资源较小桌面环境: 我这边是为了兼容直接用 gnome, 这个桌面环境默认就挺吃性能的
后面如果有时间的话再购置个高性能 ARM 开发板试试看运行效率怎么样.








