Bug#1035392: installation-reports: Installation Report: Bookworm RC2: Raspberry Pi 400 (netboot)
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-blocks Used Available Use% Mounted on
udev devtmpfs 1871816 0 1871816 0% /dev
tmpfs tmpfs 386544 704 385840 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 vfat 524008 119424 404584 23% /boot/efi
tmpfs tmpfs 386540 44 386496 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&redirect=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 info:
==============================================
Installer lsb-release:
==============================================
DISTRIB_ID=Debian
DISTRIB_DESCRIPTION="Debian GNU/Linux installer"
DISTRIB_RELEASE="12 (bookworm) - installer build 20230427"
X_INSTALLATION_MEDIUM=netboot
==============================================
Installer hardware-summary:
==============================================
uname -a: Linux kitchen 6.1.0-7-arm64 #1 SMP Debian 6.1.20-2 (2023-04-08) aarch64 GNU/Linux
usb-list:
usb-list: Bus 01 Device 01: xHCI Host Controller [1d6b:0002]
usb-list: Level 00 Parent 00 Port 00 Class 09(hub ) Subclass 00 Protocol 01
usb-list: Manufacturer: Linux 6.1.0-7-arm64 xhci-hcd
usb-list: Interface 00: Class 09(hub ) Subclass 00 Protocol 00 Driver hub
usb-list:
usb-list: Bus 01 Device 02: USB2.0 Hub [2109:3431]
usb-list: Level 01 Parent 01 Port 00 Class 09(hub ) Subclass 00 Protocol 01
usb-list: Interface 00: Class 09(hub ) Subclass 00 Protocol 00 Driver hub
usb-list:
usb-list: Bus 01 Device 03: Raspberry Pi Internal Keyboard [04d9:0007]
usb-list: Level 02 Parent 02 Port 03 Class 00(>ifc ) Subclass 00 Protocol 00
usb-list: Manufacturer:
usb-list: Interface 00: Class 03(HID ) Subclass 01 Protocol 01 Driver usbhid
usb-list: Interface 01: Class 03(HID ) Subclass 00 Protocol 00 Driver usbhid
usb-list:
usb-list: Bus 02 Device 01: xHCI Host Controller [1d6b:0003]
usb-list: Level 00 Parent 00 Port 00 Class 09(hub ) Subclass 00 Protocol 03
usb-list: Manufacturer: Linux 6.1.0-7-arm64 xhci-hcd
usb-list: Interface 00: Class 09(hub ) Subclass 00 Protocol 00 Driver hub
usb-list:
usb-list: Bus 03 Device 01: DWC OTG Controller [1d6b:0002]
usb-list: Level 00 Parent 00 Port 00 Class 09(hub ) Subclass 00 Protocol 01
usb-list: Manufacturer: Linux 6.1.0-7-arm64 dwc2_hsotg
usb-list: Interface 00: Class 09(hub ) Subclass 00 Protocol 00 Driver hub
lsmod: Module Size Used by
lsmod: fuse 135168 0
lsmod: efivarfs 20480 1
lsmod: dm_mod 139264 0
lsmod: dax 32768 1 dm_mod
lsmod: md_mod 163840 0
lsmod: xfs 1388544 0
lsmod: jfs 192512 0
lsmod: btrfs 1478656 0
lsmod: xor 16384 1 btrfs
lsmod: xor_neon 20480 1 xor
lsmod: raid6_pq 102400 1 btrfs
lsmod: zstd_compress 249856 1 btrfs
lsmod: libcrc32c 16384 2 btrfs,xfs
lsmod: ext4 765952 1
lsmod: crc16 16384 1 ext4
lsmod: mbcache 20480 1 ext4
lsmod: jbd2 139264 1 ext4
lsmod: crc32c_generic 16384 3
lsmod: brcmfmac 299008 0
lsmod: brcmutil 16384 1 brcmfmac
lsmod: cfg80211 782336 1 brcmfmac
lsmod: sdhci_iproc 20480 0
lsmod: sdhci_pltfm 16384 1 sdhci_iproc
lsmod: sdhci 69632 2 sdhci_pltfm,sdhci_iproc
lsmod: nls_ascii 16384 1
lsmod: nls_cp437 20480 1
lsmod: vfat 24576 1
lsmod: fat 77824 1 vfat
lsmod: sd_mod 57344 0
lsmod: t10_pi 16384 1 sd_mod
lsmod: crc64_rocksoft 20480 1 t10_pi
lsmod: crc64 20480 1 crc64_rocksoft
lsmod: crc_t10dif 20480 1 t10_pi
lsmod: crct10dif_common 16384 1 crc_t10dif
lsmod: uas 28672 0
lsmod: usb_storage 73728 1 uas
lsmod: scsi_mod 229376 3 sd_mod,usb_storage,uas
lsmod: scsi_common 16384 3 scsi_mod,usb_storage,uas
lsmod: hid_generic 16384 0
lsmod: usbhid 57344 0
lsmod: hid 135168 2 usbhid,hid_generic
lsmod: broadcom 28672 1
lsmod: bcm_phy_ptp 24576 1 broadcom
lsmod: ptp 32768 1 bcm_phy_ptp
lsmod: pps_core 24576 1 ptp
lsmod: bcm_phy_lib 20480 2 bcm_phy_ptp,broadcom
lsmod: rfkill 36864 1 cfg80211
lsmod: genet 69632 0
lsmod: dwc2 237568 0
lsmod: mdio_bcm_unimac 20480 0
lsmod: of_mdio 20480 3 mdio_bcm_unimac,genet
lsmod: fixed_phy 16384 2 genet,of_mdio
lsmod: udc_core 57344 1 dwc2
lsmod: xhci_plat_hcd 20480 0
lsmod: fwnode_mdio 20480 1 of_mdio
lsmod: xhci_hcd 258048 1 xhci_plat_hcd
lsmod: roles 16384 1 dwc2
lsmod: libphy 98304 7 mdio_bcm_unimac,genet,fwnode_mdio,of_mdio,broadcom,fixed_phy,bcm_phy_lib
lsmod: usbcore 266240 7 xhci_hcd,usbhid,dwc2,usb_storage,brcmfmac,uas,xhci_plat_hcd
lsmod: usb_common 16384 5 xhci_hcd,dwc2,usbcore,xhci_plat_hcd,udc_core
df: Filesystem 1K-blocks Used Available Use% Mounted on
df: tmpfs 296708 64 296644 0% /run
df: devtmpfs 1421664 0 1421664 0% /dev
df: /dev/mmcblk1p2 14689724 3969604 9952120 29% /target
df: /dev/mmcblk1p1 524008 11312 512696 2% /target/boot/efi
df: /dev/mmcblk1p2 14689724 3969604 9952120 29% /dev/.static/dev
df: devtmpfs 1421664 0 1421664 0% /target/dev
free: total used free shared buff/cache available
free: Mem: 2967068 122632 906048 244960 1938388 2509364
free: Swap: 0 0 0
/proc/cmdline: BOOT_IMAGE=/debian-installer/arm64/linux --- quiet
/proc/cpuinfo: processor : 0
/proc/cpuinfo: BogoMIPS : 108.00
/proc/cpuinfo: Features : fp asimd evtstrm crc32 cpuid
/proc/cpuinfo: CPU implementer : 0x41
/proc/cpuinfo: CPU architecture: 8
/proc/cpuinfo: CPU variant : 0x0
/proc/cpuinfo: CPU part : 0xd08
/proc/cpuinfo: CPU revision : 3
/proc/cpuinfo:
/proc/cpuinfo: processor : 1
/proc/cpuinfo: BogoMIPS : 108.00
/proc/cpuinfo: Features : fp asimd evtstrm crc32 cpuid
/proc/cpuinfo: CPU implementer : 0x41
/proc/cpuinfo: CPU architecture: 8
/proc/cpuinfo: CPU variant : 0x0
/proc/cpuinfo: CPU part : 0xd08
/proc/cpuinfo: CPU revision : 3
/proc/cpuinfo:
/proc/cpuinfo: processor : 2
/proc/cpuinfo: BogoMIPS : 108.00
/proc/cpuinfo: Features : fp asimd evtstrm crc32 cpuid
/proc/cpuinfo: CPU implementer : 0x41
/proc/cpuinfo: CPU architecture: 8
/proc/cpuinfo: CPU variant : 0x0
/proc/cpuinfo: CPU part : 0xd08
/proc/cpuinfo: CPU revision : 3
/proc/cpuinfo:
/proc/cpuinfo: processor : 3
/proc/cpuinfo: BogoMIPS : 108.00
/proc/cpuinfo: Features : fp asimd evtstrm crc32 cpuid
/proc/cpuinfo: CPU implementer : 0x41
/proc/cpuinfo: CPU architecture: 8
/proc/cpuinfo: CPU variant : 0x0
/proc/cpuinfo: CPU part : 0xd08
/proc/cpuinfo: CPU revision : 3
/proc/cpuinfo:
/proc/iomem: 00000000-001fffff : reserved
/proc/iomem: 00200000-3395ffff : System RAM
/proc/iomem: 12730000-1418ffff : Kernel code
/proc/iomem: 14190000-147affff : reserved
/proc/iomem: 147b0000-14b0ffff : Kernel data
/proc/iomem: 2b4a0000-2b4a0fff : reserved
/proc/iomem: 2daa0000-2daaffff : reserved
/proc/iomem: 2dab2000-30d68fff : reserved
/proc/iomem: 33960000-339bffff : reserved
/proc/iomem: 339c0000-339c7fff : System RAM
/proc/iomem: 339c1000-339c1fff : reserved
/proc/iomem: 339c8000-33b1ffff : reserved
/proc/iomem: 33b20000-36ffffff : System RAM
/proc/iomem: 33b20000-33b2ffff : reserved
/proc/iomem: 3579b000-35820fff : reserved
/proc/iomem: 359ed000-359edfff : reserved
/proc/iomem: 37000000-373dffff : reserved
/proc/iomem: 373e0000-3b3fffff : System RAM
/proc/iomem: 3e3b7000-3eb9ffff : efifb
/proc/iomem: 40000000-bfffffff : System RAM
/proc/iomem: 7e20c000-7e20c027 : BCM2844:00
/proc/iomem: b8200000-bf7fffff : reserved
/proc/iomem: bf982000-bf982fff : reserved
/proc/iomem: bf983000-bf9fafff : reserved
/proc/iomem: bf9fd000-bf9fefff : reserved
/proc/iomem: bf9ff000-bfa23fff : reserved
/proc/iomem: bfa24000-bfffffff : reserved
/proc/iomem: fd580000-fd58ffff : BCM6E4E:00
/proc/iomem: fd580000-fd58ffff : BCM6E4E:00 BCM6E4E:00
/proc/iomem: fd580e14-fd580e1c : unimac-mdio
/proc/iomem: fe007b00-fe007bff : BCM2844:00
/proc/iomem: fe00b840-fe00b84f : BCM2835:00
/proc/iomem: fe00b880-fe00b8a3 : BCM2849:00
/proc/iomem: fe1010a0-fe1010a7 : BCM2844:00
/proc/iomem: fe200000-fe2000b3 : BCM2845:00
/proc/iomem: fe201000-fe201fff : BCM2837:00
/proc/iomem: fe201000-fe201fff : BCM2837:00 BCM2837:00
/proc/iomem: fe204000-fe20401f : BCM2838:00
/proc/iomem: fe20c000-fe20c027 : BCM2844:00
/proc/iomem: fe215000-fe21506f : BCM2836:00
/proc/iomem: fe215040-fe21506f : serial
/proc/iomem: fe215080-fe2150bf : BCM2839:00
/proc/iomem: fe300000-fe3000ff : BCM2847:00
/proc/iomem: fe300000-fe3000ff : BCM2847:00 BCM2847:00
/proc/iomem: fe340000-fe3400ff : BRCME88C:00
/proc/iomem: fe340000-fe3400ff : BRCME88C:00 BRCME88C:00
/proc/iomem: fe804000-fe80401f : BCM2841:00
/proc/iomem: fe805000-fe80501f : BCM2841:01
/proc/iomem: fe980000-fe98ffff : BCM2848:00
/proc/iomem: fe980000-fe98ffff : BCM2848:00 BCM2848:00
/proc/iomem: ff20c000-ff20c027 : BCM2844:00
/proc/iomem: 600000000-600000fff : PNP0D10:00
/proc/iomem: 600000000-600000fff : PNP0D10:00 PNP0D10:00
/proc/interrupts: CPU0 CPU1 CPU2 CPU3
/proc/interrupts: 9: 0 0 0 0 GICv2 25 Level vgic
/proc/interrupts: 10: 180824 169809 169577 178825 GICv2 30 Level arch_timer
/proc/interrupts: 11: 0 0 0 0 GICv2 27 Level kvm guest vtimer
/proc/interrupts: 13: 1 0 0 0 GICv2 105 Level BCM2848:00, BCM2848:00, dwc2_hsotg:usb3
/proc/interrupts: 24: 1051690 0 0 0 GICv2 158 Level mmc0, mmc1
/proc/interrupts: 25: 587616 0 0 0 GICv2 189 Level enabcm6e4ei0
/proc/interrupts: 26: 130859 0 0 0 GICv2 190 Level enabcm6e4ei0
/proc/interrupts: 27: 5125 0 0 0 GICv2 175 Level xhci-hcd:usb1
/proc/interrupts: 29: 0 0 0 0 GICv2 48 Level arm-pmu
/proc/interrupts: 30: 0 0 0 0 GICv2 49 Level arm-pmu
/proc/interrupts: 31: 0 0 0 0 GICv2 50 Level arm-pmu
/proc/interrupts: 32: 0 0 0 0 GICv2 51 Level arm-pmu
/proc/interrupts: IPI0: 20530 34785 25297 29077 Rescheduling interrupts
/proc/interrupts: IPI1: 360367 480939 468113 520983 Function call interrupts
/proc/interrupts: IPI2: 0 0 0 0 CPU stop interrupts
/proc/interrupts: IPI3: 0 0 0 0 CPU stop (for crash dump) interrupts
/proc/interrupts: IPI4: 0 0 0 0 Timer broadcast interrupts
/proc/interrupts: IPI5: 0 0 0 0 IRQ work interrupts
/proc/interrupts: IPI6: 0 0 0 0 CPU wake-up interrupts
/proc/interrupts: Err: 0
/proc/meminfo: MemTotal: 2967068 kB
/proc/meminfo: MemFree: 906092 kB
/proc/meminfo: MemAvailable: 2509408 kB
/proc/meminfo: Buffers: 3404 kB
/proc/meminfo: Cached: 1649216 kB
/proc/meminfo: SwapCached: 0 kB
/proc/meminfo: Active: 547068 kB
/proc/meminfo: Inactive: 1133648 kB
/proc/meminfo: Active(anon): 150604 kB
/proc/meminfo: Inactive(anon): 122452 kB
/proc/meminfo: Active(file): 396464 kB
/proc/meminfo: Inactive(file): 1011196 kB
/proc/meminfo: Unevictable: 0 kB
/proc/meminfo: Mlocked: 0 kB
/proc/meminfo: SwapTotal: 0 kB
/proc/meminfo: SwapFree: 0 kB
/proc/meminfo: Zswap: 0 kB
/proc/meminfo: Zswapped: 0 kB
/proc/meminfo: Dirty: 1388 kB
/proc/meminfo: Writeback: 0 kB
/proc/meminfo: AnonPages: 28156 kB
/proc/meminfo: Mapped: 5120 kB
/proc/meminfo: Shmem: 244960 kB
/proc/meminfo: KReclaimable: 285768 kB
/proc/meminfo: Slab: 332636 kB
/proc/meminfo: SReclaimable: 285768 kB
/proc/meminfo: SUnreclaim: 46868 kB
/proc/meminfo: KernelStack: 1832 kB
/proc/meminfo: PageTables: 876 kB
/proc/meminfo: SecPageTables: 0 kB
/proc/meminfo: NFS_Unstable: 0 kB
/proc/meminfo: Bounce: 0 kB
/proc/meminfo: WritebackTmp: 0 kB
/proc/meminfo: CommitLimit: 1483532 kB
/proc/meminfo: Committed_AS: 280340 kB
/proc/meminfo: VmallocTotal: 133143592960 kB
/proc/meminfo: VmallocUsed: 17428 kB
/proc/meminfo: VmallocChunk: 0 kB
/proc/meminfo: Percpu: 528 kB
/proc/meminfo: HardwareCorrupted: 0 kB
/proc/meminfo: AnonHugePages: 20480 kB
/proc/meminfo: ShmemHugePages: 0 kB
/proc/meminfo: ShmemPmdMapped: 0 kB
/proc/meminfo: FileHugePages: 0 kB
/proc/meminfo: FilePmdMapped: 0 kB
/proc/meminfo: CmaTotal: 65536 kB
/proc/meminfo: CmaFree: 28964 kB
/proc/meminfo: HugePages_Total: 0
/proc/meminfo: HugePages_Free: 0
/proc/meminfo: HugePages_Rsvd: 0
/proc/meminfo: HugePages_Surp: 0
/proc/meminfo: Hugepagesize: 2048 kB
/proc/meminfo: Hugetlb: 0 kB
/proc/bus/input/devices: I: Bus=0003 Vendor=04d9 Product=0007 Version=0111
/proc/bus/input/devices: N: Name=" Raspberry Pi Internal Keyboard"
/proc/bus/input/devices: P: Phys=usb-PNP0D10:00-1.4/input0
/proc/bus/input/devices: S: Sysfs=/devices/system/container/ACPI0004:02/PNP0D10:00/usb1/1-1/1-1.4/1-1.4:1.0/0003:04D9:0007.0001/input/input0
/proc/bus/input/devices: U: Uniq=
/proc/bus/input/devices: H: Handlers=sysrq kbd leds
/proc/bus/input/devices: B: PROP=0
/proc/bus/input/devices: B: EV=120013
/proc/bus/input/devices: B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
/proc/bus/input/devices: B: MSC=10
/proc/bus/input/devices: B: LED=7
/proc/bus/input/devices:
/proc/bus/input/devices: I: Bus=0003 Vendor=04d9 Product=0007 Version=0111
/proc/bus/input/devices: N: Name=" Raspberry Pi Internal Keyboard"
/proc/bus/input/devices: P: Phys=usb-PNP0D10:00-1.4/input1
/proc/bus/input/devices: S: Sysfs=/devices/system/container/ACPI0004:02/PNP0D10:00/usb1/1-1/1-1.4/1-1.4:1.1/0003:04D9:0007.0002/input/input1
/proc/bus/input/devices: U: Uniq=
/proc/bus/input/devices: H: Handlers=kbd
/proc/bus/input/devices: B: PROP=0
/proc/bus/input/devices: B: EV=13
/proc/bus/input/devices: B: KEY=103a00001000 e000000000000 0
/proc/bus/input/devices: B: MSC=10
/proc/bus/input/devices:
==============================================
Installer firmware-summary:
==============================================
# No firmware or microcode packages deployed by the installer
Reply to: