外挂USB存储游戏ROM
前提
之前有个小伙伴问了我一个问题,是关于EmuELEC外置USB存储设备挂载游戏ROM的,在4.2版本之前,他都是正常使用的,后来出了4.3,4.4以及4.5之后,升级到了4.3之后的版本,他之前的USB存储设备连接上盒子,启动系统却没有游戏加载出来,让我帮他看看是什么情况。于是就有了此文。
过程
我的盒子是R3300L,是S905l的芯片,只能升级到4.3,之后的版本不再支持S905l的了。但是解决方法和思路应该是一样的。下面就来说说思路和方法。
到官网看了下外置USB存储设备挂载游戏ROM的方法,试了一下,果然不行。尝试换个文件系统格式,最终确认只有FAT32格式的文件系统是可以正常加载的。
又在官方的代码库中扒拉好久,找到了相关的脚本mount_romfs.sh
。才发现原来如此:
方法有二:
在两种方法之前,首先把你的USB存储设备的标卷改名为EEROMS。
其一
直接修改脚本,简单省事,只需要把脚本的ROM_FS_TYPE="vfat"等号后面改为你USB存储设备的文件系统格式,默认为vfat(即FAT32格式),比如你的USB存储设备是ntfs格式,那这行改为 ROM_FS_TYPE="ntfs"
,然后保存脚本,脚本位置为/usr/bin/mount_romfs.sh
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2019-present Shanti Gilbert (https://github.com/shantigilbert)
# Source predefined functions and variables
. /etc/profile
# fat32 is default
ROM_FS_TYPE="vfat" #如果你的USB存储设备是ntfs格式,那这行改为 ROM_FS_TYPE="ntfs"
# Get EEROMS filetype
if [ -e "/flash/ee_fstype" ]; then
EE_FS_TYPE=$(cat "/flash/ee_fstype")
case $EE_FS_TYPE in
"ntfs"|"ext4"|"exfat")
ROM_FS_TYPE=${EE_FS_TYPE}
;;
*)
# Failsafe
ROM_FS_TYPE="vfat"
;;
esac
fi
EE_FS_TYPE=${ROM_FS_TYPE}
其二
根据脚本的内容可知,在自动获取你的USB存储设备的文件系统格式时,没有正确的获取到。于是我写了个脚本ee_mountusb.sh
。
首先ssh工具连接到emuelec系统,下载此脚本传输到emuelec中,并执行sh ee_mountusb.sh
最后,重启EmulationStation,USB设备中的游戏即可正常加载。
以上就是解决EmuELEC外置USB存储设备挂载游戏ROM不成功的问题的方法,两种方法随意选择,都可以解决。