5

I don't know much about the workings of operating systems besides CPU architecture.

I have a Raspberry Pi 3 B+, which apparently has an ARM64 architecture (the wiki page for Raspberry Pi says ARMv8-A 64/32 instruction set)

I have tried using a Debian ISO, version 10.4.0, ARM64 (put on an SD card with rufus), but I don't see anything on screen. (it was working with the default OS previously, so the issue is not the pi)

So, if I have any arm64 OS, should it work on the Raspberry Pi? If not, why? (is it because of drivers?)

1
  • Normally, that should work, yes. It is possbile that you need to configure the boot partition correctly, though. There should be lots of documentation about getting that to work by using your favorite search engine.
    – PMF
    Jun 17, 2020 at 10:02

1 Answer 1

4

There is a special issue with Raspberry Pis (except RPi 4B) because they boot from their GPU. On Debian wiki - RaspberryPi you will find:

All Raspberry Pi models before the 4 (1A, 1B, 1A+, 1B+, Zero, Zero W, 2, 3) boot from their GPU (not from the CPU!), so they require a non-free binary blob to boot.

So any arm64 OS that shall boot on your RPi 3B+ must at least provide this non-free binary blob. If it isn't available there, you can try to use the debian package raspi3-firmware if it fit to the custom OS.

You can also find some more hints on that Debian wiki what may needed. Of course that's for Debian but they explain what's the problem so you can check this conditions for your custom OS.

4
  • 1
    If the ARM64 OS is not intended for Raspberry Pi, someone must supply device table files (/boot/*.dtb and /boot/overlay/*.dtbo). These files are model-specific and describe the details of the RPi hardware. PCs have a BIOS that provides a booting OS (e.g. Windows, Linux) with binary tables describing the hardware the BIOS discovered and initialized. Computers without a BIOS use Device Table files to tell Linux details of the hardware. Without this Linux should start booting, but is there an SD card? How is it connected? Where are its memory-mapped hardware registers? Jun 19, 2020 at 20:20
  • @ChadFarmer Thanks for the interesting addition. Is it possible that it is contained in the needed raspi3-firmware?
    – Ingo
    Jun 19, 2020 at 21:43
  • On my Raspbian 10 (Buster) running on RPi4, there is no raspi3-firmware package. But there are no raspi4 packages, either. Device table files under /boot are included in the package raspberrypi-kernel. Different distributions (this question's "any arm64 OS") package things in different ways. Jun 22, 2020 at 18:50
  • Note: before device tables, hardware details for every device had to be added to the kernel's arch/arm structure and compiled into a device-specific kernel binary. The resulting binary would only boot on the target device. With device tables, one ARM kernel binary can support many different ARM SoC devices. Of course hardware components in the device must be supported by the kernel, but device tables describe which components are present and the details required to access them. Device tables also support many components that can be connected to RPi pins. Jun 22, 2020 at 19:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.