2021 年初,我为一个项目购买了两台带 4GB 内存的 RPi 4。我已经拥有 4 个 PI(2 个 OSMC、1 个 Samba File Server/Deluge 和 1 个 Volumio PI)。Volumio 从未工作过。HiFiberry 声音 HAT 也没有。
我最初的意图是通过 HDMI 转 DVI 转换器将两个 Pi4 连接到两个不同的计算机显示器。
问题简要回顾。在购买了 3 种不同的微型 HDMI 转 HDMI 电缆、多个 DVI/HDMI 转换器、VGA/HDMI 转换器、HDMI 分配器、新 HDMI 电缆等之后,我放弃了这个项目。两台显示器、两台 PI 上的任何 HDMI 端口都无法正常工作。两台显示器在我的 Intel/ubuntu 台式机(DVI 转 DVI 和 HDMI 转 VGA)上都能正常工作。每个新的转换器电缆插头等都必须从中国在线进口,这意味着这个失败的项目耗时约两个月。
这里一个不幸的学习经历是,PI 上的微型 HDMI 端口非常脆弱,并且随着所有的插入/拔出,一个 PI 上的两个微型 HDMI 端口都受到了不可修复的损坏,并且 PI 现在只能无头使用。
我的两台现代(2019)索尼电视均有 HDMI 输入,因此我尝试用它们进行测试。
我已经在 PI4 和我的旧 PI 上启动了 Raspbian。
在我的旧款 PI3 和 Pi2 上启动 Raspbian SD 时,桌面 GUI 完美启动,自动填满整个电视屏幕。然而,在我的目标组合(Pi4 到我的大电视)上,我花了整整两天时间摆弄 config.txt HDMI 参数,才显示全屏(temple)GUI。
这个珍贵的 Raspbian SD 卡将在两个 Pi4 上启动,允许 SSH 访问,并为我提供 PI4 上带有可用微型 HDMI 端口的 GUI。
但是,根据各种互联网网站的信息,我的项目需要 Ubuntu 18.04 32 位。不支持 Raspbian。
我尝试使用 Raspberry Imager 创建 Ubuntu Core 18.04。这将启动,但密码不是 ubuntu/ubuntu 或 pi/raspberry,因此我无法通过 SSH 访问。初始 PI 屏幕出现在我的电视上,2 秒后消失并留下黑屏。所以我无法访问系统。我注意到 imager 创建的 SD 系统不包含 Ubuntu 所说的许多配置文件。我很惊讶它居然能启动。
当我通过下载 Ubuntu 18.04.5.. armhf..raspi3 和 Etcher 创建 SD 卡时,Ubuntu 根本无法在无头 Pi4 上启动。绿色 ACT 灯闪烁 1 秒,然后熄灭。系统对我的路由器、arp-a 仍然不可见,无法 ping 通。
起初我以为是 ubunto 不想无头启动,但 SD 卡在 Pi3 上可以正常启动,无论是否连接我的小电视。FWIW 我尝试了 3 种不同的 SD 卡(8GB、16GB 和 32GB)。所有结果都一样。我还使用 Raspberry 原装电源,在 APC UPS/稳压器之后。
如前所述,Raspbian 可以在该系统上启动,我可以通过 SSH 进入。由于两个微型 HDMI 端口都坏了,电视上显然没有显示。
我已按照 PI 成像器的建议重新刷新了 EEprom。
当我尝试在具有正常工作的 HDMI 的系统上启动 Ubuntu 18.04 时,我可以通过 ubuntu/ubuntu 进行 SSH 连接,电视屏幕告诉我 HDMI 端口已连接到树莓派,但也没有视频信号,并且除了标题行之外屏幕保持黑色。
我从开始这项原本以为只需五分钟就能完成的工作到现在已经 3 个多月了,但我仍未在 PI4 上获得可运行的 Ubuntu 系统(键盘、鼠标、屏幕)。
我怀疑我现在需要做的是编辑 Raspbian config.txt 以使 HDMI 视频正常工作的 ubuntu 等效操作。有人知道如何实现这一点吗?通过 SSH 还是通过编辑 SD 卡上的文件?
我现在已经没什么主意了,除了扔掉 PI4,购买英特尔核并试图回忆我最初的项目是什么(我为此编写了几千行代码)
以下是我的 Raspbian config.txt 文件
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
#hdmi_force_hotplug:1=1
#hdmi_force_hotplug:0=0
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1920
#framebuffer_height=1080
# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_force_mode=1
hdmi_ignore_edid=0xa5000080
hdmi_group=1
hdmi_mode=16
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
#dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]
#dtoverlay=vc4-fkms-v3d
#hdmi_enable_4kp60=1
答案1
我现在知道答案了。HDMI 使用一种名为 HDCP 的安全协议,该协议旨在通过处理数字 HDMI 流视频输出来获取电影副本,从而防止人们获取电影副本。因此,计算机上的 HDMI 端口想要与 HDMI“对话”。
如果您插入 HDMI/DVI 转换器,DVI 显示器不会识别“HDMI”,因此无法正常工作。当我发现可以更改 BIOS 设置时,我终于意识到发生了什么,但操作系统一启动,屏幕就黑了。
真是可笑。我因为英特尔而不得不扔掉一台运行良好的显示器。