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


树莓派连接 CRT 电视输出指南

如果你怀念老式电视那种独特的显示质感,想要在树莓派上实现 CRT 电视输出(CRT output),这份指南将为你拨开迷雾。

【注意】:本教程仅适用于 Batocera v32 版本


核心说明:版本是关键

由于 Batocera 在 v33 左右的版本中,为大部分单板计算机(SBC)引入了 Wayland 合成器(Wayland compositor)。这个新技术模块完全不支持从树莓派自带的复合视频接口输出信号。

生活化类比:这就像是你的旧电视只认“老式插头”,而新版系统换了一套只说“数字语言”的管家。如果你坚持要在 v33 或更高版本上玩,可能得买个那种带电源的“HDMI 转模拟信号”转换器,但目前这招好不好使还没人敢打包票。


官方与社区的微妙平衡

你需要明确一点:Batocera 官方并不直接支持 PC 平台(x86_64)的 CRT 输出,树莓派等单板机的 CRT 输出更是处于“非官方”状态。目前的实现方案大多源自于社区大神的“用爱发电”,在特定场景下确实可以跑通。


技术限制与【提示】

由于树莓派自带的图形处理器(GPU)不支持较低的点时钟速率(Dot clocks),如果你打算直接使用它的复合输出(Composite output),会有以下局限性:

  • 不支持动态切换分辨率(Switchres)
  • 不支持在不重启的情况下更换分辨率
  • 不支持隔行扫描输出(Interlaced output)等高级 CRT 特性。

【注意】:在 PC 平台上使用的那种“一键 CRT 自动配置脚本”,无法在树莓派等单板机上运行。


前言

(以下为具体操作步骤前的预说明…)

虽然这听起来像是老生常谈,但还是得先敲响警钟。与数字信号不同,模拟信号(Analogue signals)及其接收设备通常没有现代设备那种“自我保护机制”。

【注意】:如果你操作不当,可能会导致显示器损坏、旧保险丝烧断、陈年电容过热,甚至引发火灾。在折腾这些老古董之前,请务必做好功课。你和设备的安全性完全由你自己负责。


生活化类比:现代显示器就像是一个带限流阀的自来水管,压力再大也不会爆管;而老式 CRT 电视更像是一个直接连接大坝的水池,如果你不控制好“水流方向和压力”,池子随时可能被撑爆。

在动手之前,强烈建议先阅读 x86_64 平台的词汇表,熟悉那些 CRT 领域的专用术语。


准备工作

要在你的单板机(SBC)上输出原汁原味的模拟信号,你需要准备好以下“装备”:

  • 第一步:确认主机
    准备一台带有复合视频输出(Composite output)功能的树莓派(通常是那个耳机孔)。
  • 第二步:线材选购
    准备一根专为树莓派设计的三极 A/V 复合连接线(Three-pole A/V composite cable)
  • 第三步:显示设备
    准备一台带有复合输入(Composite inputs)接口的电视机(即红黄白接口)。
    【注意】:如果你的老电视只有 RF 天线接口,那你除了转换器外,还需要一个复合转 RF 调制器(Composite to RF modulator)
  • 第四步:软件工具
    • 需要一种SSH 远程连接(Secure Shell)到 Batocera 系统的方法(Windows 用户推荐使用 PuTTY)。
    • 需要一种通过网络编辑文件的方法(Windows 用户推荐使用 WinScp 配合 Notepad++)。

关于三极 A/V 复合线

如果你还没有这种线,请确保购买时认准树莓派专用规格:

如果你正准备采购线材,可以参考以下信息:

  • [Adafruit 商店的连接线页面]
  • [Amazon 商店的连接线页面]

【提示】:除了专门的树莓派线材,Xbox 360E 的三极 A/V 复合连接线同样可以在树莓派上完美运行。

此外,使用带电源的 HDMI 转模拟信号适配器(Active HDMI-to-analogue adapter) 理论上也是可行的,但目前还没有确切的成功案例记录。

社区成员 guywith6magikrp 根据 Kuro 整理的 数模转换器(DACs) 测试名单,整理出了一份兼容 Batocera 的适配器列表。这份名单目前仍在持续更新中:点击查看 Google 表格


开始配置(准备阶段)

好消息是,你甚至不需要开机,直接在电脑上通过读卡器修改 SD 卡就能完成所有核心设置。

【注意】:如果你使用 Windows 系统,请务必使用 Notepad++ 来编辑文件。Windows 自带的“记事本”会破坏文件格式,导致系统无法引导。

  • 第一步:准备启动盘
    如果你还没操作,请先将 Batocera 系统镜像烧录到微型 SD 卡中。
  • 第二步:打开引导分区
    将 SD 卡插入电脑,找到名为 BATOCERA 的引导分区。
  • 第三步:修改启动命令行
    找到 cmdline.txt 文件并打开。在这一行文字的最开头,加上下面这段代码:
video=Composite-1:720x480@60ie

生活化类比:这就像是在给管家寄出的信件最前面加上一行“加急说明”。在系统处理其他复杂指令之前,先大声告诉它:“嘿,待会记得从复合接口输出画面,分辨率设置成 720×480 隔行扫描!”

  • 第四步:保存并清理
    保存 cmdline.txt 文件。
    【注意】:请确保没有误触回车键增加额外的空行或空格,否则可能会导致 Batocera 无法正常开机引导(Booting)

  • 第五步:停用 HDMI 输出
    在同一个文件夹下找到 config.txt。在所有包含 hdmi 字样的代码行前面加上一个 # 号(这叫“注释掉”),告诉系统暂时忽略这些指令。

#hdmi-yadda-yadda
  • 第六步:注入 CRT 核心参数
    在文件的“主区域”(注意不要写进像 [RPI3] 这样的特定平台标签里),添加以下代码:
max_framebuffer_width=320
max_framebuffer_height=240
framebuffer_width=320
framebuffer_height=240
enable_tvout=1
sdtv_mode=0
sdtv_aspect=1
audio_pwm_mode=2
disable_fw_kms_setup=1
enable_uart=1

生活化类比:这段代码就像是给树莓派戴上了一副“老花镜”。我们将帧缓冲(Framebuffer)的分辨率强制限定在 320×240,这正是老电视最舒服的视觉区域,同时激活了电视输出接口。

完成这些步骤后,你的树莓派就已经准备好通过复合接口向 CRT 电视发送信号了。接下来你可以先阅读“编辑文件”的相关章节,然后直接跳到 EmulationStation(系统菜单界面) 部分。


关于模拟器的特殊限制

由于硬件架构的差异,树莓派并不支持 动态分辨率切换(Switchres) 或独立版的 MAME(大型电玩模拟器)。因此,任何针对这两者的配置在树莓派上都是无效的。不过,RetroArch(全能模拟器前端) 仍有其独立的配置选项。


【注意】针对树莓派 4(Pi 4)的特别补救

如果你使用的是树莓派 4,且在完成上述操作后发现:系统菜单可以显示,但一启动模拟器就黑屏或闪退,请尝试切换图形驱动程序(Driver)

我们将从“全功能驱动(KMS)”降级为“固件级驱动(FKMS)”以换取兼容性:

  1. config.txt 中找到 [pi4] 这一行。
  2. 找到 dtoverlay=vc4-kms-v3d-pi4,在前面加 # 注释掉。
  3. 找到 dtoverlay=vc4-fkms-v3d,去掉前面的 #(取消注释)。

【补救措施】针对树莓派 3(Pi 3)的特别调试

如果你使用的是树莓派 3,并且在看到开机 Logo 之后屏幕突然变黑,这通常是系统没能正确识别复合输出路径。

请尝试按照以下步骤调整配置:

  • 第一步:定位代码段
    config.txt 文件中找到标有 [pi3] 的段落。
  • 第二步:修改驱动指令
    找到原本的这一行:
    dtoverlay=vc4-kms-v3d
  • 第三步:手动开启复合输出开关
    将其修改为:
    dtoverlay=vc4-kms-v3d,composite=1

生活化类比:这就像是你虽然告诉了管家(驱动程序)去干活,但没说清楚具体走哪扇门。加上 ,composite=1 就像是特意叮嘱他:“嘿,记得走‘复合接口’这道后门送货!”


遇到其他问题怎么办?

如果你在配置过程中遇到了其他麻烦,可以参考 x86_64(PC 平台) 的教程指南,那里的信息会更加详尽。

【提示】:虽然 x86_64 的指南信息丰富,但请注意,其中提到的某些系统行为是 PC 平台特有的,并不一定适用于树莓派等单板机。


原文: Raspberry Pi CRT设置 • 翻译: DIY8 Bot

© 版权声明
评论 抢沙发

请登录后发表评论

    暂无评论内容