Re: [EXT] no HDMI on rpi4b NetBSD 10.1
Steve Rikli <[email protected]> Mon, 14 Jul 2025 14:00:13 -0700
| Newsgroups | gmane.os.netbsd.ports.arm |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Jul 14, 2025 at 04:21:50PM +0000, Kulesa, Craig A - (ckulesa) wrote: > The "generic" system does support UEFI but it does not come with the > RPI4 UEFI firmware -- it's 'generic'. I believe that makes sense. I was (unconsciously) thinking like the NetBSD img was for Rpi (the previous OS I used on this rpi4 was FreeBSD, and they offer an rpi-specific img), but of course there are also Rocks and Pines and Bananas etc. in the world. :-) Absent this additional RPI4 UEFI firmware, is there a way to tell what firmware version comes with the NetBSD .img file? In general, is there a way to check what version a file from a given UEFI firmware bundle is (e.g. from commandline or similar), other than "just knowing" which .zip file you downloaded? > When you install the RPI4 UEFI firmware to SD card, NetBSD will pick > up and support the residual hardware like HDMI that doesn't come up > without UEFI and ACPI. See this link for the firmware: > > https://github.com/pftf/RPi4 OK. The installation instructions from that page says: "Extract all the files from the archive onto the partition you created above. Note that outside of this Readme.md, which you can safely remove, you should not change the names of the extracted files and directories." Which sounds like the zip archive expects to be unpacked as-is into a fat/msdos partition, e.g. like the /boot/ partition from the NetBSD img file -- more on this below, where you discuss options. > There are a couple options here: > > - install the RPI4 UEFI firmware to micro-SD card, install the NetBSD > image file to a USB-attached device (such as a flash drive or SSD). > This is cleaner since UEFI firmware and NetBSD are on independent > devices -- and certainly faster if an SSD is used. I wasn't planning to use additional storage with this rpi4 aside from the microSD sysdisk, so it sounds like I'll try your 2nd option: > - Install the NetBSD image file to microSD, then mount its msdos > partition and unzip the RPI4 UEFI files into it. Then you can boot > both UEFI and NetBSD from the same microSD. This minimizes hardware > footprint at the expense of more complexity and a large hit to drive > speed. Is is possible to simply unzip the RPi4_UEFI_Firmware_v1.42.zip archive into a running NetBSD system's msdos /boot/ directory, and then reboot? Or it it better to do that "offline", with the microSD mounted in another system? I note that the zip archive and msdos partition /boot/ directory from the NetBSD img have different layouts and content, but there's some overlap; here's what I have from the booted NetBSD arm64.img installation: rpi4# uname -v NetBSD 10.1 (GENERIC64) #0: Mon Dec 16 13:08:11 UTC 2024 [email protected]:/usr/src/sys/arch/evbarm/compile/GENERIC64 rpi4# df -h /boot Filesystem Size Used Avail %Cap Mounted on /dev/dk0 79M 32M 47M 40% /boot rpi4# mount | grep dk0 /dev/dk0 on /boot type msdos (local) rpi4# ls -l /boot total 23155 drwxr-xr-x 1 root wheel 1024 Dec 17 2024 EFI -rwxr-xr-x 1 root wheel 1594 Dec 17 2024 LICENCE.broadcom -rwxr-xr-x 1 root wheel 52476 Dec 17 2024 bootcode.bin -rwxr-xr-x 1 root wheel 33 Jul 13 17:08 cmdline.txt -rwxr-xr-x 1 root wheel 155 Jul 12 12:23 config.txt drwxr-xr-x 1 root wheel 1024 Dec 17 2024 dtb -rwxr-xr-x 1 root wheel 7269 Dec 17 2024 fixup.dat -rwxr-xr-x 1 root wheel 5412 Dec 17 2024 fixup4.dat -rwxr-xr-x 1 root wheel 3180 Dec 17 2024 fixup4cd.dat -rwxr-xr-x 1 root wheel 3180 Dec 17 2024 fixup_cd.dat -rwxr-xr-x 1 root wheel 16775144 Dec 17 2024 netbsd.img -rwxr-xr-x 1 root wheel 2979264 Dec 17 2024 start.elf -rwxr-xr-x 1 root wheel 2254944 Dec 17 2024 start4.elf -rwxr-xr-x 1 root wheel 808060 Dec 17 2024 start4cd.elf -rwxr-xr-x 1 root wheel 808060 Dec 17 2024 start_cd.elf rpi4# ls -l /boot/dtb/broadcom/ total 158 -r-xr-xr-x 1 root wheel 37735 Jul 12 04:03 bcm2711-rpi-4-b.dtb -r-xr-xr-x 1 root wheel 37679 Jul 12 04:03 bcm2711-rpi-400.dtb -r-xr-xr-x 1 root wheel 20741 Jul 12 04:03 bcm2837-rpi-3-a-plus.dtb -r-xr-xr-x 1 root wheel 21610 Jul 12 04:03 bcm2837-rpi-3-b-plus.dtb -r-xr-xr-x 1 root wheel 21142 Jul 12 04:03 bcm2837-rpi-3-b.dtb -r-xr-xr-x 1 root wheel 20465 Jul 12 04:03 bcm2837-rpi-cm3-io3.dtb And here's what I see in the zip archive bundle before unpacking: rpi4# unzip -l /tmp/RPi4_UEFI_Firmware_v1.42.zip Archive: /tmp/RPi4_UEFI_Firmware_v1.42.zip Length Date Time Name -------- ---- ---- ---- 3997696 05-25-25 02:21 RPI_EFI.fd 54264 05-25-25 02:21 bcm2711-rpi-4-b.dtb 54353 05-25-25 02:21 bcm2711-rpi-400.dtb 54873 05-25-25 02:21 bcm2711-rpi-cm4.dtb 243 05-25-25 02:14 config.txt 5454 05-25-25 02:21 fixup4.dat 2264064 05-25-25 02:21 start4.elf 0 05-25-25 02:21 overlays/ 2775 05-25-25 02:21 overlays/upstream-pi4.dtbo 1566 05-25-25 02:21 overlays/miniuart-bt.dtbo 4885 05-25-25 02:14 Readme.md 0 05-25-25 02:14 firmware/ 0 05-25-25 02:14 firmware/brcm/ 631467 05-25-25 02:14 firmware/brcm/brcmfmac43455-sdio.bin 7163 05-25-25 02:14 firmware/brcm/brcmfmac43455-sdio.clm_blob 2074 05-25-25 02:14 firmware/brcm/brcmfmac43455-sdio.Raspberry 2172 05-25-25 02:14 firmware/brcm/brcmfmac43455-sdio.txt 502 05-25-25 02:14 firmware/Readme.txt 9136 05-25-25 02:14 firmware/LICENCE.txt -------- ------- 7092687 19 files If I simply unpack the zip archive directly into /boot/, it will overwrite the config.txt which came with NetBSD img; and also end up with different copies of at least bcm2711-rpi-4-b.dtb in /boot/ as well as in /boot/dtb/broadcom/ . Should the existing /boot/ content be removed first? I.e. empty out the /boot/ directory which came with NetBSD img, and then unzip the new UEFI archive into it? The existing /boot/config.txt appears to have NetBSD specific settings in it, so I'm guessing those should be preserved in some fashion rather than entirely overwritten by the config.txt from UEFI zip archive, no? > Regardless, I recommend booting to the UEFI screen (via serial console > or HDMI) and configuring UEFI as desired (to remove the 3 GB RAM > limit, set boot order, verify the ACPI mapping to allow the wifi chip > to attach, etc) -- then have it boot NetBSD from whichever device > holds NetBSD. Doing it in two stages helps debugging later. I don't know how to "boot to the UEFI screen" yet, but perhaps this will become clearer after installing and booting the UEFI zip bundle? I'm happy to experiment here, since this rpi4 system isn't deployed yet, while I work out the installation and config procedures. > That's a quick start. I just did this recently, so if you get stuck > on anything feel free to give a holler. Thanks very much; even just the clarification about the NetBSD .img file contents being "generic" UEFI is helpful. It already explains some of the behavior I see so far. Cheers, sr. > > On Jul 14, 2025, at 8:26 AM, Steve Rikli <[email protected]> wrote: > > > > I've used NetBSD for a while, but this is my first time with ARM. My > > setup: > > > > - Raspberry pi4 model B, 8GB RAM, microSD sysdisk, serial HAT with db9 > > > > - connected serial console, plus HDMI monitor and USB keyboard,mouse > > > > - installed with dd image NetBSD-10-aarch64--generic.img.gz from > > https://nycdn.netbsd.org/pub/arm/ > > as I understand it, these images come with UEFI. > > > > During first boot I watched both serial and HDMI consoles. At poweron, > > the serial console quickly showed output, but while the HDMI monitor > > woke up right away, like it was getting a signal, no output ever > > appeared there. > > > > I was able to complete setup on serial console, and since that's how > > I run most of my servers this is good enough to get started. > > > > Is HDMI supposed to work at this point? > > > > I'm confident in the HDMI monitor and cables, and the rpi4's HDMI; they > > work with the original Raspbian OS, and I see rpi bootloader text output > > on the monitor when I remove the microSD and power on. > > > > From NetBSD, the 'drvctl -l wsdisplay0' rc.conf routine doesn't find a > > device, and 'dmesg' doesn't list anything that looks like "display"; I > > do see these lines: > > [ 1.000004] /soc/hdmi@7ef00700 at simplebus1 not configured > > [ 1.000004] /soc/hdmi@7ef05700 at simplebus1 not configured > > > > Presumably that's all related, but I don't know what to expect here. > > > > I've sysupgrade to the daily NetBSD from Jul 12 as a matter of course, > > but it didn't change HDMI behavior. > > > > Do I need to add to (or replace?) any UEFI files which came along with > > the NetBSD-10-aarch64--generic.img ? Also, is there a way to check > > the version of the UEFI file(s) there? > > > > Newer/different kernel required? Or load some additional module? > > > > Fwiw the full 8GB RAM appears available, I didn't have to do anything > > to enable it. > > > > I tried a few suggestions from rpi forums and wikis, e.g. hdmi_safe=1 > > in /boot/config.txt and similar things; no change. I don't know how > > much NetBSD makes use of some of those settings -- I'm guessing some > > functionality from NetBSD /boot.cfg is handled there for evbarm? > > > > I'm thinking of updating the rpi4 bootloader using the "Raspberry Pi > > Imager", the version this unit came with is dated 2022/01/25. > > > > I'm not roadblocked without HDMI, but it'd be nice to know what I'm > > missing here -- ideas and suggestions always welcome. > >