Is there any corruptible firmware in a Pi?

Mar 06, 2017 8 Replies

Lately a Raspberry Pi 2 running FreeBSD-current crashed hard during compilation. On restart, it tried to enter single-user mode, but then reported "out of memory" and became stuck in the "Enter full pathname of shell or RETURN for /bin/sh" loop. Power cycling was the only way out.



Thinking the kernel had become corrupted I tried a total of three others, two of which were known to work, and all reported "out of memory", despite the kernel reporting real memory = 989851648 (943 MB) avail memory = 953241600 (909 MB)



I'm starting to wonder if something is wrong with the Pi itself, or perhaps some firmware. It's hard to imagine software damaging hardware, but it does seem possible the crash might have scribbled on some on-board configuration flash if there is any (to the best of my knowledge there isn't).



Config.txt looks normal and all filesystems seem clean. U-boot behaves normally and the FreeBSD loader seems to work as it should. There are no error messages on the console until after the kernel boot.



Thanks for reading and any thoughts!



bob prohaska


Bob, perhaps you could try testing with a standard NOOBS OS installation. There is firmware, at least judging by some of the files and messages, and perhaps this might fix it. No guarantees, mind!

Cheers, David Web: http://www.satsignal.eu

shell

this means you tried different kernel on different SD cards or different ke rnels on the same sd card?

could be that the sd card is broken...

Bye Jack

I've had an SD card go out on a RaPi with simular type symptoms. Try a different SD card.

Doug McIntyre doug@themcintyres.us

As I understand it, the only firmware in the Pi SoC itself is a small boot ROM, enough to load bootcode.bin from the SD card (or USB storage/ethernet in the case of Pi3). All other code is thus replaced by changing your SD card.

There may be some firmware in the LAN9514 USB hub/ethernet, but it's likely ROM. There might be some other code memories scattered around the BCM283x SoC, but they'll be ROM also.

Theo

Maybe a hardware fault has developed and that is what caused the crash?

RoRo

AFAIK, the source for bootcode.bin is not available (to the general public and users). So while it technically isn't firmware, it is a proprietary binary blob that we users have no control over.

Exactly.

Torfinn Ingolfsen, Norway

Different kernels, same card. Since u-boot got far enough to start the FreeBSD loader, load the kernel and start it the odds of a bad card seemed rather small. The error appeared when starting a single user shell.

It has since developed there's a problem with the FreeBSD sources and the trouble is, at least provisionally, being blamed on that. I'll wait a bit longer before re-imaging it,

Thanks for reading!

bob prohaska

The shell is not in the kernel, but in userspace. So if that is damaged, different kernels will not make a difference

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required