Is the Compute Module 5 supported? Currently playing around with a CM5 and IO Board. Tried a new project with MIX_TARGET=rpi5 mix firmware.burn. In the end I cannot connect to the rpi. No HDMI output no nothing. All I can see is that the red power led turns on on power connect, then turns off and the green status led is lit. After some time this cycle keeps repeating.
Feels like some boot loop is going on. Leading to the next problem.
I cannot get the uart debug enabled. For a regular rpi OS, running on CM5, I can enable it by adding this to config.txt. By that I can use GPIO14/15 to connect to the debug uart.
dtparam=uart0
dtparam=uart0_console
No matter what I try for the Nerves firmware, not output is available.
You could build nerves_system_rpi5main. You’ll need to comment out or delete the other nerves_system_* dependencies in the mix.exs to avoid a version conflict on another library.
An easier option to try is to mount the MicroSD card in your computer. You should see a bunch of .dtb files. Download bcm2712-rpi-cm5*.dtb from GitHub - raspberrypi/rpi-firmware: Firmware files for the Raspberry Pi and copy them to that directory. I can tell already that they added more .dtb files than what I saw last November when I first looked, so that commit that I pointed you to above may be incomplete.
As a side note, the fact that you’re not seeing any output on the UART is normal when the device tree files aren’t there. If you connect the HDMI output, you should see more signs of life.
Let me know how this works! If it starts looking good, I’ll just make a release with the updates so it will just work for the next person. But hopefully I’ll be able to try out a CM5 soon too!
Ok. I was not aware that it is that new., or rare? Just thought, why not. Let’s give it a try.
Not sure if I get everything you wrote, but I get the idea. Let me tinker a bit with that and hopefully I get something working, before the regular live (day ob) takes over again.
If you connect the HDMI output, you should see more signs of life.
I hope this will be the case applying your hints from above. At least for now, its quite silent.
Pardon me, as I might have to ask some very basic questions, as I never dealt with these things on that level.
An easier option to try is to mount the MicroSD card in your computer. You should see a bunch of .dtb files
I suppose the card in question is the one I burned the nerves firmware to. In my case, it would be the internal eMMC of the CM5, accessed via usbboot.
But there I can only see a single *.dtb file, not “a bunch” as mentioned above.
inode Permissions Links Size Blocksize User Group Date Modified Name
36300 drwx------ 1 - - dw staff 5 Jan 12:47 î—ż .fseventsd
36024 .rwx------ 1 78Ki 79Ki dw staff 1 Jan 1980 ď…› bcm2712-rpi-5-b.dtb
5898 .rwx------ 1 486 512 dw staff 1 Jan 1980 ď…ś cmdline.txt
5894 .rwx------ 1 1.8Ki 2.0Ki dw staff 1 Jan 1980 ď…ś config.txt
4 .rwx------ 1 8.3Ki 8.5Ki dw staff 1 Jan 1980 ď…› fixup4.dat
5899 .rwx------ 1 15Mi 15Mi dw staff 1 Jan 1980  kernel8.img
3 drwx------ 1 - - dw staff 1 Jan 1980 î—ż overlays
21 .rwx------ 1 2.9Mi 2.9Mi dw staff 1 Jan 1980  start4.elf
Nonetheless, just copying the mentioned bcm2712-rpi-cm5*.dtb files to that eMMC location and boot with these files does not change anything. No output anywhere. Feeling a bit dumb right now, but someone has to start somewhere.
Hmm… This is going to be tough to debug remotely. It looks like I’ll have access to a CM5 in about a week or so. We’ll get this working.
If you want to push onward, the only files that Nerves customizes in that filesystem are config.txt, cmdline.txt, and kernel8.img. When I’m desperate, I just copy over files from Raspberry Pi OS until something happens. If that doesn’t work, I take the original Raspberry Pi OS image and copy files from Nerves until it breaks.
Here’s what I’m going to do once I get access to it:
Update the Linux kernel to the latest from the Raspberry Pi organization. I don’t think this is the issue, but there’s a really cool PIO driver in the latest kernel that I really want to try anyway and no point testing with older code for a relatively new module.
Pull in the other CM5 device tree files. You copied them over manually, so this shouldn’t be the issue, but still needs to be done.
Compare the Nerves config.txt and the Raspberry Pi OS config.txt to see if something stands out.
After that, I’ll try the desperation options above and review the latest docs until I get a hint.
I’ve had a really good experience with all Raspberry Pis, so I have no doubt we’ll get there.
Pulled that updated nerves system and will try compiling and see how it does. I ran into the exact same thing with my FTDI cable not giving me a serial to know why it power-cycled on the IO board.
Built that updated system and it still just power-cycles. Nothing over serial, not getting a /dev/ttyUSB0 to connect something to. Maybe I just killed my serial cable
When running the flashing process via usbboot:
sudo ./rpiboot -d mass-storage-gadget64
Then I do get a persistent HDMI as it starts that gadget OS. I also get HDMI flickering on an displaying black before it restarts with the Nerves system. So not nothing.
I still don’t have a CM5, but I did update nerves_system_rpi5 with Linux 6.6.64 and the new device tree files. If it’s convenient for anyone to test the main branch, I’d be curious if that helped.