fan-shim interrupts u-boot

Bug #1873520 reported by Dave Jones
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
u-boot (Ubuntu)
Won't Fix
Low
Unassigned

Bug Description

The popular pimoroni fan-shim uses the serial lines on the GPIO header to control an RGBLED. The default configuration of Ubuntu includes a serial console, which can interrupt the u-boot process with an appropriately timed key-press. When the fan-shim is installed, it effectively spams the serial console continuously with the result that the boot process is interrupted and lots of repeated characters appear on the screen.

The workaround, for now, is to add the following line to the syscfg.txt file, disabling the serial port:

  enable_uart=0

Tags: focal eoan
tags: added: eoan focal
Revision history for this message
Maxwell Andrews (nairn62) wrote :

Disabling the UART is an option for me, as I use this USB console (https://www.adafruit.com/product/3589) device on all my Raspberry PI 4Bs. I hacked the Pimoroni Python automatic.py file to disabled any communication to the GPIO14 & GPIO15 pins, and even cut the stacker pins on my header. Now, I can use the USB console and have the fan-shim's system service switching the fan on and off under Ubuntu (Focal Fossil).

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in u-boot (Ubuntu):
status: New → Confirmed
Revision history for this message
rewound (rewound) wrote :

syscfg.txt is intended to contain system-made configuration changes and user configuration changes should be placed in usercfg.txt. Consequently I edited, in the boot partition of the RPi4's SD card mounted in a laptop, usercfg.txt and inserted enable_uart=0 there. Xubuntu 20.04 LTS now boots correctly with Fan Shim mounted.

Revision history for this message
Guilherme Oliveira (gui-lancia) wrote :

In my case, I read a one-way communication coming from a power meter on the uart. Since I can't control the flow of data coming and also need to have uart enabled, how can I work arround?

Is is possible to set enable_uart=0 on /boot/firmware/usercfg.txt and after boot use a script to reenable it?

Revision history for this message
Guilherme Oliveira (gui-lancia) wrote :

An additional info:

setting the environment variable below for u-boot solves the problem on the u-boot CLI. To get to the CLI, I need to have and HDMI monitor and a USB keyboard.

setenv bootdelay -2

Can someone help me adding this through ssh command line. I need to fix an equipment that is already in field, with hard physical access to it.

Mathew Hodson (mhodson)
Changed in u-boot (Ubuntu):
importance: Undecided → Low
Changed in u-boot (Ubuntu):
status: Confirmed → Fix Committed
status: Fix Committed → Incomplete
assignee: nobody → Muhammad ariesta (anezdoank84)
information type: Public → Public Security
Colin Watson (cjwatson)
information type: Public Security → Public
Changed in u-boot (Ubuntu):
status: Incomplete → Confirmed
assignee: Muhammad ariesta (anezdoank84) → nobody
Revision history for this message
Dave Jones (waveform) wrote :

Closing as won't fix: the serial console is too important to disable by default on our server images, and there's nothing we can realistically do about a piece of hardware that attached to the serial pins that spams the serial console as a result (u-boot *should* be interruptible by key-press after all).

This is *less* of an issue in 22.04 as u-boot is not in the boot sequence there, but the boot screen will still flicker on that release as plymouth perceives the escape key being repeatedly pressed on the serial console, so the work-around still applies there (change enable_uart to 0 in config.txt).

Changed in u-boot (Ubuntu):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.