📖 本文由 Batocera 官方 Wiki 翻译整理,内容可能随版本更新而变化。


系统故障排除

如果您前往我们的 [[https://Discord.gg/ndyUKA5|Discord]] 寻求帮助,请收集相关日志(如下所述)并随消息一起上传。这将帮助我们更好地帮助您。

模拟器无法启动 / EmulationStation 日志

当模拟器启动失败时,您会立即返回到 EmulationStation 的游戏列表。大多数情况下,此时您可以在 ”/userdata/system/logs/es_launch_stderr.log” 和 ”/userdata/system/logs/es_launch_stdout.log”(亦即从网络共享驱动器访问的 ”%%\Batocera\share\system\logs\es_launch_stderr.log%%” 和 ”%%\Batocera\share\system\logs\es_launch_stdout.log%%”)中找到有用的信息。

如果仅某个特定系统出现问题,请先查阅其对应的[[:systems|系统页面]],因为其中可能会列出常见问题及其解决方案。

如果 EmulationStation 本身出现问题(例如菜单冻结或某些功能失效),可以在 ”/userdata/system/configs/EmulationStation/es_log.txt”(从网络共享驱动器访问的 ”%%\Batocera\share\system\configs\EmulationStation\es_log.txt%%”)找到 ES 的日志。

在很多情况下,这些日志中会包含明显的错误信息,例如缺少 BIOS 文件、ROM 格式错误等。如果没有,请将该文件带到 Discord 频道,通常会得到一些关于问题所在的提示。

如果没有明显的错误信息,而您想在此期间尝试一些操作:

  • 拔掉机器上不必要的设备后重新尝试。包括任何额外的控制器、Wi‑Fi 适配器、蓝牙设备等。

  • 删除”/userdata/system/scripts/”中的任何[[:launch_a_script|custom scripts]](或将”scripts/”文件夹重命名为”backupscripts/”以临时禁用它们)。

  • 如果您使用的是任何[[EmulationStation:customize_systems|custom]] ”es_systems.cfg”,请先尝试删除/重置它。这包括您可能通过custom overlays设置的任何内容。
  • 如果使用exotic storage option(如NAS),请尝试恢复使用Batocera驱动器本身上的userdata分区。
  • 您的存储介质(即廉价USB stick)可能太慢而无法使用。这种情况很少见,但某些USB sticks的传输速度无法超过1 MB/s,这可能导致问题。这与它支持的USB”type”无关,也可能存在crummy USB 3.0 sticks。请先将驱动器插入另一个端口重试,如果问题仍然存在,请尝试使用flashed到另一个USB stick/storage medium的Batocera。Sandisk和Samsung USB sticks通常可靠,但即使它们也会随着时间推移而degrade。
  • 对于较弱的SBC,您还可以在SYSTEM SETTINGS -> DEVELOPER -> INTERFACE PRELOADING中尝试开启interface preloading。您还可以通过在同一submenu中启用HIDE WHEN RUNNING A GAME来尝试”hiding”后台的EmulationStation。
  • 执行[[#factory_reset|factory reset]]以恢复默认设置,然后重试。
  • 如果使用official Nvidia drivers,请尝试禁用它们并使用default Nouveau drivers。
Games/systems not appearing/advanced system options are missing

Batocera仅显示已添加games的systems。首先,尝试[[:add_games_bios|adding your games]],然后进入GAME SETTINGS -> UPDATE GAME LISTS来refresh the list。

所有可用的核心都由 Batocera 自动安装;您永远不需要“添加”核心。官方网站上有一个[[https://Batocera.org/compatibility.php|兼容性图表]]。

如果您的游戏/系统/选项仍然没有显示,请检查以下内容:

  • 游戏是否采用可接受的文件格式。包含的 ”_info.txt” 文件会指明哪些格式与该系统兼容。
  • 如果您在 ”/userdata/system/configs/EmulationStation/” 中使用了任何[[EmulationStation:customize_systems|自定义]]的 ”es_systems.cfg” 或自定义功能 ”es_features.cfg”,请先尝试删除/重置它。这包括您可能通过自定义覆盖层设置的所有内容。
  • 删除 ”/userdata/system/scripts/” 中的任何[[:launch_a_script|自定义脚本]](或将 ”scripts/” 文件夹重命名为 ”backupscripts/” 以临时禁用它们)、”/boot/boot-custom.sh” 和/或 ”/userdata/system/custom.sh”。
  • 如果使用特殊的存储选项(如 NAS),请尝试恢复使用 Batocera 驱动器本身上的 userdata 分区。

受影响系统的 NAS 解决方案

以下系统在有任何文件系统连接到 NAS 时将无法工作:

  • [[systems:flatpak|Flatpak]]
  • [[systems:Steam|Steam]]
  • [[systems:windows|Windows]]
  • [[systems:wiiu|Wii U]](适用于 Batocera v36 及以下版本)
  • [[systems:model2|Model 2]]
  • [[systems:fpinball|Future Pinball]]
  • [[systems:jaguar|Jaguar]](BigPEmu)
  • [[systems:halflife|xash3d_fwgs]]

如果您希望继续将 NAS 用于大多数游戏,但使用内部存储来运行这些受影响的系统,以便它们能够继续工作(显然不是放在 NAS 上),请将以下文件保存为[[scripting_services_rules_examples#batocera_services|服务]]在 ”/userdata/system/services/nas_workaround”(无扩展名)中:

# 简体中文翻译

## 文件内容

```bash
#!/bin/bash
# 这允许你在使用NAS时仍然可以使用Windows/Flatpak。

case "$1" in
start)
mkdir -p /media/SHARE/saves/flatpak
mount --bind /media/SHARE/saves/flatpak /userdata/saves/flatpak
mkdir -p /media/SHARE/saves/windows
mount --bind /media/SHARE/saves/windows /userdata/saves/windows
mkdir -p /media/SHARE/roms/windows
mount --bind /media/SHARE/roms/windows /userdata/roms/windows
;;
esac

exit $?

上传或创建文件后,运行 Batocera-services enable nas_workaround 来在启动时激活服务。重启或运行 Batocera-services start nas_workaround 应该在 /media/ 中创建所有必要的挂载点。

Batocera v36 及以下版本不需要为 mount 命令使用 --bind 选项。

游戏性能差

首先要检查的是确保你有一个参考基准。也可能只是模拟系统上的游戏由于模拟的本质而需要比预期更多的资源。例如,模拟 PS2 需要相当强大的系统,尽管它是一台老旧的第六代主机。你通常可以通过在同一台电脑上运行 Windows 时的模拟游戏表现来测试基准,或者参考其他设备的性能表现。你也可以在网上查看特定游戏的性能表现,进行相关研究。

一旦你确定你的游戏性能异常差,而你的系统通常能够达到更好的性能,你可以尝试以下几件事:
– 将所有设置重置为 “AUTO”,这些使用合理的默认值,在大多数情况下应该有良好的性能表现。


* 更改模拟器使用的图形 API;每种硬件可能偏好或在任何给定 API 上运行较慢。这通常可以在系统的高级设置中找到。并非所有模拟器都能访问所有 API。从最新到最旧:Vulkan、GLCore、OpenGL。
* 确保您的音频缓冲区没有被阻塞;如果您的系统无法尽快处理正在生成的音频帧,可能会限制设备的性能。[[:audio_issues#my_audio_is_randomly_cutting_out_depending_on_what_s_happening_on_screen|尝试在高级系统选项中增加音频延迟设置。]]
* 删除 /userdata/system/scripts/ 中的任何 [[:launch_a_script|custom scripts]](或将 scripts/ 文件夹重命名为 backupscripts/ 以临时禁用它们)、/boot/boot-custom.sh 和/或 /userdata/system/custom.sh。
* 降低游戏的分辨率。如果系统通常不适合进行 upscale,这一点尤为重要,例如第五代及以下的游戏机。
* 如果使用 Nvidia 硬件且 Batocera **v33** 或更低,请[[:supported_pc_hardware|激活官方 Nvidia 驱动程序]]。如果使用 Batocera **v34** 或更高版本,或使用 Nvidia 以外的硬件(如 AMD),系统会自动处理,无需任何操作。

如果完成以上所有检查后性能仍然不佳,请携带您的日志(最好附上性能低下的操作视频)来到 [[https://Discord.com/invite/JXhfRTr|Discord 服务器]],您应该会得到一些建议。

##### 音频问题

如果想在 Radeon GPU 上使用 HDMI 音频,首先检查 [[:supported_pc_hardware#ati_radeon_hdmi_audio_output|你已在启动行中启用该设置]]。如果使用的是 Nvidia 显卡,请确保 [[:supported_pc_hardware#nvidia_drivers|你的官方驱动程序已激活]]。

当这些都确认无误后,首先在 **MAIN MENU** -> **SYSTEM SETTINGS** -> **AUDIO PROFILE** 中尝试不同的设置。当你返回 **MAIN MENU** 时应该立即听到声音(默认情况下会播放背景音乐)。如果仍然听不到声音,请尝试手动设置 **AUDIO OUTPUT** 设备(不同配置文件的设备会有所不同,你需要返回 **MAIN MENU** 才能更新列表)。要严格测试你硬件所有可能的音频输出模式(这可能需要大量试错,但只需要做一次):

- 进入 **MAIN MENU** -> **SYSTEM SETTINGS** -> **AUDIO PROFILE** 并选择第一个配置文件,然后返回 **MAIN MENU**。
- 再次进入 **SYSTEM SETTINGS** -> **AUDIO OUTPUT** 并测试所有可用的输出,每次更改后返回 **MAIN MENU**。
- 如果所有 **AUDIO OUTPUT** 选项都不起作用,请为不同的 **AUDIO PROFILE** 重复步骤 1-2。你的 **AUDIO OUTPUT** 选项可能会根据所选的 **AUDIO PROFILE** 而改变。

Batocera **v32** 重新设计了音频处理方式,因此大多数问题现在只需在设置菜单中选择正确的设备和配置文件即可解决。如果你仍然遇到问题或使用的是旧版 Batocera,音频问题请参考 [[:audio_issues|专门页面]]。

##### 我的可用空间都去哪儿了?

Batocera将大量"虚拟文件系统"中的大文件(如硬盘镜像、游戏包安装文件和已编译的着色器)放入''saves/''和''system/<emulator>/''子文件夹中。这些文件夹在使用第七代及更高世代主机(GameCube/Wii、PS3、3DS等)运行多个游戏时,很容易累积到数GB以上。值得检查这些文件夹的大小,看看它们是否可以解释意外出现的可用空间不足。

##### 尽管我刚从驱动器中删除了一些文件,但仍显示"Not enough free space"!

也许垃圾箱文件夹仍在驱动器上存储着你的文件?你可以通过进入文件管理器(在系统列表中按''[F1]''),点击**Trash Can**,然后清空它来清理这些文件。

如果你已经这样做了但仍然收到错误,可能是**Trash Can**未能真正删除文件。如果是这样,你可以通过导航到''/userdata/system/.local/share/Trash/files'',选择所有内容,然后按''[Shift]''+''[Del]''强制删除所有内容。你也可以[[:access_the_batocera_via_ssh|通过SSH]]运行''rm -rf /userdata/system/.local/share/trash/''来执行此操作。''rm -rf /path/to/somewhere''命令有能力破坏你的硬盘,所以在使用时一定要仔细检查拼写。[[https://youtu.be/n23CN47nnlw|Batocera Nation的演示视频。]]

如果您想避免将来出现此问题,可以将文件管理器设置为不使用垃圾箱文件夹,默认直接删除文件。点击文件管理器顶部菜单栏中的**Edit**,然后进入**Preferences**,取消勾选"Move deleted files to "trash can" instead of erasing from disk"(将删除的文件移动到"垃圾箱"而不是从磁盘擦除)复选框。点击**Close**保存设置。通过网络共享删除的文件不会发送到垃圾箱。[[https://www.youtube.com/watch?v=CBREZ6HcROA|该过程的视频链接。]]

如果您是从外部来源(如另一台计算机)管理文件,请确保在驱动器连接时也清空其**Trash**(垃圾箱)。这通常可以通过在已连接驱动器上搜索隐藏的"Trash"文件夹来检查(这因每个OS而异):

{{:trash.png?nolink&200|}}

可移动驱动器的垃圾箱功能通常可以从相应的OS进行配置。大多数系统**应该**默认禁用此功能。

##### "Not enough free space"(可用空间不足)但我找不到填满磁盘的文件!

打开xTerminal或通过[[:access_the_batocera_via_ssh|SSH]]访问Batocera。

运行''df -h''验证可用磁盘及每个磁盘上的可用空间:

<code>
[root@Batocera /userdata/system]# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/sdb2                22.0G     20.6G      1.4G  94% /userdata
/dev/sdb2                22.0G     20.6G      1.4G  94% /media/SHARE
/dev/sda1                 1.8T      1.7T         0 100% /media/2TB
</code>

在此示例中,外部硬盘显示0可用空间和100%已使用。

运行''ncdu /userdata''分析哪些文件夹和文件占用最多空间。

{{::filelogconsumingspace.png?nolink&400}}

可以直接在 **ncdu** 中删除文件。选中它并按 **[D]** 删除。

现在再次运行 **df -h**,我们终于可以再次检查是否有可用空间了!

/dev/sdb2 22.0G 20.6G 1.4G 94% /userdata
/dev/sdb2 22.0G 20.6G 1.4G 94% /media/SHARE
/dev/sda1 1.8T 1.7T 19.2G 99% /media/2TB


##### 我的游戏加载时间很长/Batocera 启动需要好几分钟!

这可能是因为您正在使用极其缓慢的 USB 驱动器(如 1.0,尽管这些可能由于年代久远已经全部损坏)、有故障的 SD 卡,或者如果您使用的是 USB 连接式便携式驱动器,则可能是使用了不支持 [[wp>USB_Attached_SCSI|USB Attached SCSI 协议驱动程序 (UAS)]] 的廉价 SATA 转 USB 线缆。

如果是后者,您可以使用 **lsusb -t** 命令检查已加载的驱动程序。它会输出类似以下内容:

[root@Batocera /userdata/system]# lsusb -t

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
| Port 2: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M
|
Port 4: Dev 5, If 0, Class=Mass Storage, Driver=USB-storage, 5000M


在此示例中,设备 3(**Driver=uas**)支持 UAS,而设备 5(**Driver=USB-storage**)不支持。如果您的 SATA 转 USB 线缆不支持 UAS,您可能会遇到该便携式驱动器的间歇性访问问题。

##### 启动问题

#### x86/x86_64

您可以首先在 [[install_batocera#bios_settings_if_batocera_fails_to_boot|安装 Batocera 页面]] 上检查 BIOS 设置。然后,检查以下内容:
* 您可能需要将 BIOS 设置为允许 legacy/非安全启动,因为某些主板可能仅允许在 UEFI 下启动 Windows。

* 如果系统使用 UEFI BIOS,且无法禁用 Secure Boot,且没有 legacy boot 可用,请参见 [[secureboot|Secure Boot]] 页面获取设置说明。  
* 如果系统启用了 Trusted Platform Module (TPM),Batocera **v39** 及更高版本会显示 ''Boot Option Restoration'' 并在五秒后重启,循环直到完成所需的 [[secureboot#TPM|TPM Configuration]] 为止。  
* 如果在 UEFI 上使用 Grub bootloader 来链式加载 Batocera bootloader,请确保正在链式加载正确的路径:  
* 对于 Batocera **v39** 及更高版本:''/EFI/Batocera/bootx86.efi''  
* 对于 Batocera **v38** 及更低版本:''/EFI/BOOT/bootx86.efi''  
* 若同一台机器上还使用 Windows,请确保 Windows 未处于休眠状态或以其他方式(如 fast boot、quick start 等)占用系统访问权限。  
* Windows 8 及更高版本已将“休眠”功能改名为“关机”(技术术语为 “fast startup (hybrid shutdown)”)。要正常关机,请在开始菜单选择“关机”时按住 **SHIFT** 键。[[#batocera_can_t_read_my_hard-drive_using_its_file_manager_i_know_it_s_fine_because_i_boot_windows_off_of_it|您也可以永久关闭此“功能”。]]  
* 拔掉其他存储设备(如装有其他操作系统的内部硬盘)或控制器。  
* Batocera 镜像可能未正确写入,尝试使用 Etcher 重新写入,并确保校验显示 “successful”。

* 如果使用 Windows 将镜像烧录到 USB 驱动器,Windows 中的一个 bug 会导致其无法在硬件层面识别其他分区。如果驱动器最初有多个分区,可能需要先完全擦除它,之后 Windows 才能完全识别它。另一个选择是使用其他操作系统来烧录 Batocera。
* 如果使用 SATA-to-USB 转接线连接 USB 硬盘或 SSD(所有 2.5" 和 3.5" 硬盘都使用它们,即使它们隐藏在外壳中),你的转接线可能不支持 TRIM,而 TRIM 是正确启动所必需的。尝试更换不同的 SATA-to-USB 转接线或更换不同的驱动器。
* 某些 USB 驱动器(特别是 USB 3.0 及以上的)可能无法被你的主板芯片组正确读取或兼容,尝试更换另一个驱动器或端口。
* 尝试在 BIOS 中禁用/启用 IOMMU 设置。
* 尝试在 BIOS 中切换相关驱动器的 AHCI/SATA/NVMe 设置(某些 BIOS 只能将其作为全局设置)。
* 如果你的主板 EFI shell 无法加载或选择 Batocera 的 EFI 分区(在 Mac 硬件上很常见),考虑用更通用的 [[https://www.rodsbooks.com/refind/|rEFInd Boot Manager]] 替换它。建议在执行该过程之前先阅读整个页面并理解其内容。

### Verbose boot

默认情况下,Batocera 会在启动序列期间抑制大多数启动相关消息。如果你想查看这些信息来帮助诊断启动问题,请启用 verbose boot 模式。

要在 Batocera **v36** 及更高版本中启用 verbose 模式,请在启动时反复按键盘上的向下箭头键,然后选择 verbose boot 模式。你可能需要按住 Enter 键半秒钟才能使其生效,因为启动菜单轮询输入的速度很慢。

# 简体中文翻译

适用于 Batocera v35 及更低版本

为此,需要[[:edit_boot_partition|编辑以下文件]]:

- 对于 Legacy boot:''/boot/boot/syslinux/syslinux.cfg''(如果是 Batocera **5.24** 或更低版本,''/boot/boot/syslinux.cfg'')
- 对于 EFI/UEFI boot:''/boot/EFI/BOOT/syslinux.cfg''(如果是 Batocera **5.24** 或更低版本,''/boot/EFI/syslinux.cfg'')

并替换以下行:

MENU SHIFTKEY

改为:

MENU HIDDEN

然后,在下次启动 Batocera 时,快速按下向下箭头键以中断启动并打开 syslinux 菜单。选择 verbose 选项(或按键盘上的热键 ''[V]'')以 verbose 模式启动。

编辑时请小心,因为启动命令需要非常特定的语法。粘贴后编辑器可能添加的任何额外换行符或空格都可能影响成功启动。请务必先备份文件以防万一!

如果通过 SSH 或终端访问 Batocera,请不要忘记需要先将 ''/boot/'' 挂载点设置为[[:edit_boot_partition#editing_the_boot_partition_while_batocera_is_running|写入模式]]。

---

### Legacy boot

在 x86_64 Legacy boot 系统上,如果 ''/boot/boot/syslinux/ldlinux.sys'' 文件以**任何方式**被修改,可能会导致一种情况:未来对 ''Batocera'' /boot 分区的任何类型的修改(包括 Batocera 版本升级/降级)都可能触发启动时黑屏,并显示"Boot error"消息。

恢复方法:

- 从另一个驱动器上的 Linux 发行版启动(该过程使用 live installer ''ubuntu-23.10.1-desktop-amd64.iso'' 测试通过)
- 进入 root shell("Try Ubuntu",启动终端,''sudo -i'')
- 连接 Batocera 驱动器(如果尚未连接)
- 确保 Batocera 启动分区**未挂载**:''umount $(blkid -L Batocera)''

- 确保已安装 "syslinux" 软件包。对于 Debian 或 Ubuntu 系统:''apt install syslinux''
- 重新安装 bootloader(注意:如果出现类似 "Hidden (2048) does not match sectors (63)" 的警告是正常的):''syslinux -i $(blkid -L Batocera) -d /boot/syslinux''

#### Single board computer (RPi, Odroid, etc.)

如果你在 SBC 上连启动都很困难,可以使用此方法(这种情况很少见,SBC 通常不像标准台式电脑那样模块化,通常仅由硬件故障或外部因素引起)。以下是一些可以尝试的常规故障排除步骤:

* 可能是由于电压不足导致无法启动(启动是 CPU 最密集的任务)。首先尝试拔掉任何外部 USB 设备,包括外置硬盘、USB 鼠标/键盘、手柄、网线等。确保使用的是 SBC 官方推荐的电源适配器。
* 禁用你可能正在使用的任何 [[:store_games_on_a_nas|网络共享]]。
* 删除你的游戏元数据(''roms/<system>/'' 目录下的 ''gamelist.xml'' 以及 ''images'' 和 ''videos'' 文件夹)。
* 作为最后的手段,尝试 [[:install_batocera|重新刷写]] SD 卡。部分用户反馈需要先将 SD 卡完全格式化为空白状态,Batocera 才能在该卡上启动。

##### 启动时 splash 视频卡顿

由于图形驱动在启动时未加载,启动画面视频完全在 **CPU** 上渲染。如果你有  
1. 超高分辨率显示器(如 4K 电视),或  
2. 本身 **CPU** 性能很弱,  
这可能导致启动视频卡顿。你可以通过 [[:splash_boot#parameters_on_video_splash_sound_rotation_resize|编辑配置文件]] 将启动画面视频强制渲染为较低分辨率(例如 1920x1080 或 1280x720)来解决此问题。

<code>
splash.video.resize=1280x720
</code>

可以在 `Batocera-boot.conf` 或 `Batocera.conf` 中进行此设置。

##### 视频/显示问题

[[:display_issues|已移至专属页面。]]

#### 错误的 radeon/amdgpu 驱动被选中

这针对的是 AMD Radeon GPU 中 **RX 200 系列** 和 **RX 300 系列**(Southern Islands SI 和 Sea Islands CIK)的小范围机型错误地选择了旧版 **radeon** 驱动而非新版 **amdgpu** 驱动的问题。**radeon** 驱动不兼容 **Vulkan**,而 **amdgpu** 驱动则兼容。

如果你觉得自动选择的 **radeon** 驱动性能已经可以接受,则无需采取任何操作!仅在有非常特殊的需求且没有更现代的显卡可用的情况下才需要考虑此操作。

按照此过程操作,你将强制 **Batocera** 在内核层面使用特定的驱动,而不是让它自动选择最合适的驱动。这样做可能会出现视频/音频卡顿或功能缺失等问题,通常情况下不推荐且并无必要(请参阅上文提示)。

请注意,**RX** 系列和 **R** 系列显卡中早于 **R7 240** 的型号**完全不支持 **amdgpu** 驱动**,即它们根本不支持。使用这些显卡时执行此操作将导致显卡完全不被使用。

按照[[:supported_pc_hardware#fix_no_audio_on_radeon_hdmi_audio_output|启用 Radeon HDMI 音频]]中的说明编辑 ''syslinux.cfg'',但不要添加 ''radeon.audio=1'',而是追加以下内容:

<code>
radeon.cik_support=0 amdgpu.cik_support=1 radeon.si_support=0 amdgpu.si_support=1
</code>

如果执行此操作后仍无法通过 HDMI 输出声音,则可能还需要追加以下内容:

<code>
amdgpu.dc=1
</code>

##### 网络问题


[[:network_issues|已移至专门页面]]。


##### 蓝牙问题(无法连接、未检测到设备等)

首先,查看[[:supported_controllers|支持的控制器页面]]。如果使用的控制器不在列表中,仍可正常工作,但可能存在未记录的问题。

请检查以下内容:
* 确保 ''system/Batocera.conf'' 文件中存在 ''controllers.bluetooth.enabled=1'' 且未被注释掉。
* 确保已将控制器置于"配对"模式。不同控制器的操作方式不同,但通常需要在打开控制器电源的同时按住几个按钮。
* 如果无法重新配对控制器,请清除之前已记住的控制器配对记录。
* 确保没有明显的无线干扰,例如 USB 3.0 驱动器、附近的 Wi-Fi 路由器、正在运行的微波炉、大块金属板、狗大声吠叫等。
* 确保只使用一个蓝牙接口。例如,如果同时有板载 BT 模块和 USB 连接 BT 适配器,它们可能会相互干扰。
* 关闭其他无线接口(如 Wi-Fi)。

可以通过[[:edit_boot_partition|添加一行]]包含 ''dtoverlay=disable-bt'' 的内容到 ''/boot/config.txt'' 文件来禁用 Raspberry Pi 3/4 的板载蓝牙。


#### 蓝牙适配器特定问题

# 简体中文翻译

你可以尝试通过 [[:bluetooth_controllers_-_manual_setup|SSH/xterm 手动连接 Bluetooth 设备]],而不是使用菜单。这也可能是因为你使用的 BT dongle 太新了,Batocera 不支持;[[hardware:compatible_dongle_list|这里是已确认可用的 dongle 列表]]。

有时,即使计算机关闭了,它仍会持续向 USB 插槽供电。一些 dongle 会将此理解为“冻结状态,除非重新插拔否则无法工作”。尝试重新插拔 dongle 来“重置”它。

你还应该尝试将 BT dongle 插入 USB 2.0 端口而不是 USB 3.0 端口,因为一些 BT dongle 在 3.0 端口上存在兼容问题(在兼容 dongle 列表中有说明)。

一些用户报告称,如果 userdata 分区曾经完全填满(比如通过 scraping),即使之后释放了一些空间,Bluetooth 也会永久停止工作。据报告,唯一的解决方案是 [[:install_batocera|重新刷写 Batocera]]。

#### 安装 Bluetooth 固件二进制文件

如果你的 Bluetooth 设备提示需要某些二进制固件文件(使用 `dmesg` 检查),你可以将它们放入 `/lib/firmware/rtl_bt/` 目录,并在确认其工作正常后运行 `Batocera-save-overlay`。

以下是 BT 设备在 `dmesg` 中提示需要二进制固件文件的示例:

[ 1.797311] Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8761b_fw.bin not found


如果你完成了以上操作并且成功了,请告知开发人员,以便他们将其添加到下一个版本的 Batocera 中。

##### 我的控制器在成功连接后表现异常/无法检测任何输入

首先,查看[[:supported_controllers|supported controllers page]](支持的控制器页面)。如果你使用的控制器不在列表中,它仍然可以工作,但是可能会有未记录的潜在问题。

如果可以的话,使用有线连接。无线连接有更多可能出现问题的环节,导致控制器无法正常工作,而有线连接更有可能正常工作。如果你仍然想使用无线 **Bluetooth** 连接,请参阅上方的[[#bluetooth_issues_(not_connecting,_no_devices_detected,_etc.)|Bluetooth issues section]]。

如果使用第三方控制器,它们可能有多种可切换的 “modes”。请尝试每种模式,在切换模式之间重新插拔设备。通常 **X‑input** 模式可以正常工作,随后是 **D‑input** 模式。

如果你想尝试使用 **SSH** 和 **''evtest''**,请参考[[diagnose_joysticks_issues|this page for joystick issue diagnosis]](手柄问题诊断页面)。

##### Batocera 无法使用文件管理器读取我的硬盘!我知道它没问题,因为我用它来启动 Windows。

Windows 在关机时往往会 “lock” 所在的硬盘,使其对其他操作系统不可访问。真是 “cool”。要检测这一点,你可以通过在开始菜单中选择 “Shut down” 时按住 **Shift** 键来进行完全关机,参见[[https://www.top-password.com/blog/fully-shutdown-windows-10-instead-of-hibernating-it/|在 Start 菜单中选择 “Shut down” 时按住 Shift 键]]。

要关闭 **“fast startup (hybrid boot)”**:
- 打开旧版 **Control Panel**(图标视图),可通过开始菜单搜索访问,然后点击 **Power Options** 图标。  
- 在左侧点击 **Choose what the power buttons do** 链接。  
- 在顶部点击 **Change settings that are currently unavailable** 链接(需要管理员权限)。

- 在 **Shutdown settings**(关机设置)下,取消勾选 **Turn on fast startup**(启用快速启动)复选框。  
- 点击 **Save changes**(保存更改)按钮。  

[[https://www.eightforums.com/threads/fast-startup-turn-on-or-off-in-windows-8.6320/|Details for Windows 8 on the eightforums.]] [[https://www.tenforums.com/tutorials/4189-turn-off-fast-startup-windows-10-a.html|Details for Windows 10 on the tenforums.]]

除此之外,还可能需要在 BIOS 设置中禁用一项功能。这项功能可能被标记为 **Fast boot**、**Windows 8.1/10/11 boot/feature**、**Hybrid sleep** 等。不同 BIOS 界面各不相同,请参阅主板说明书。

#### I can see the drive but still can't access it!

也许您已经启用了 BitLocker 驱动器加密?这是 Windows 的一项功能,可对磁盘数据进行加密,只有 Windows 能访问。自大约 2024 年起默认开启。

首先,在“开始”菜单中输入 **bitlocker drive encryption**,选择同名选项。确认您的硬盘在 BitLocker 加密状态中显示 **Off**(关闭)。

此外,单独的文件夹或文件也可能被加密。找到出现“无法访问”的文件夹/文件,右键 → **Properties**(属性) → **Advanced..**(高级),取消勾选 **Encrypt contents to secure data**(加密内容以保护数据)。

##### MacOS, strange files starting with ._

如果您是 Mac 用户,可能会疑惑为何会看到大量以 `._` 开头的文件,它们与实际的 ROM 文件或其他文件是重复的。例如,您有一个 `1943.zip` 文件,旁边还有一个 `._1943.zip`。这是因为您从 Mac 访问了 Batocera 主机,MacOS 会在访问时留下这些文件。它们在 Linux 下默认隐藏(因为以点开头),但在 EmulationStation 中仍会显示。

为了列出所有这些文件,你可以 SSH 登录到 Batocera 系统并输入:

```bash
find /userdata/ -name "._*"

要删除所有这些文件:

find /userdata/ -name "._*" -exec rm {} \;
创建 Batocera 支持文件

如果你想分享系统日志文件的快照以[[:report_issue|帮助开发者诊断你的机器]],你可以使用菜单 SYSTEM SETTINGS -> FRONTEND DEVELOPER OPTIONS -> CREATE A SUPPORT FILE。它会在 /userdata/saves/ 目录下生成一个名为 Batocera-support-YYYYMMDDHHMMSS.tar.gz 的压缩包(文件名中包含创建时的年/日期/时间)。你也可以通过 [[:access_the_batocera_via_ssh|SSH]] 运行 Batocera-support 来创建。

这个压缩包可能包含敏感数据,如你的 Wi-Fi/RetroAchievements 密码(明文形式),所以要小心分享到什么地方。你的:
* Wi-Fi SSID 和密码位于 system/Batocera.confsystem/Batocera-boot.conf
* RetroAchievements 用户名和密码位于 system/Batocera.conf
* ScreenScraper 用户名和密码位于 system/es_settings.cfg

你也可以直接使用一个全新安装的、不包含此类信息的 Batocera 来创建支持文件。

在 Batocera 39 或更高版本中,大多数敏感数据会自动从支持文件中清除。如果在最近版本的支持文件中发现任何敏感数据,请提交 Github issue 报告。

恢复出厂设置

当事情真的出了大问题,而且你想”恢复出厂设置”你的 Batocera,即在不丢失你的 ROM、游戏存档和刮削元数据的情况下,将所有设置恢复为默认值。有多种方法可以做到这一点,按从最安全到最危险的顺序排列:

  • [[:access_the_batocera_via_ssh|通过 SSH 登录]],然后输入:
/etc/init.d/S31emulationstation stop
mv /userdata/system /userdata/system.old
reboot
  • 关闭 Batocera,将其驱动器插入另一台运行中的操作系统,然后直接访问 userdata 分区。在 SHARE 分区中导航到 /userdata,将目录 system 重命名为 system.old,然后在目标机器上启动 Batocera。
  • 进入 Batocera 上的文件管理器。然后,将目录 system 重命名为 system.old
  • 打开文件管理器,使 EmulationStation 不再占用系统文件(如果无法做到,则通过 SSH 关闭 EmulationStation:/etc/init.d/S31emulationstation stop)。然后从网络访问 userdata 分区,导航到 /userdata,将目录 system 重命名为 system.old,并立即重启。

在(重新)启动后,所有设置都将被清除为默认值。您需要重新输入一些参数,例如 Wi-Fi 凭据等……或者,您可以查看之前配置文件中的内容:/userdata/system.old/Batocera.conf 文件以及 /userdata/system.old/configs/ 文件夹中的所有文件。逐一重新插入您的设置,直到遇到导致问题的那个设置。这样您就可以恢复之前的配置,而无需重新输入所有内容(特别是对于 Batocera.conf,您可能在其中设置了许多选项),当然要排除导致问题的那个设置。

也可以通过将 system.old 中的文件复制并覆盖回当前 system 文件夹来”撤销”恢复出厂设置。

如果即使这样也无法解决您的问题,作为最后手段,您可以尝试重新刷写 Batocera。这显然会清除您所有的 userdata(ROM、游戏存档等)(如果存储在同一驱动器上)。

其他问题

以下是一些包含重要故障排除部分的其他主题:

  • Batocera 无法更新: 尝试 [[:upgrade_manually|手动升级]]。
  • Batocera 不断重置我的时钟: 然后 [[:timezone#troubleshooting|修复你的其他操作系统]]。
  • 我没有 X 新功能: 更新你的 [[EmulationStation:customize_systems|自定义 ES 系统]],或者如果你不知道这是什么,请将其删除以使用默认设置。

原文: 常见问题综合排查 • 翻译: DIY8 Bot

© 版权声明
评论 抢沙发

请登录后发表评论

    暂无评论内容