LEDscape
LEDscape copied to clipboard
PRU initialization on current build of Debian Jessy, kernel 4.1
The latest installation docs don't work for new installations of Debian Jessy(tested with the 2016-01-24 image). Not only is the dtbs location different(which the docs do cover), but TI introduced a new version of the 4.1 kernel(see this) which changes the API for accessing the PRUSS. This causes the modprobe uio_pruss
step to fail.
The solution is to execute the following before copying the modified am335x-boneblack.dtb
file:
cd /opt/scripts/tools
./update_kernel.sh --bone-rt-kernel --lts-4_1
reboot
However, from this point on, I receive segmentation faults when running LEDscape.
root@ledscape:~/LEDscape# ./run-ledscape
tokens: 381: {
"outputMode": "ws281x",
"outputMapping": "rgb-123-v2",
"demoMode": "power",
"ledsPerStrip": 30,
"usedStripCount": 23,
"colorChannelOrder": "BRG",
"opcTcpPort": 7890,
"opcUdpPort": 7890,
"enableInterpolation": true,
"enableDithering": true,
"enableLookupTable": true,
"lumCurvePower": 2.0000,
"whitePoint": {
"red": 0.9000,
"green": 1.0000,
"blue": 1.0000
}
}
Loaded config file from ws281x-config.json.
Config file written to ws281x-config.json
[main] Starting server on ports (tcp=7890, udp=7890) for 30 pixels on 48 strips
[main] Demo Mode Enabled
Starting demo data thread
[e131] Starting UDP server on port 5568
[udp] Starting UDP server on port 7890
Segmentation fault
I'd be happy to sponsor work to either document a workaround with current code base, or move the code to the new remoteproc driver if anyone is interested.
@bigjosh I'll try to find time to address this. Do you know if this image of Debian is shipping with current BBBs?
@bigjosh Please feel free to contact me at [email protected] to discuss the issue more, and potentially to sponsor this work.
@Yona-Appletree Good question- I always re-image boards as soon as they come in, but my guess is that no one is shipping with the new kernel because we'd be seeing more people asking about the problems.
BTW, don't waste too much time looking at the remoteproc
stuff if you aren't familiar with it yet. I've already fallen back to the old kernel because of other unrelated problems on the new distributions so this work could likely be postponed for a while without bothering anyone.
Did you find a work around for the segfaults ? I am using bone-debian-8.4-iot-armhf-2016-05-13-4gb.img and the bone kernel as described above. (I need the newer kernel because it supports tethering from a cheap android phone on the USB port). I'd be happy to help debug if I'm given hints.....
(Edit - it looks like a problem in multicast in the e131 server here's gdb.... Starting program: /project2/github/Yona-Appletree/LEDscape/opc-server [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1". [main] Starting server on ports (tcp=7890, udp=7890) for 176 pixels on 48 strips [New Thread 0xb6e40460 (LWP 1027)] [render] Starting render thread for 8448 total pixels [render] Awaiting server initialization... [New Thread 0xb6640460 (LWP 1028)] [udp] Starting UDP server on port 7890 [New Thread 0xb5e40460 (LWP 1029)] [tcp] Starting TCP server on 7890 [New Thread 0xb5640460 (LWP 1030)] [main] Demo Mode Enabled [e131] Starting UDP server on port 5568
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb5640460 (LWP 1030)] 0x00014778 in join_multicast_group_on_all_ifaces () (gdb) where #0 0x00014778 in join_multicast_group_on_all_ifaces () #1 0x000148be in e131_server_thread () #2 0xb6fabf88 in start_thread () from /lib/arm-linux-gnueabihf/libpthread.so.0 #3 0xb6ed71fc in ?? () from /lib/arm-linux-gnueabihf/libc.so.6 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
If I comment out starting that thread it seems to work ok.)
Can someone point me in the direction of a Debian distro that does work? I am also getting Segmentation fault
when trying to run LEDscape on the latest official image(s).
@mykolasmith I believe that I got it working by going back one Debian release. Try the "Debian 7.11 2015-06-15 4GB SD LXDE" release here.
@GGreenwood Thanks for the quick response. I'll try that =)
Here are my build notes on using the latest distro: https://github.com/steely-glint/starway/blob/novparkreno/bbbuildnotes.txt It takes a bit of a dance - but it seems pretty stable - that's been running for a couple of weeks driving starway