Instructions for serial debugging (sorry, this is going to be a bit long
and probably horribly patronising for those that know what they're
doing!):

First, confirm that you're still *reliably* falling back to older
assets. Reset the new assets, reboot, wait until you get back to a login
prompt, and login:

  $ sudo piboot-try --reset-new
  $ sudo reboot
  ... wait for login prompt ...
  login:
  ... login ...

If you *still* see the "New boot assets ... failed" message, then I want
to see your serial output! Have a look at the hardware support docs [1]
section on attaching a USB-serial interface to your Pi (if you are
unsure about the type of USB-serial interface you need, see [2]).

The machine at the USB end I'll refer to as the "PC" (it doesn't have to
be a PC, it can be another Pi, but for the sake of distinguishing the
two machines I'm going to call it the "PC"). The Pi with the serial
tails attached to its header I'll refer to as the "Pi".

On the Pi:

* Boot to the console
* Add a line to /boot/firmware/config.txt so we can get the bootloader serial 
output included. The following sed command will do the trick (but please be 
aware the newline after the "\" is *required*):

  sudo sed -i -e '/^os_prefix=current/i\
  uart_2ndstage=1' /boot/firmware/config.txt

Basically we're looking for the head of config.txt to look like this:

  $ head /boot/firmware/config.txt
  [all]
  uart_2ndstage=1
  os_prefix=current/

  [tryboot]
  os_prefix=new/

  [all]
  ...

* Next, we need to flip the order of the console= attributes in the
kernel command line so that all systemd output goes to it (via
/dev/console). The following line should do the trick (again feel free
to do this manually):

  sudo sed 's/^\(.*\)console=\([^ ]*\)\(.*\)console=\([^
]*\)\(.*\)$/\1console=\4\3console=\2\5/' /boot/firmware/*/cmdline.txt

We're looking to ensure that console=tty1 comes first, then
console=serial0,115200 comes second in both
/boot/firmware/current/cmdline.txt and /boot/firmware/new/cmdline.txt

* If you haven't already done so, connect the PC and Pi with the USB-
serial interface

On the PC:

* Install a serial client capable of logging. For the purposes of these 
instructions I'm going to use "screen" because it's what I'm used...
* Figure out the serial interface's device. This is likely to be /dev/ttyUSB0 
or /dev/ttyACM0. I'll refer to this as $SERIAL:

  sudo apt install screen
  screen $SERIAL 115200

* Within screen hit Ctrl-A and type :log followed by enter
* This will log the session output to a file named screenlog.0 in the current 
directoy

Back on the Pi:

  sudo reboot

Back on the PC:

At this point, sit back and watch the reboot output on the PC. With the
consoles' switched, the video output on the Pi will be "weirdly quiet"
and probably confined to the top-left of the screen (because the serial
console has no idea how large the screen is, and is gobbling most of the
output, except for the kernel stuff), so there's not much point watching
the Pi's screen. Watch the serial output on the PC instead.

Once you get back to a login prompt, login to confirm that the "New boot
assets..." message still appears (on the Pi or PC's serial session --
doesn't really matter which). At that point you can shut down the serial
session on the PC. Under screen, press Ctrl-A again and type "k"
followed by "y".

Assuming all went as planned and you got back to the "new boot
assets..." message, please attach the screenlog.0 output to this bug.

You may also undo the changes we made to the Pi's boot config too
(switching the console= settings in /boot/firmware/*/cmdline.txt and
removing the uart_2ndstage=1 line from /boot/firmware/config.txt).

[1]: https://ubuntu.com/hardware/docs/boards/how-
to/ubuntu_supported/raspberry-pi/#uart-console

[2]: https://ubuntu.com/hardware/docs/boards/how-
to/special_hardware/uart-console/#connect-to-a-uart-console

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2155094

Title:
  RPi 3B, Zero 2W, 4B: New boot assets in /boot/firmware/new failed

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/2155094/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to