如何使用 Batocera Linux 创建便携式复古游戏 U 盘
Batocera 是一个免费开源 Linux 发行版,旨在从大量设备中创建复古游戏控制台。它支持各种平台和架构,从基于 Intel 的计算机到 Raspberry Pi 板和手持式控制台,并可用作所有最佳控制台模拟器的中央控制面板。
在本教程中,我们将学习如何在 U 盘上刷新 Batocera Linux 并创建便携式复古游戏设备。
在本教程中您将学习:
- 如何下载 Batocera 并将其烧写到 U 盘上
- 如何从 samba 或 NFS 网络共享访问 rom 和其他资源
下载 Batocera 图像
要下载最新版本的 Batocera Linux(在撰写本文时为 39),我们所要做的就是导航到发行版官方网站的下载页面。在本教程中,我们的目标是在 USB 记忆棒上安装 Batocera 并将其用作 x86_64 计算机上的启动设备,因此第一个条目是我们感兴趣的条目:
下载完成后,我们必须将映像写入足够大的 USB 记忆棒。让我们看看如何做到这一点。
写入 Batocera 图像
我们可以通过多种方式在 U 盘上写入 Batocera 映像:其中最用户友好的一种是使用 balenaEtcher,这是一款免费开源工具,旨在易于使用并可在任何平台上工作。我们可以直接从项目官方网站下载适合我们操作系统的版本;一个可移植的 Appimage 可用于 Linux。安装并启动该工具后,我们应该看到以下窗口:
我们需要做的第一件事是单击“Flash from file”按钮,然后选择我们之前下载的压缩的 Batocera 映像:无需事先解压,因为 Etcher 足够聪明,可以为我们完成此操作。
选择图像后,我们需要选择一个目标:我们要在其上刷新图像的设备。我们单击“选择目标”按钮,然后从列表中选择要用作目标的设备;最后,我们点击“选择”按钮来确认我们的选择:
我们就快到了。要将图像刷新到目标设备,我们只需单击“Flash!” Etcher 主界面中的按钮,并根据需要提供我们的管理密码。闪烁过程将开始:
几分钟后,闪烁就会完成。
使用 dd 写入 Batocera 映像(仅限 Linux 和 macOS)
如果我们使用的是 Linux 发行版或 macOS,并且我们习惯从命令行工作,则可以使用 dd 刷新 Batocera 映像,dd 是通常默认安装在任何基于 Unix 的操作系统上的工具。如果我们决定使用这种方法,在指定目标设备时必须密切注意,因为不会有确认提示。
我们可以使用以下语法在单个命令中提取图像并将其写入目标设备:
$ zcat </path/to/batocera/compressed/image> | sudo dd of=</target/device/path> bs=1M
这里我假设 Batocera 镜像位于 ~/Downloads
目录中,目标设备的路径为 /dev/sdb
(示例在 Linux 上运行),因此我要执行的命令是:
$ zcat ~/Downloads/batocera-x86_64-x86_64-39-20240304.img.gz | sudo dd of=/dev/sdb bs=1M
从 USB 记忆棒启动
一旦镜像被刷新,我们必须重新启动(或创建虚拟机)并使用 USB 记忆棒作为启动设备。用于访问启动菜单的键因计算机制造商而异(在某些机器上是 ESC 键,而在 Lenovo Thinkpad 上通常是 F12)。
从启动菜单中,我们选择 USB 设备并按 Enter 键。 Batocera 应该启动而不是我们的操作系统。当我们第一次启动 Batocera 时,它会自动调整 USB 设备上创建的分区的大小,以便使用所有可用空间。这可能需要一段时间,具体取决于系统资源和 USB 设备的大小:
该过程完成后,我们将看到系统/控制台模拟器选择屏幕:
如何从网络共享访问 ROM
Batocera 在目标 USB 设备上创建两个分区;第一个使用 VFAT 文件系统格式化,并标记为“BATOCERA”。它包含系统启动所需的文件,例如batocera.conf
。第二个分区是“userdata”分区,跨越设备的其余部分,采用带有“SHARE”标签的 EXT4 文件系统进行格式化。其中包含“saves”、“bios”和“roms”目录。第一个保存保存文件,第二个是我们放置某些控制台所需的 BIOS 映像的位置,第三个在一系列以模拟系统命名的子目录中包含游戏映像:
为了挂载共享目录,我们需要编辑 batocera.conf
文件,正如我们所见,该文件位于“BATOCERA”分区中。我们对第 11 行的内容感兴趣:
sharedevice=INTERNAL
为了挂载网络共享目录,我们需要将其更改为:
sharedevice=NETWORK
然后我们需要指定要通过网络安装的目录。 Batocera userdata 分区中的几乎每个目录都由一个关键字标识,该关键字基本上是其大写名称。 SHARE
关键字是一个例外,因为它代表整个分区的内容。可用的关键字有:
- 分享
- 只读存储器
- BIOS
- 保存
- 音乐
- 装饰
- 截图
- 主题
- 秘籍
- 声音
- 图书馆
- 溅
Batocera 支持挂载 samba 和 NFS 网络共享。首先让我们看看如何挂载 samba 共享目录。
安装 samba 共享
假设我们有一个名为“data”的 samba 共享,可以作为匿名(来宾)用户在 NAS 上使用 192.168.0.39
IP 进行访问。在这个共享中,我们有一个名为“batocera”的目录,其中包含整个 Batocera“SHARE”分区目录结构。要将这个目录作为一个整体挂载,我们可以使用“SHARE”关键字。这是我们将使用的语法:
sharenetwork_smb1=SHARE@192.168.0.39:data/batocera:guest
如果需要身份验证才能访问共享,我们可以通过专用选项指定用户名和密码:
sharenetwork_smb1=SHARE@192.168.0.39:data/batocera:username=<username>,password=<password>
如果我们只想挂载特定目录怎么办?我们需要做的就是使用适当的目录关键字。例如,假设我们只想挂载共享 rom。假设我们在前面的示例中看到相同的网络共享,我们将编写:
sharenetwork_smb1=ROMS@192.168.0.39:data/batocera/roms:username=<username>,password=<password>
我们可以指定多个网络挂载。在下面的示例中,我们分别挂载“roms”、“saves”和“bios”共享目录:
sharenetwork_smb1=ROMS@192.168.0.39:data/batocera/roms:username=<username>,password=<password>
sharenetwork_smb2=SAVES@192.168.0.39:data/batocera/saves:username=<username>,password=<password>
sharenetwork_smb3=BIOS@192.168.0.39:data/batocera/bios:username=<username>,password=<password>
挂载 NFS 共享
NFS 共享怎么样?语法相同;不同之处在于,我们需要使用“nfs”前缀而不是“smb”,以及共享目录的完整路径而不是共享名。例如,假设 NAS 上的共享目录为 /srv/batocera
。要安装其全部内容,我们将编写:
sharenetwork_nfs1=SHARE@192.168.0.39:/srv/batocera
要单独挂载目录,请改为:
sharenetwork_nfs1=ROMS@192.168.0.39:/srv/batocera/roms
sharenetwork_nfs2=SAVES@192.168.0.39:/srv/batocera/saves
sharenetwork_nfs3=BIOS@192.168.0.39:/srv/batocera/bios
结论
在本教程中,我们学习了如何使用 Batocera 在 USB 记忆棒上创建便携式复古游戏系统。我们了解了如何使用 balenaEtcher 刷新映像,以及如何在基于 Unix 的操作系统上使用 dd 作为命令行替代方案。最后,我们了解了 Batocera 如何对 USB 记忆棒进行分区,以及如何从 samba 或 NFS 网络共享访问资源。