Failed to boot
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
flash-kernel (Ubuntu) |
Fix Released
|
Undecided
|
Paolo Pisati | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Yakkety |
Fix Released
|
Undecided
|
Unassigned | ||
linux-firmware-raspi2 (Ubuntu) |
Fix Released
|
Undecided
|
Paolo Pisati | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Yakkety |
Fix Released
|
Undecided
|
Unassigned | ||
linux-raspi2 (Ubuntu) |
Fix Released
|
Undecided
|
Paolo Pisati | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
u-boot (Ubuntu) |
Fix Released
|
Undecided
|
Paolo Pisati | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Yakkety |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* Unable to boot into system after upgrade to 4.4.0-1030.37
[Test Case]
* fresh install ubuntu-
* enable -proposed and 'apt full-upgrade'
[Regression Potential]
* red led still on, but few green led blinks then stay at the black screen(hdmi on)
[Other Info]
* restore the working boot partition backup image could recover the situation
[Solution]
* The latest X/raspi2 kernel in -proposed blows the space the
bootloader reserves for the DTB, making the board unbootable (it only
happens with classic rpi2 images created by the Foundation, Snappy is
fine)
* Ppa:p-pisati/misc has these 3 new packages that fix it:
- linux-firmware-
upon installation checks that /boot/firmware/
new DTB memory location, and if not, it does the necessary
modification on behalf of the user
- flash-kernel - modifies uboot.env to find the DTB in the new memory location
- uboot - update uboot to work with the new boot firmware (aka skip
serial initialization if already done by the fw), contains the
mkknlimg required when installing a new u-boot binary and correctly
installs the uboot binary in the vfat partition
[How to test it]
* Install a fresh foundation image, add my misc ppa and the xenial -proposed repository, apt-get update && dist-upgrade, once the board completes the upgrade reboot it.
Changed in linux-raspi2 (Ubuntu): | |
assignee: | nobody → Paolo Pisati (p-pisati) |
description: | updated |
tags: | added: verification-done-xenial |
Changed in u-boot (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → Paolo Pisati (p-pisati) |
Can you connect a serial cable to the board? You need a TTL serial and it connects like this:
http:// workshop. raspberrypiaust ralia.com/ usb/ttl/ connecting/ 2014/08/ 31/01-connectin g-to-raspberry- pi-via- usb/
then on you pc:
screen /dev/ttyUSB0 115200
then plug the power in the board, and you should see the bootloader:
U-Boot 2015.07 (Aug 31 2015 - 15:50:21 +0200)
DRAM: 944 MiB
WARNING: Caches not enabled
RPI 2 Model B
MMC: bcm2835_sdhci: 0
reading uboot.env
In: serial
Out: lcd
Err: lcd
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
ubuntu@raspi2:~$ uname -a *.dtb bcm2709- rpi-2-b. dtb
Linux raspi2 4.4.0-1029-raspi2 #36-Ubuntu SMP Wed Oct 19 14:38:48 UTC 2016 armv7l armv7l armv7l GNU/Linux
ubuntu@raspi2:~$ ls -la /boot/firmware/
-rwxr-xr-x 1 root root 13430 Oct 26 15:18 /boot/firmware/
this on -1029.36, while if i update to -1030.37 the new dtb is bigger and it blows the space at the beginning of the memory:
ubuntu@raspi2:~$ ls -la /boot/firmware/ *.dtb bcm2709- rpi-2-b. dtb
-rwxr-xr-x 1 root root 15356 Oct 26 18:18 /boot/firmware/
and i bet on console you will end up with something like this:
U-Boot 2015.07 (Aug 31 2015 - 15:50:21 +0200)
DRAM: 944 MiB
WARNING: Caches not enabled
RPI 2 Model B
MMC: bcm2835_sdhci: 0
reading uboot.env
In: serial
Out: lcd
Err: lcd
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
No FDT memory address configured. Please configure
the FDT address via "fdt addr <address>" command.
Aborting!
6682376 bytes read in 12755 ms (510.7 KiB/s)
Kernel image @ 0x1000000 [ 0x000000 - 0x65f708 ]
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
U-Boot>
is that the case?