QT5.1.1 running on BeagleBoneBlack

I finally managed to get QT5.1.1 running on BBB. I could not get the cross compile to work so I resorted to compiling QT natively on the BBB.

My setup is as follows:

I followed this guide: http://tigraphics.blogspot.in/2013/11/4q-2013-linux-graphics-sdk-release.html

My BBB mounts the rootfs via NFS on my desktop using the folder targetNFS.

Kernel: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
Branch: ti-linux-3.12.y
Apply SGX-DT-node.patch
Not sure why Robert Nelson’s kernel doesn’t work. Will investigate further.

RootFS: omap-image-builder
debian-7.2-machinekit-armhf

Graphics SDK: Graphics_SDK_5_00_00_01_hardfp
Update Make.rules
Desktop #>make BUILD=release OMAPES=8.x PM_RUNTIME=1 all
Desktop #>sudo make BUILD=release OMAPES=8.x PM_RUNTIME=1 install

QT: git://gitorious.org/qt/qt5.git
Branch: v5.1.1
BBB #>./init-repository
BBB #>make
Takes about 40 hours to build
BBB #>make install
Takes about 2 hours to install

TI SGX patches: https://github.com/prabindh/qt-configs.git
Apply patches from qt5_1.0_Aug13, qt5_1_1_Sept13, ti_eglfs and webgl_5.1.1

BBB #>./configure –prefix /home//targetNFS/usr/local/qt5 –release –make libs –platform linux-arm-gnueabi-ti-g++ -opengl es2 -confirm–license –opensource –ice -no–xcb -no–pcb –make examples –verbose –I /home//targetNFS/usr/include/OGLES2 –L /home//targetNFS/lib/arm-linux-gnueabihf

BBB #>/etc/init.d/335x-demo
Reboot BBB

BBB #>modprobe pvrsrvkm
BBB #>modprobe omaplfb
BBB #>/etc/init.d/rc.pvr start
To run qt applications with –platform eglfs you need the following
BBB #>export QT_PLUGIN_PATH=/usr/local/qt5.1.1/plugins
To enable keyboard input do the following:
BBB #>sudo chmod +r /dev/input/event0
To enable mouse input, do the following:
BBB #>sudo chmod +r /dev/input/event1

Performance looks very good.

I hope this help.

Regards,
John

Yeah i was hacking on things last friday.. There's a couple drivers
missing from mainline.

https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx

Then i was playing around with building the module inside the kernel..
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx-blob

Didn't get very far before running into lots of missing stuff from the
davnci video driver..

Regards,

I finally managed to get QT5.1.1 running on BBB. I could not get the
cross
compile to work so I resorted to compiling QT natively on the BBB.

My setup is as follows:

I followed this guide:

http://tigraphics.blogspot.in/2013/11/4q-2013-linux-graphics-sdk-release.
html

My BBB mounts the rootfs via NFS on my desktop using the folder
targetNFS.

Kernel: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
Branch: ti-linux-3.12.y
Apply SGX-DT-node.patch
Not sure why Robert Nelson¹s kernel doesn¹t work. Will investigate
further.

Yeah i was hacking on things last friday.. There's a couple drivers
missing from mainline.

https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx

Then i was playing around with building the module inside the kernel..
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx-bl
ob

Didn't get very far before running into lots of missing stuff from the
davnci video driver..

Hi Robert,

It would be good to get this fixed, because I don¹t like working with the
TI kernel. The screen resolution defaults to 640x480-60 so it seems like
EDID is somehow broken. ³Enable firmware EDID² is enabled. BTW, where is
the EDID info retrieved/stored. I¹m trying to set the resolution with
fbset using the modes in fb.mode and nothing works except 640x480-60.

Regards,
John

Hi Robert,

It would be good to get this fixed, because I don¹t like working with the
TI kernel. The screen resolution defaults to 640x480-60 so it seems like
EDID is somehow broken. ³Enable firmware EDID² is enabled. BTW, where is
the EDID info retrieved/stored. I¹m trying to set the resolution with
fbset using the modes in fb.mode and nothing works except 640x480-60.

Hi John,

It's even worse then that.. It's built on top of the old (none kms)
CONFIG_FB_DA8XX video driver... Not the new fancy CONFIG_DRM_TILCDC
we've been using since 3.8, that has edid/etc working.. yuck..

So, here's the patches/hacks i used to get it to build:
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx

Regards,

Hi Robert,

It would be good to get this fixed, because I don¹t like working with
the
TI kernel. The screen resolution defaults to 640x480-60 so it seems like
EDID is somehow broken. ³Enable firmware EDID² is enabled. BTW, where is
the EDID info retrieved/stored. I¹m trying to set the resolution with
fbset using the modes in fb.mode and nothing works except 640x480-60.

Hi John,

It's even worse then that.. It's built on top of the old (none kms)
CONFIG_FB_DA8XX video driver... Not the new fancy CONFIG_DRM_TILCDC
we've been using since 3.8, that has edid/etc working.. yuck..

So, here's the patches/hacks i used to get it to build:
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx

Hi Robert,

Thank you so much for all your help.

Yeah, this is just crazy. I had no idea these kernels where so different.
Some of us have been trying to get SGX working on V3.8 because we need
Xenomai support and I just learned [1] that the only 3.8 kernel that works
with SGX is TI V3.8.y kernel or the Yocto [2] kernel (I going to patch and
build to confirm). Patching your 3.8.13-bone31 kernel doesn’t work. My
guess is I need these same patches in V3.8?

[1]

5
[2] GitHub - beagleboard/meta-beagleboard: Support for beagleboard.org devices

Regards,
John

Hi Robert,

It would be good to get this fixed, because I don¹t like working with
the
TI kernel. The screen resolution defaults to 640x480-60 so it seems like
EDID is somehow broken. ³Enable firmware EDID² is enabled. BTW, where is
the EDID info retrieved/stored. I¹m trying to set the resolution with
fbset using the modes in fb.mode and nothing works except 640x480-60.

Hi John,

It's even worse then that.. It's built on top of the old (none kms)
CONFIG_FB_DA8XX video driver... Not the new fancy CONFIG_DRM_TILCDC
we've been using since 3.8, that has edid/etc working.. yuck..

So, here's the patches/hacks i used to get it to build:
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx

Hi Robert,

Thank you so much for all your help.

Yeah, this is just crazy. I had no idea these kernels where so different.
Some of us have been trying to get SGX working on V3.8 because we need
Xenomai support and I just learned [1] that the only 3.8 kernel that works
with SGX is TI V3.8.y kernel or the Yocto [2] kernel (I going to patch and
build to confirm). Patching your 3.8.13-bone31 kernel doesn’t work. My
guess is I need these same patches in V3.8?

Really the Yocto 3.8 works too? it's 99% the same patch as my 3.8
tree, just a vastly different config..

[1]
DP83825I: RMII Slave default output timing - Interface forum - Interface - TI E2E support forums

yuck, that drm kbuild is a piece of work isn't it.. but i see
something i've missed..

Regards,

Bingo:

‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/bufferclass_ti.ko’
-> ‘./opt/sgx_modules/es8.0/bufferclass_ti.ko’
‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/drm.ko’
-> ‘./opt/sgx_modules/es8.0/drm.ko’
‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/pvrsrvkm.ko’
-> ‘./opt/sgx_modules/es8.0/pvrsrvkm.ko’

now just to 'refigure' out how to init this thing...

Regards,

Bingo:

‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/bufferclass_ti.ko’
-> ‘./opt/sgx_modules/es8.0/bufferclass_ti.ko’
‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/drm.ko’
-> ‘./opt/sgx_modules/es8.0/drm.ko’
‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/pvrsrvkm.ko’
-> ‘./opt/sgx_modules/es8.0/pvrsrvkm.ko’

now just to 'refigure' out how to init this thing...

Have you guys ran into this?

[ 17.907315] pvrsrvkm: Unknown symbol drm_pvr_dev_remove (err 0)
[ 17.907717] pvrsrvkm: Unknown symbol drm_pvr_dev_add (err 0)
[ 17.907882] pvrsrvkm: Unknown symbol gpsPVRLDMDev (err 0)

Regards,

Hi Robert,

It would be good to get this fixed, because I don¹t like working with
the
TI kernel. The screen resolution defaults to 640x480-60 so it seems
like
EDID is somehow broken. ³Enable firmware EDID² is enabled. BTW,
where is
the EDID info retrieved/stored. I¹m trying to set the resolution with
fbset using the modes in fb.mode and nothing works except 640x480-60.

Hi John,

It's even worse then that.. It's built on top of the old (none kms)
CONFIG_FB_DA8XX video driver... Not the new fancy CONFIG_DRM_TILCDC
we've been using since 3.8, that has edid/etc working.. yuck..

So, here's the patches/hacks i used to get it to build:
https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.12/patches/sgx

Hi Robert,

Thank you so much for all your help.

Yeah, this is just crazy. I had no idea these kernels where so
different.
Some of us have been trying to get SGX working on V3.8 because we need
Xenomai support and I just learned [1] that the only 3.8 kernel that
works
with SGX is TI V3.8.y kernel or the Yocto [2] kernel (I going to patch
and
build to confirm). Patching your 3.8.13-bone31 kernel doesn’t work. My
guess is I need these same patches in V3.8?

Really the Yocto 3.8 works too? it's 99% the same patch as my 3.8
tree, just a vastly different config..

[1]

DP83825I: RMII Slave default output timing - Interface forum - Interface - TI E2E support forums
037

yuck, that drm kbuild is a piece of work isn't it.. but i see
something i've missed..

Bingo:

‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/buffer
class_ti.ko’
-> ‘./opt/sgx_modules/es8.0/bufferclass_ti.ko’
‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/drm.k
o’
-> ‘./opt/sgx_modules/es8.0/drm.ko’
‘/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/pvrsrv
km.ko’
-> ‘./opt/sgx_modules/es8.0/pvrsrvkm.ko’

Fantastic. Robert, you are the greatest. Thank you again for getting this
done.

now just to 'refigure' out how to init this thing...

I’m not sure what you man by “init this thing”?

Are you talking about make install from the SDK or are you talking about
335x-demo script?

Regards,
John

Bingo:

Œ/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/buffe
rclass_ti.ko¹
-> Œ./opt/sgx_modules/es8.0/bufferclass_ti.ko¹

Œ/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/drm.k

-> Œ./opt/sgx_modules/es8.0/drm.ko¹

Œ/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/pvrsr
vkm.ko¹
-> Œ./opt/sgx_modules/es8.0/pvrsrvkm.ko¹

now just to 'refigure' out how to init this thing...

Have you guys ran into this?

[ 17.907315] pvrsrvkm: Unknown symbol drm_pvr_dev_remove (err 0)
[ 17.907717] pvrsrvkm: Unknown symbol drm_pvr_dev_add (err 0)
[ 17.907882] pvrsrvkm: Unknown symbol gpsPVRLDMDev (err 0)

I don¹t recall seeing this. When do you get this?

Regards,
John

Bingo:

Œ/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/buffe
rclass_ti.ko¹
-> Œ./opt/sgx_modules/es8.0/bufferclass_ti.ko¹

Œ/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/drm.k

-> Œ./opt/sgx_modules/es8.0/drm.ko¹

Œ/opt/github/linux-dev/ignore/ti-sdk-pvr/Graphics_SDK/gfx_rel_es8.x/pvrsr
vkm.ko¹
-> Œ./opt/sgx_modules/es8.0/pvrsrvkm.ko¹

now just to 'refigure' out how to init this thing...

Have you guys ran into this?

[ 17.907315] pvrsrvkm: Unknown symbol drm_pvr_dev_remove (err 0)
[ 17.907717] pvrsrvkm: Unknown symbol drm_pvr_dev_add (err 0)
[ 17.907882] pvrsrvkm: Unknown symbol gpsPVRLDMDev (err 0)

Hi Robert,

I see nothing like this in my boot logs or dmesg. In fact I don¹t see
anything pvr related either. I just run "/etc/init.d/rc.pvr start² after I
login. BTW, the pvrsrvkm.ko module is loaded after I login, but no logs
show this happening.

Regards,
John

now just to 'refigure' out how to init this thing...

Have you guys ran into this?

[ 17.907315] pvrsrvkm: Unknown symbol drm_pvr_dev_remove (err 0)
[ 17.907717] pvrsrvkm: Unknown symbol drm_pvr_dev_add (err 0)
[ 17.907882] pvrsrvkm: Unknown symbol gpsPVRLDMDev (err 0)

Hi Robert,

I see nothing like this in my boot logs or dmesg. In fact I don¹t see
anything pvr related either. I just run "/etc/init.d/rc.pvr start² after I
login. BTW, the pvrsrvkm.ko module is loaded after I login, but no logs
show this happening.

I think i found it..

-CONFIG_DRM=y
+CONFIG_DRM=m

Regards,

now just to 'refigure' out how to init this thing...

Have you guys ran into this?

[ 17.907315] pvrsrvkm: Unknown symbol drm_pvr_dev_remove (err 0)
[ 17.907717] pvrsrvkm: Unknown symbol drm_pvr_dev_add (err 0)
[ 17.907882] pvrsrvkm: Unknown symbol gpsPVRLDMDev (err 0)

Hi Robert,

I see nothing like this in my boot logs or dmesg. In fact I don¹t see
anything pvr related either. I just run "/etc/init.d/rc.pvr start²
after I
login. BTW, the pvrsrvkm.ko module is loaded after I login, but no logs
show this happening.

I think i found it..

-CONFIG_DRM=y
+CONFIG_DRM=m

Yep, obviously.

BTW, I was able to run your v3.8 kernel with NFS, but I’m trying to test
your V3.12 kernel and NFS doesn’t work. I removed initrd in the kernel
config, but this still does not work. The TI V3.12 kernel does work. Any
ideas? I’m using the same uEnv.txt file.

Regards,
John

yuck..
[ 5.412709] drm: Unknown symbol drm_vma_offset_manager_init (err 0)
[ 5.412746] drm: Unknown symbol drm_vma_node_is_allowed (err 0)
[ 5.413058] drm: Unknown symbol drm_vma_offset_add (err 0)
[ 5.413069] drm: Unknown symbol drm_vma_node_revoke (err 0)
[ 5.413211] drm: Unknown symbol drm_vma_offset_lookup (err 0)
[ 5.413389] drm: Unknown symbol drm_vma_node_allow (err 0)
[ 5.413447] drm: Unknown symbol drm_vma_offset_manager_destroy (err 0)
[ 5.413596] drm: Unknown symbol pcie_capability_read_dword (err 0)
[ 5.413718] drm: Unknown symbol drm_vma_offset_remove (err 0)
[ 15.131189] drm: Unknown symbol drm_vma_offset_manager_init (err 0)
[ 15.131228] drm: Unknown symbol drm_vma_node_is_allowed (err 0)
[ 15.131544] drm: Unknown symbol drm_vma_offset_add (err 0)
[ 15.131557] drm: Unknown symbol drm_vma_node_revoke (err 0)
[ 15.131707] drm: Unknown symbol drm_vma_offset_lookup (err 0)
[ 15.131894] drm: Unknown symbol drm_vma_node_allow (err 0)
[ 15.142887] drm: Unknown symbol drm_vma_offset_manager_destroy (err 0)
[ 15.143102] drm: Unknown symbol pcie_capability_read_dword (err 0)
[ 15.143246] drm: Unknown symbol drm_vma_offset_remove (err 0)
[ 17.189280] drm: Unknown symbol drm_vma_offset_manager_init (err 0)
[ 17.189324] drm: Unknown symbol drm_vma_node_is_allowed (err 0)
[ 17.189635] drm: Unknown symbol drm_vma_offset_add (err 0)
[ 17.189648] drm: Unknown symbol drm_vma_node_revoke (err 0)
[ 17.209754] drm: Unknown symbol drm_vma_offset_lookup (err 0)
[ 17.210900] drm: Unknown symbol drm_vma_node_allow (err 0)
[ 17.210980] drm: Unknown symbol drm_vma_offset_manager_destroy (err 0)
[ 17.211149] drm: Unknown symbol pcie_capability_read_dword (err 0)
[ 17.211287] drm: Unknown symbol drm_vma_offset_remove (err 0)

more digging into ti's 3.12 kernel..

Regards,

Humm, i haven't tried nfs on 3.12 yet, same config between ti's 3.12?
probally need to backport some ethernet/cpsw fixes..

Regards,

now just to 'refigure' out how to init this thing...

Have you guys ran into this?

[ 17.907315] pvrsrvkm: Unknown symbol drm_pvr_dev_remove (err 0)
[ 17.907717] pvrsrvkm: Unknown symbol drm_pvr_dev_add (err 0)
[ 17.907882] pvrsrvkm: Unknown symbol gpsPVRLDMDev (err 0)

Hi Robert,

I see nothing like this in my boot logs or dmesg. In fact I don¹t see
anything pvr related either. I just run "/etc/init.d/rc.pvr start²
after I
login. BTW, the pvrsrvkm.ko module is loaded after I login, but no logs
show this happening.

I think i found it..

-CONFIG_DRM=y
+CONFIG_DRM=m

Yep, obviously.

BTW, I was able to run your v3.8 kernel with NFS, but I’m trying to test
your V3.12 kernel and NFS doesn’t work. I removed initrd in the kernel
config, but this still does not work. The TI V3.12 kernel does work. Any
ideas? I’m using the same uEnv.txt file.

Found the problem. Needed to select CONFIG_ROOT_NFS=y

BTW, I was able to run your v3.8 kernel with NFS, but I’m trying to test
your V3.12 kernel and NFS doesn’t work. I removed initrd in the kernel
config, but this still does not work. The TI V3.12 kernel does work. Any
ideas? I’m using the same uEnv.txt file.

Found the problem. Needed to select CONFIG_ROOT_NFS=y

Thanks! just added that by default..

Regards,

now just to 'refigure' out how to init this thing...

Have you guys ran into this?

[ 17.907315] pvrsrvkm: Unknown symbol drm_pvr_dev_remove (err 0)
[ 17.907717] pvrsrvkm: Unknown symbol drm_pvr_dev_add (err 0)
[ 17.907882] pvrsrvkm: Unknown symbol gpsPVRLDMDev (err 0)

Hi Robert,

I see nothing like this in my boot logs or dmesg. In fact I don¹t see
anything pvr related either. I just run "/etc/init.d/rc.pvr start²
after I
login. BTW, the pvrsrvkm.ko module is loaded after I login, but no
logs
show this happening.

I think i found it..

-CONFIG_DRM=y
+CONFIG_DRM=m

Yep, obviously.

BTW, I was able to run your v3.8 kernel with NFS, but I’m trying to test
your V3.12 kernel and NFS doesn’t work. I removed initrd in the kernel
config, but this still does not work. The TI V3.12 kernel does work. Any
ideas? I’m using the same uEnv.txt file.

Humm, i haven't tried nfs on 3.12 yet, same config between ti's 3.12?
probally need to backport some ethernet/cpsw fixes..

Hi Robert,

Not necessary. Your V3.12 is booting via NFS. Just needed to enable
CONFIG_ROOT_NFS =y. I’m surprised that more developers don’t use NFS. I
can make all the file changes directly on my desktop and simply hit the
reset button and viola I’m up and running. No need to program SDCards.
Also, I have my targetNFS automated backup every hour so if I get into
trouble, I can got back to a previous version in seconds.

BTW, when the kernel is configured for Initrd, NFS doesn’t work, so I was
wondering why your kernel is configured to use Initrd. Is this really
necessary?

Regards,
John

Hi Robert,

Not necessary. Your V3.12 is booting via NFS. Just needed to enable
CONFIG_ROOT_NFS =y. I’m surprised that more developers don’t use NFS. I
can make all the file changes directly on my desktop and simply hit the
reset button and viola I’m up and running. No need to program SDCards.
Also, I have my targetNFS automated backup every hour so if I get into
trouble, I can got back to a previous version in seconds.

BTW, when the kernel is configured for Initrd, NFS doesn’t work, so I was
wondering why your kernel is configured to use Initrd. Is this really
necessary?

We need it to support the Netinstall.

The debian-installer is contained within in a custom initrd, that we
run at startup, which is then used to create the rest of the root
disk..

Regards,

Hi Robert,

Not necessary. Your V3.12 is booting via NFS. Just needed to enable
CONFIG_ROOT_NFS =y. I¹m surprised that more developers don¹t use NFS. I
can make all the file changes directly on my desktop and simply hit the
reset button and viola I¹m up and running. No need to program SDCards.
Also, I have my targetNFS automated backup every hour so if I get into
trouble, I can got back to a previous version in seconds.

BTW, when the kernel is configured for Initrd, NFS doesn¹t work, so I
was
wondering why your kernel is configured to use Initrd. Is this really
necessary?

We need it to support the Netinstall.
GitHub - RobertCNelson/netinstall: Network Install for a bunch of arm boards

The debian-installer is contained within in a custom initrd, that we
run at startup, which is then used to create the rest of the root
disk..

Good to know.

BTW, good news is SGX is working on your kernel. I can run the 3D demos
under /opt/gfxsdkdemos/ogles2.

I¹m using 3.12.5-bone.4

Thank you again for all your help.

Regards,
John