Raspberry Pi 4上Ubuntu 20.04上的GPS串行控制台问题

问题描述

我试图在无头运行Ubuntu 20.04的RPi 4B上使用BerryGPS-IMUv3(https://ozzmaker.com/berrygps-berrygps-imu-quick-start-guide/)。安装BerryGPS-IMU时,它会阻止pi引导,原因可能是pi正在将数据流传输到pi并中断了引导过程。制造商的说明指出需要禁用串行控制台,但说明假定用户正在运行raspbian。

有人在Ubuntu 20.04上找到禁用串行控制台(但保持串行端口启用)的方法吗?我想我需要将启动延迟设置为“ -2”以忽略中断,但是我不确定如何通过ssh访问该设置。

解决方法

我遇到了类似的问题,并找到了 this 解决方案(使用 Raspberry Pi 4、Ubuntu 20.04 和 Adafruit Ultimate GPS HAT 进行测试)。正如您所说,这是关于在接收串行线路上的输入时阻止 U-boot 中断自动引导。不幸的是,这需要重新编译 U-boot 二进制文件。我在 RPi 本身上执行此操作,而不是通过每个链接进行交叉编译。

我的步骤如下:

  1. 安装依赖项:apt-get install git make gcc gcc-aarch64-linux-gnu bison flex (注意我需要将 bisonflex 添加到包中,因为没有它们构建失败,链接的答案中没有提到这一点)

  2. 获取 U-boot 代码库:git clone --depth 1 git://git.denx.de/u-boot.git && cd u-boot/

  3. 编辑 rip_4_defconfig:vi configs/rpi_4_defconfig 添加行:

CONFIG_BOOTDELAY=-2
CONFIG_SILENT_CONSOLE=y
CONFIG_SYS_DEVICE_NULLDEV=y
CONFIG_SILENT_CONSOLE_UPDATE_ON_SET=y
CONFIG_SILENT_U_BOOT_ONLY=y
Per the linked post
  1. 编辑 rpi.h:vi include/configs/rpi.h,修改本节以添加“silent=1\0”行
#define CONFIG_EXTRA_ENV_SETTINGS \
    "dhcpuboot=usb start; dhcp u-boot.uimg; bootm\0" \
    "silent=1\0" \
    ENV_DEVICE_SETTINGS \
    ENV_DFU_SETTINGS \
    ENV_MEM_LAYOUT_SETTINGS \
    BOOTENV
  1. 然后make rpi_4_defconfig && make

  2. 重新定位 make 的二进制输出:

mv /boot/firmware/uboot_rpi_4.bin /boot/firmware/uboot_rpi_4.bin.bak
mv u-boot.bin /boot/firmware/uboot_rpi_4.bin
  1. 我认为这就是我在 Ubuntu 20.04 上启动 RPi 和 Adafruit GPS HAT 所做的一切。