树莓派配置文件 config.txt - HDMI 热插拔

快速预览:

  1. config.txt 的路径通常是 /boot/config.txt,如果找不到,可能是 /boot/firmware/config.txt。再找不到,参考文章内【找到 config.txt】的思路去找。
  2. 在 config.txt 里增加如下 2 行内容后重启树莓派即可开启 HDMI 热插拔功能
    1
    2
    hdmi_force_hotplug=1
    hdmi_drive=2

0x00:问题和背景

新到的树莓派4B,安装了带桌面的 Ubuntu 系统,前期为了方便,通过 HDMI 线外接了显示器,方便配置系统。但是配置完毕并拔掉显示器之后发现一个问题:重启树莓派后,如果没有外接显示器,则无法正常进入系统,定位到是 HDMI 检测机制的问题,它默认需要插上显示器才能正常启动。

查到资料需要开启树莓派的 HDMI 热插拔才能不依赖外接显示器。
于是需要我们:

  1. 找到配置文件 config.txt (本文重点)
  2. 修改 config.txt

0x01:定位 config.txt

修改 config.txt 有2大类方法

  1. 取出 SD 卡,在其他电脑上进行读取 SD 卡内容,找到 config.txt 进行修改
  2. 直接在树莓派内部运行中的系统当中进行修改

下面说下方法2:

通常 config.txt 的路径是 /boot/config.txt,但是如果找不到,需要查看下磁盘分区,找到启动分区所在的目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 * 2048 526335 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 526336 124735454 124209119 59.2G 83 Linux

看到2个分区:
- /dev/mmcblk0p1 (启动分区)
- /dev/mmcblk0p2

$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mmcblk0p1 258095 113997 144099 45% /boot/firmware
/dev/mmcblk0p2 61862116 11804636 47472868 20% /

可见
- /dev/mmcblk0p2 挂载到 / 目录下,
- /dev/mmcblk0p1 挂载到 /boot/firmware 目录下

那么,config.txt 没在 /boot/下,应该就在 /boot/firmware 下了,即 /boot/firmware/config.txt

0x02:修改 config.txt

添加如下2行到 config.txt 然后重启树莓派即可

1
2
hdmi_force_hotplug=1
hdmi_drive=2
  • hdmi_force_hotplug=1 设置树莓派使用 HDMI 热插拔模式,即使没有检测到 HDMI 显示器。
  • hdmi_drive=2 将树莓派设置为正常的 HDMI 模式(如果支持和启用,将发送声音)。如果没有这条线,树莓派将默认切换到 DVI(无音频)模式。

参考资料: