beaglebone-DMX
beaglebone-DMX copied to clipboard
make on beagleboard black; prussdrv_open failed
Ran linuxbuild for pasm, make in root directory. Was able to issue modprobe uio_pruss, but when I tried to run the dmx server output is as follows:
INFO: Starting dmx example. prussdrv_open open failed
Any idea as to what I've done wrong? Do I need to change the pin b/c of eMMC on the BBB?
Haven't got a bb black yet and will be a month or two until I get my first. Perhaps team up with joehohman (issue #1) to see if you can get it to work? On Jun 18, 2013 4:13 PM, "sjw1066" [email protected] wrote:
Ran linuxbuild for pasm, make in root directory. Was able to issue modprobe uio_pruss, but when I tried to run the dmx server output is as follows:
INFO: Starting dmx example. prussdrv_open open failed
Any idea as to what I've done wrong?
— Reply to this email directly or view it on GitHubhttps://github.com/boxysean/beaglebone-DMX/issues/2 .
I do not have a DMX light with me at the moment to fully test this but I was able to get past this issue on BeagleBone Black by following these instructions: http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/05/22/bbb--working-with-the-pru-icssprussv2 It was in the other issues thread: https://github.com/boxysean/beaglebone-DMX/issues/1#issuecomment-19725271
Specifically I just enabled PRUSS in the device tree per the instructions:
cd /boot cp am335x-boneblack.dtb am335x-boneblack.dtb_orig dtc -I dtb -O dts am335x-boneblack.dtb > am335x-boneblack.dts_orig
The change to the dts file: pruss@4a300000 { ... status = "disabled"; ... };
To: pruss@4a300000 { ... status = "okay"; ... };
After any modifications have been made (maybe copy the file first so that you have a backup), it can be converted back into binary form using:
dtc -I dts -O dtb am335x-boneblack.dts_pru > am335x-boneblack.dtb_pru cp am335x-boneblack.dtb_pru am335x-boneblack.dtb
Reboot, now no errors!
root@beaglebone:~/bbdmx/bin# ./dmx INFO: Starting dmx example. AM33XX INFO: Initializing example. INFO: Executing example. File ./dmx.bin open passed
Boxysean, I owe you a beer :)
Ok got home, took my BB white DMX cape, attached it to my BB Black instead and while the dmx server runs, my light is not receiving any DMX data. Need to troubleshoot some more...
on (http://github.jfet.org/BBKNotes2.html) try the code under "Getting the PRUSS working" this works for me, so the error "prussdrv_open open failed" disappear. but still no output on the given pin!!!
All examples worked on BeagleBone Black except DMX. DMX example compiled and run with no errors, but no output on pin 3, any idea why?
I am going to post in the other issues thread, as this specific error is resolved by enabling PRUSS in the device tree for kernel 3.8. As for not actually sending any DMX data on pin 3 that is a different issue.
thanks for the information!! I got the PRU working only by changing the am335x-boneblack.dtb file as mentioned!
I am still stuck where you are though. PRUSS working but I need to figure out how to change the DMX output from P8 pin 3 to another pin. I'll be working on it over the weekend but please if someone else has figured out how to move pins, share! :)
Ok moving pins was much simpler than I had imagined. Again, this was to work around a BeagleBone black dependency on P8 pin 3 for the emmc flash to work properly, something the original BeagleBone never had.
I took a fresh BeagleBone Black running Angstrom 3.8.13 out of the box, enabled PRUSS using the methods explained above in this thread.
Then in /src/dmx.c
Change the DMX_PIN define from (6) to (12). Also change LOCAL_export_pin(38) to (44) to change the gpio numbers correctly. Also change the unexport.
Now for both BeagleBone white and black it "just works" off header P8 pin 12 (instead of P8 pin 3 from the original design).
I will post a video of this working shortly...
Both issues can be closed as far as I am concerned.
BBB doing DMX on P8 pin 12: http://www.youtube.com/watch?v=zv1aAT-f78c
I will work on getting the README and dmx.c updated for others to use.
I got the same error ("prussdrv_open open failed"), I changed the .dts file as you said, but now I got the stupid error after running a simple example:
INFO: Starting PRU_memAccessPRUDataRam example. AM33XX INFO: Initializing example. INFO: Executing example. Segmentation fault Does anyone have any idea on where could it come from? Thank you.
Do you have anything else using PRUSS at the moment? I get a seg fault if say I run two instances of ./dmx
I actually don't know. How can I verify that?
Hey Jesse - I've got a brand new BBG. I'm stuck with the error 'prussdrv_open failed.' I know it's been a while since you've been active here, but would appreciate any advice. My .dts file is set to 'okay' as above, and it shows up in the cape manager slot 5.
Does your kernel otherwise support the PRUSS?
It ought to - it's a Beaglebone Green, Debian 2015-10-20. Only difference between it and -Black should be that the HDMI circuitry is removed.
On Tue, May 17, 2016 at 9:40 AM, Jesse [email protected] wrote:
Does your kernel otherwise support the PRUSS?
— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/boxysean/beaglebone-DMX/issues/2#issuecomment-219758929
I would get one of the standard PRU example working first to establish where the issue is? I doubt its HW related....