Bug#1035392: installation-reports: Installation Report: Bookworm RC2: Raspberry Pi 400 (netboot)

2023-11-15 Thread James Addison
Followup-For: Bug #1035392
Control: close -1

(closing; I'll likely re-attempt an install on the same hardware with a more
recent release of Debian in future, for comparison purposes)



Bug#1035392: installation-reports: Installation Report: Bookworm RC2: Raspberry Pi 400 (netboot)

2023-05-02 Thread James Addison
Package: installation-reports
Followup-For: Bug #1035392

> The only customized dnsmasq setting required was:
>
>   pxe-service=0, "Raspberry Pi Boot"

Oops, I lied.  There was one other relevant dnsmasq setting:

  dhcp-boot=bootnetaa64.efi

(telling the device what EFI filename to retrieve and run from the TFTP server)



Bug#1035392: installation-reports: Installation Report: Bookworm RC2: Raspberry Pi 400 (netboot)

2023-05-02 Thread James Addison
Package: installation-reports
Severity: normal
Tags: d-i

Boot method: network
Image version: [2023-04-28] Bookworm Release Candidate 2 Installer
Date: 2023-05-02

Machine: Raspberry Pi 400
Partitions:

Filesystem Type 1K-blocksUsed Available Use% Mounted on
udev   devtmpfs   1871816   0   1871816   0% /dev
tmpfs  tmpfs   386544 704385840   1% /run
/dev/mmcblk1p2 ext4  14689724 4192988   9728736  31% /
tmpfs  tmpfs  1932704   0   1932704   0% /dev/shm
tmpfs  tmpfs 5120   0  5120   0% /run/lock
/dev/mmcblk1p1 vfat524008  119424404584  23% /boot/efi
tmpfs  tmpfs   386540  44386496   1% /run/user/1000


Base System Installation Checklist:
[O] = OK, [E] = Error (please elaborate below), [ ] = didn't try it

Initial boot:   [O]
Detect network card:[E]
Configure network:  [O]
Detect media:   [E]
Load installer modules: [E]
Clock/timezone setup:   [O]
User/password setup:[O]
Detect hard drives: [E]
Partition hard drives:  [O]
Install base system:[O]
Install tasks:  [O]
Install boot loader:[E]
Overall install:[O]

Comments:

Although the list of problems in this report might seem lengthy and
arcane, I enjoyed the installation process and think that with a few
small fixes, the rough edges can be removed.  I am writing this report
from an LXDE environment on the installed system.


This was largely an experiment to determine how feasible it is to bring
up a Raspberry Pi 400 over the network and to install Debian Bookworm
from there using the standard Debian Installer process.

The TFTP server was dnsmasq with a fairly minimal configuration based on
Debian's PXE-boot wiki page[1].  In addition to Debian Bookworm's
netboot.tar.gz[2] file (for RC2 at the time of download), the EDK2 UEFI
firmware[3] v1.34 was extracted to the /srv/tftp directory.

The only customized dnsmasq setting required was:

  pxe-service=0, "Raspberry Pi Boot"


Additional firmware for use during the install session was provided by
unpacking a firmware.tar.gz[3] file onto a FAT32-formatted USB drive.


Problems:

  * Firmware for the brcmfmac kernel module was not found on the USB
drive (but is present).  This may be related to #1029843

* Workaround: extracted the .deb contents on another system, placed
  them onto the USB drive, and then used one of the available virtual
  consoles (ctrl-alt-F1 or ctrl-alt-F2) on the install host to mount
  the USB drive and copy the firmware files to /lib/firmware/brcm
  before rmmod'ing and modprobe'ing the kernel module.

  * [minor] The hw-detect/load_firmware dialog box included an
extraneous newline within the displayed filename(s) for which
loading failed.
 
  * The microSD card intended as the installation disk did not appear
under /dev/mmc* when the install began.

* Workaround: rmmod'd and modprobe'd the sdhci* kernel modules;
  after doing that, the disk was detected and available under /dev

  * After completing the installation and rebooting, the first boot from
the install disk failed.  The Raspberry Pi's diagnostics console
showed a 'Firmware not found' message.

* Fix: this seemed to be due to a lack of Pi-compatible firmware on
  the ESP (EFI System Partition) of the install disk.  To resolve
  the problem, the same EDK2 UEFI firmware used on the dnsmasq
  ntboot server was unpacked into the ESP partition from another
  system (by removing the SD card from the Pi and placing it into
  the other machine).

  * After successfully reaching the EDK2 UEFI boot manager, the system
appeared to pause without reaching the expected next-stage GRUB
bootloader.

* Fix: this appears to be due to the default unpacked EDK2 UEFI
  bootmanager being unaware of the GRUB install on the same ESP
  partition.  That's understandable, because GRUB was installed
  before the EDK2 UEFI.

  The problem was solved by using the built-in boot menu management
  in the EDK2 UEFI to add an entry to boot into Debian.  In
  particular, this involved creating a file-boot entry that runs
  'shimaa64.efi'.

That concludes the installer-related issues; with those problems
worked-around / resolved, the system booted correctly.

There was one more problem that may not be installer-related:

  * The 'raspi-firmware' package failed to configure correctly during
'apt install', with an exit code 1 and asking whether the
/boot/firmware path had been mounted.


[1] - 
https://wiki.debian.org/PXEBootInstall?action=show=DebianInstaller%2FNetbootPXE#Another_Way_-_use_Dnsmasq

[2] - 
https://deb.debian.org/debian/dists/testing/main/installer-arm64/current/images/netboot/netboot.tar.gz

[2] - https://github.com/pftf/RPi4/releases/tag/v1.34

[3] - 
https://cdimage.debian.org/cdimage/firmware/bookworm/20230424/firmware.tar.gz


-- Package-specific