Re: The server images are not working with Fedora 31

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have until now just used the workaround of copying the "dtb"
directory to the efi directory so uboot can find it during boot, but
had the last days a reason to revisit this, when I had to re-setup one
of the raspberries.
I found out I was mistaken in that it did not boot, and the real
problem lies in a "regression" for the Server image in the handling of
auto configured serial console output.

I am using the SBCs headless and configure them over serial console
during first boot.
It turns out that this console works differently if uboot finds and
uses the kernel provided device-tree or if it uses its own built-in
device tree (or maybe firmware provided for the rpi?).
And uboot + grub only seems to auto-configure output on serial console
if it finds the kernel provided device tree and loads it.
So with older versions of Fedora Server using ext4 on the boot
partition uboot find the kernel provided device tree, loads it, and
serial console output "just works".
On newer images where boot is XFS uboot uses its builtin (or
firmware-provided on raspberry?) and uboot+grub fails to
auto-configure serial console output.

The two workarounds on raspberry pi are to:
1. "cp -rL /boot/dtb /boot/efi/"
or
2. add "console=tty0 console=ttyS0,115200" to the kernel command line in grub

The difference in configuration between the two device trees can also
be spotted in dmesg after successfully bootup.

How to reproduce:
1. Write the Fedora 32 aarch64 "server" image to an sd-card.
2. edit /boot/efi/config.txt and set "enable_uart=1"
3. pop the sd-card into a rpi3, connect a serial console, and connect a monitor
4. boot
You will during uboot notice that it fails to find any dtb (as uboot
cannot load a file from xfs), and proceeds to boot and show grub.
After grub you vill notice that the serial console outputs the
following and then nothing more:
```
EFI stub: Booting Linux Kernel...
EFI stub: EFI_RNG_PROTOCOL unavailable, no randomness supplied
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map...
```

The output on the monitor will pause with the same for a second, then
continue with printk, and the output from dracut and systemd during
the rest of the bootup.
On the monitor will start initial-setup during bootup, and after that
present login prompt. No login prompt will present itself on the
serial console.
Run the following after you have logged into the system:
```
# dmesg | grep tty
[    0.001030] printk: console [tty0] enabled
[    4.725695] 3f215040.serial: ttyS0 at MMIO 0x3f215040 (irq = 61,
base_baud = 31250000) is a 16550
[    5.254904] 3f201000.serial: ttyAMA1 at MMIO 0x3f201000 (irq = 66,
base_baud = 0) is a PL011 rev2
[   28.776063] systemd[1]: Created slice system-getty.slice.
# copy -rL /boot/dtb /boot/efi/
# systemctl reboot
```
You will now notice that uboot tells you it found a dtb on the
vfat-formatted efi partition and loaded it, and you will also see grub
and the kernel outputs everything from bootup on both the serial
console and on the monitor, and end it with a login prompt on both.

```
# dmesg | grep tty
[    0.000897] printk: console [tty0] enabled
[    4.495976] 3f215040.serial: ttyS1 at MMIO 0x3f215040 (irq = 61,
base_baud = 31250000) is a 16550
[    5.492585] printk: console [ttyS1] enabled
[    6.204865] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 66,
base_baud = 0) is a PL011 rev2
[    6.224175] serial serial0: tty port ttyAMA0 registered
[   31.499803] systemd[1]: Created slice system-getty.slice.
[   31.668768] systemd[1]: Created slice system-serial\x2dgetty.slice.
```

So there is a kind of "regression" in that the serial console output
are not any longer auto configured on the Server-image.
It is also hard to document as the correct tty to use for serial
console is different between images depending on the FS for /boot

Best Regards,
Peter Hjalmarsson
_______________________________________________
arm mailing list -- arm@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to arm-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/arm@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM (Vger)]     [Linux ARM]     [ARM Kernel]     [Fedora User Discussion]     [Older Fedora Users Discussion]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Maintainers]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [Linux Apps]     [KDE Users]     [Fedora Tools]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]

Powered by Linux