Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PRU initialization on current build of Debian Jessy, kernel 4.1 #43

Open
Serisium opened this issue Apr 22, 2016 · 10 comments
Open

PRU initialization on current build of Debian Jessy, kernel 4.1 #43

Serisium opened this issue Apr 22, 2016 · 10 comments

Comments

@Serisium
Copy link

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
@bigjosh
Copy link

bigjosh commented Sep 4, 2016

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.

@Yona-Appletree
Copy link
Owner

@bigjosh I'll try to find time to address this. Do you know if this image of Debian is shipping with current BBBs?

@Yona-Appletree
Copy link
Owner

@bigjosh Please feel free to contact me at [email protected] to discuss the issue more, and potentially to sponsor this work.

@bigjosh
Copy link

bigjosh commented Sep 12, 2016

@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.

@bigjosh
Copy link

bigjosh commented Sep 12, 2016

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.

@steely-glint
Copy link

steely-glint commented Oct 29, 2016

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.)

@mykolasmith
Copy link

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).

@Serisium
Copy link
Author

@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.

@mykolasmith
Copy link

@ggreenwood Thanks for the quick response. I'll try that =)

@steely-glint
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants