Greetings,
I have been able to crash RT-kernel for PiZero2W i.e. raspberry_pi_zero2w_trixie_rt_64bit_251204.img.
From https://github.com/hzeller/rpi-rgb-led-matrix/tree/master/RT-kernel
I would like independent confirmation of this crash, and any ideas about how to fix this.
I was able to crash two, independent, PiZero2W setups.
I used two different boards, different power supplies, separate SD cards, unique hubs, etc…
I re-downloaded the .img file, and both copies were binary identical.
I also put raspberry_pi4_trixie_rt_64bit_251204.img on a Pi4, and it did NOT crash.
I am trying to refresh a rpi-rgb-led-matrix project from 2020, written in python.
The older project used either Pi2’s or Pi3s, I am now trying to use a PiZero2W instead.
This project needs to acquire display data via USB/serial.
The data is obtained via a microprocessor, typically over /dev/ttyACM0.
After detecting the crash, I spent a lot of time trying combinations of:
Running rpi-rgb-led-matrix
Exercising python3-serial
Etc…
to re-create this crash.
In the end, all I need to crash, are:
minicom (a serial program)
A suitable serial-providing device.
Transfer serial data.
Crashes typically occur within about 1 minute.
Below is simple python code for a Raspberry Pico, which sends output data when an input character is received.
Follow web directions to install this code on a Pico.
You will need a suitable USB hub for connecting both a Pico, and a Keyboard.
Internet access, via Wi-Fi or Ethernet/USB will be needed to install minicom.
After booting raspberry_pi_zero2w_trixie_rt_64bit_251204.img on a PiZero2W:
Connect a keyboard.
Run: sudo apt install minicom
Connect the programmed Pico to a USB port
Run: minicom -D /dev/ttyACM0
Press and HOLD (for keyboard repeat) various keys.
My observations:
While holding down a key: I sometimes see a couple of 1 second pauses.
Within about a minute, I then see a ~10 second freeze, followed by an OS reboot.
I’d appreciate confirmation, and some help with this, as this OS build is un-usable for me.
Thanks,
-Mike
# pico / micropython program to try and induce a (serial) crash in
# raspberry_pi_zero2w_trixie_rt_64bit_251204.img
import sys
import select
import machine
# Setup a polling object to monitor stdin
poll_obj = select.poll()
poll_obj.register(sys.stdin, select.POLLIN)
# Setup internal Led
led = machine.Pin(25, machine.Pin.OUT)
count = 1
while True:
# Check if there is receive data waiting.
# Parameter is how long (us) to wait, 0 for non-blocking.
poll_results = poll_obj.poll(0)
if poll_results:
# Read one character from the USB buffer
char = sys.stdin.read(1)
# Print a longer response
led.on()
print(f"{count:5d} Received: {char}, {hex(ord(char))}")
led.off()
count += 1