Port-arm archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [EXT] no HDMI on rpi4b NetBSD 10.1
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 mkrepro%mkrepro.NetBSD.org@localhost:/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 <sr%genyosha.net@localhost> 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.
> >
Home |
Main Index |
Thread Index |
Old Index