set_ has joined #beagle
konsgn_ has joined #beagle
konsgn__ has joined #beagle
konsgn_ has quit [Ping timeout: 252 seconds]
thinkfat has joined #beagle
thinkfat_ has quit [Ping timeout: 252 seconds]
starblue1 has quit [Ping timeout: 246 seconds]
starblue1 has joined #beagle
<zmatt> Guest15: dunno, but kmscube's logic to find displays is completely different from that of qt5 so investigating one is not particularly useful to find out how to get the other working
<zmatt> Guest15: but the qt5 problem isn't related to drm device numbering anyway since it never opened any
<zmatt> Guest15: and -a doesn't affect selection of a drm device, it affects which monitor(s) to use on that drm device
<zmatt> (for kmscube)
<zmatt> Guest15: here's an example of how to list drm devices that support modesetting (kms): https://pastebin.com/PVnPQRTP
<zmatt> example output on my bbx15: https://pastebin.com/raw/g3qtZSUK
<Guest15> In the end it was necessary to tell Qt which device to use. Just like kmscube. Well via diferent mechanism.
<zmatt> ok, annoying
<zmatt> like, it really isn't that hard to scan for it, as my code shows
<zmatt> if you do manually specify a path, be sure to use the symlink in /dev/dri/by-path/ since that should hopefully be stable, avoid hardcoding a /dev/dri/card* path since those are arbitrary and may vary depending on kernel version, dt, lunar phase, etc
buzzmarshall has quit [Quit: Konversation terminated!]
<Guest15> yup, using the by-path. There was also another problem that prevented it working. I'd like to put a working 'recipe' together since the one for the 1.14 drivers doesn't even remotely apply.
<zmatt> sounds good!
charlie5 has joined #beagle
Guest15 has quit [Quit: Client closed]
vd has quit [Quit: Ping timeout (120 seconds)]
vd has joined #beagle
konsgn__ has quit [Remote host closed the connection]
Guest15 has joined #beagle
<Guest15> One of the things I had to do was
<Guest15> export QT_QPA_EGLFS_INTEGRATION=egl_kms
<Guest15> export QT_QPA_EGLFS_KMS_CONFIG=/root/test.cfg
<Guest15> in that config I specify the device: "device": "/dev/dri/by-path/platform-omapdrm.0-card",
<Guest15> but I get this error: qt.qpa.egldeviceintegration: Failed to load EGL device integration "egl_kms"
<Guest15> and yet everything appears to work.
<Guest15> export QT_QPA_EGLFS_ALWAYS_SET_MODE=1
<Guest15> was required to actually make everything work.
<Guest15> apparently it should be in /etc/default/qt or something
nslu2-log_ has joined #beagle
denix0 has joined #beagle
shodan45_ has joined #beagle
flatwhatson has quit [*.net *.split]
nslu2-log has quit [*.net *.split]
shodan45 has quit [*.net *.split]
noahm has quit [*.net *.split]
denix has quit [*.net *.split]
denix0 is now known as denix
nslu2-log_ is now known as nslu2-log
flatwhatson has joined #beagle
noahm has joined #beagle
giort has joined #beagle
giort has quit [Quit: giort]
noahm_ has joined #beagle
noahm has quit [Ping timeout: 252 seconds]
vd81 has joined #beagle
vd has quit [Ping timeout: 256 seconds]
<Guest15> Also, I modified the dts file to disable the bb2d device. That allowed platform-omapdrm.0-card -> ../card0. This allows kmscube to work without any arguments, but the img-pvr-demos still don't work.
rob_w has joined #beagle
troth1 has joined #beagle
rob_w_ has joined #beagle
RossSchulman[m]1 has joined #beagle
troth has quit [Ping timeout: 252 seconds]
rob_w has quit [Ping timeout: 252 seconds]
RossSchulman[m] has quit [Ping timeout: 252 seconds]
bldr_ has quit [Ping timeout: 252 seconds]
bldr has joined #beagle
insurgent_ has joined #beagle
insurgent has quit [Read error: Connection reset by peer]
<Guest15> zmatt: strace of running OGLES2Water here: https://pastebin.com/Kw6bgYFt
<Guest15> I don't see anything wrong, but it's not even trying to open /dev/dri/card0.
shoragan[m]1 has joined #beagle
shoragan[m] has quit [Ping timeout: 250 seconds]
vd81 has quit [Ping timeout: 256 seconds]
j0rd has quit [Ping timeout: 250 seconds]
j0rd has joined #beagle
otisolsen70 has joined #beagle
robert___ is now known as Duality
florian has joined #beagle
vitorio has quit [Ping timeout: 252 seconds]
renrelkha has quit [Ping timeout: 252 seconds]
waldo323__ has joined #beagle
vitorio has joined #beagle
waldo323_ has quit [Read error: Connection reset by peer]
renrelkha has joined #beagle
j0rd has quit [Ping timeout: 252 seconds]
j0rd has joined #beagle
Shadyman has quit [Quit: Leaving.]
florian has quit [Ping timeout: 252 seconds]
florian has joined #beagle
renrelkha_ has joined #beagle
renrelkha has quit [Ping timeout: 252 seconds]
otisolsen70_ has joined #beagle
waldo323_ has joined #beagle
waldo323__ has quit [Read error: Connection reset by peer]
vitorio has quit [Ping timeout: 252 seconds]
vitorio has joined #beagle
otisolsen70 has quit [Ping timeout: 252 seconds]
Guest15 has quit [Quit: Client closed]
otisolsen70_ has quit [Quit: Leaving]
lucascastro has quit [Ping timeout: 264 seconds]
rob_w_ has quit [Remote host closed the connection]
giort has joined #beagle
giort has quit [Quit: giort]
lucascastro has joined #beagle
giort has joined #beagle
<giort> hey everyone. Im trying to get started with the BBB PRU development. Is it correct, that the PRU can only be programmed in assembly and using the CCStudio from TI?
<zmatt> no and no
<zmatt> there are several ways
<giort> Okay, can u point me to resources about programming the PRU using C?
<zmatt> including two different kernel drivers
<zmatt> the original way to program pru was using the "pasm" assembler
<zmatt> the pru instruction set was designed for assembly programming by humans since that's the only way to fully take advantage of pru's deterministic timing (e.g. to create custom external hardware interfaces using gpio in software)
<zmatt> and pasm has some nice features atypical of assembly, like structs
<giort> So the pasm is the *recommended* way?
<zmatt> later TI also created a C/C++ compiler toolchain for pru
<zmatt> which also has its own assembler, which is however not quite compatible with pru and less human-friendly
<zmatt> *not quite compatible with pasm
<zmatt> the code quality of the C/C++ compiler is also not that great, partly because the pru instruction set was never designed to be targeted by a C compiler (e.g. it has no signed integer comparison), partly because the compiler is just not very smart
lucascastro has quit [Ping timeout: 252 seconds]
<zmatt> but still, not every application needs cycle-accurate timing, and many people find it easier to use
<zmatt> you don't need ccstudio to use the toolchain, the compiler is available as separate download and is preinstalled on the beaglebone if you're running a not-too-ancient image
<giort> what is the command for the compiler on the BB? I have the newest image.
<zmatt> like I mentioned there are two kernel drivers: the older uio-pruss gives userspace direct access to the PRU subsystem and has it handle everything. for code loading there's an old crusty C library (libprussdrv) which only supports raw binaries produced by pasm and my py-uio python library ( https://github.com/mvduin/py-uio ) which supports both raw pasm binaries as well as ELF executables produced by ...
<zmatt> ...clpru (the compiler toolchain)
<zmatt> the newer remoteproc-pru has the kernel perform code loading, which only supports ELF executables (no pasm binaries) and gives userspace extremely limited access. this is now the "official" way to use pru but functionally it is much more limited than uio-pruss. the "preferred" way for userspace to interact with PRU when using remoteproc-pru is rpmsg, which is a bloated overcomplicated messaging ...
<zmatt> ...protocol that's terrible for performance (and destroys any hope of determinism), causing people to use ugly workarounds like directly poking pru subsystem memory via /dev/mem, at which point it would have been saner to stick with uio-pruss which allows one to do so a bit more safely (and without requiring root privileges)
<zmatt> oh and the command is clpru, its invocation is not similar to gcc
<zmatt> my py-uio project (which, as the name implies, only supports the uio driver and not remoteproc) includes two examples in C compiled with clpru: https://github.com/mvduin/py-uio/tree/master/pru-examples/fw-c
<zmatt> (switching the driver can be done via the uboot_overlay_pru variable in /boot/uEnv.txt )
<zmatt> so overall your choices are: pasm + libprussdrv, pasm + py-uio, clpru + py-uio, clpru + remoteproc
<giort> okay, thanks for all the info!
<zmatt> I hope this info dump helps to get you started, I'll be around later if you have more questions, but I need to go now for a bit
argonautx has joined #beagle
rcn-ee has joined #beagle
giort has quit [Ping timeout: 252 seconds]
buzzmarshall has joined #beagle
otisolsen70 has joined #beagle
rcn-ee has quit [Remote host closed the connection]
rcn-ee has joined #beagle
lucascastro has joined #beagle
lucascastro has quit [Ping timeout: 252 seconds]
giort has joined #beagle
vd has joined #beagle
Guest15 has joined #beagle
vd has quit [Ping timeout: 256 seconds]
vd has joined #beagle
giort has quit [Quit: giort]
Guest15 has quit [Quit: Client closed]
vd has quit [Quit: Client closed]
vd has joined #beagle
giort has joined #beagle
florian has quit [Quit: Ex-Chat]
Guest15 has joined #beagle
giort has quit [Read error: Connection reset by peer]
giort has joined #beagle
giort has quit [Ping timeout: 252 seconds]
noahm_ is now known as noahm
vagrantc has joined #beagle
shodan45_ has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
shodan45 has joined #beagle
argonautx_ has joined #beagle
argonautx has quit [Ping timeout: 252 seconds]
CrazyEddy has quit [Ping timeout: 245 seconds]
set_ has quit [Ping timeout: 250 seconds]
<kveremitz> zmatt: you should publish a FAQ :P
otisolsen70 has quit [Quit: Leaving]
giort has joined #beagle
argonautx_ has quit [Quit: Leaving]
giort has quit [Quit: giort]
set_ has joined #beagle
Shadyman has joined #beagle