QtCreator: ptrace operation not permitted

Today I wanted to debug a Qt based application within QtCreator but failed. After a quick google I found the solution:

sudo echo 0 > /proc/sys/kernel/yama/ptrace_scope
Getagged mit: ,
Veröffentlicht unter Programming, Qt

The next steps for etnaviv

I did spend some time to find the cause for the rendering issues during running some egls2 demos. The fix is a simple one-liner and I would say that GC8xx and GC2000 are ‘equal’ now. That means general work on etnaviv can start now. Currently I am looking in different problem zones and where to start.

  1. Update mesa fork
  2. Start working on an improved compiler
  3. Start working on an kernel interface

I think that Rob will start soon on the kernel interface and the mesa update should be doable during some hours. So I think the next big and important step is to improve the compiler. What should I say… I have basic compiler understanding, did wrote a compiler and VM during my study… thats it. I have never written a single line of glsl and I do not completely understand the Vivante GPU. So a perfect starting point for doing some hacking :) The success rate will be quite low and I hope to not lose my motivation too soon.

Getagged mit: , ,
Veröffentlicht unter imx6, Linux, Programming

GitHub: How to download a change as patch

Sometimes I can be useful to download a changes contained in a Github pull request as a unified diff. It turns out to be very easy.  To view a commit as a diff/patch file, just add .diff or .patch to the end of the URL

For instance

Getagged mit: ,
Veröffentlicht unter Programming

Mesa meets GC2000

Here is the first result of running mesatest_gles on mesa&etna:

Following tests are showing good visual results compared to swrast:

  • Hello_Triangle/CH02_HelloTriangle
  • Simple_VertexShader/CH08_SimpleVertexShader
  • CubeVBO/cube_vbo
  • ParticleSystem/CH13_ParticleSystem
  • Viewports/viewports

All other are visual corrupted or segfault. So there is still some work done to get all demos
up and running.

Getagged mit: , ,
Veröffentlicht unter imx6, Linux, Programming

GC2000 support for etnaviv

Today I hit an important milestone for etnaviv – an open source user-space driver for the Vivante GCxxx series of embedded GPUs.
I finally got GC2000 support to a level that it seems to work. It took me some months to get there.
At the beginning it sounds easy to rebuild a ‘driver’ if you get readable command buffer dumps. I did start with working on a simple replay program to render a cube in the same was as the binary blob does it.
But what should I say… it is quite boring to do everything by hand and not taking advantage of libetnaviv
and the ‘driver’ at all. So I decided to go the hard way and try to fix/add all missing bits until it renders something.
The good thing is that I have now some knowledge about the structure of libetnaviv, the
dirver and mesa in general. It helps a lot if you know why stuff is done that way.

Also this is my first reverse engineering project I contributed to and even I have never done any graphics related stuff – okay I did
some OpenGL stuff during my studies.

I try to find some more time to help to create a fully open source graphics stack for Vivante GPUs.

If have not seen it yet: Here is a short video showing the current state of etnaviv on a iMX6q (Sabre Lite).
Video in Google+ post

Getagged mit: , , ,
Veröffentlicht unter imx6, Linux, Programming

Rebase Github fork

Today I needed to rebase my etnaviv fork to the current master of upstream. I need to say that
I never did this before but with git this is a breeze.

git remote add upstream https://github.com/laanwj/etna_viv.git
git fetch upstream
git rebase upstream/master
git push -f origin master

If you get a merge conflict during rebase, you only need to follow the instructions git gives you.

Getagged mit: , , ,
Veröffentlicht unter Programming

CMake: Post install scripts for debian

I am using cmake during my job to create Debian installation packages for different kind of software projects. Today I run into an issue. I needed to run some post installation steps. I know that this is quite easy possible within a deb file, but how to archive the same with cmake?

It turned out to be quite easy:


Where postinst is the script which gets executed after the deb got installed.

Getagged mit: , ,
Veröffentlicht unter Linux, Programming

Decrypt shell commands

You may know this situation: You have seen a shell command, looked in the man page but you are no really sure what it does?

It solution to this problem is quite easy: http://explainshell.com/


The best thing is that the source code is released under GPL and can be found at GitHub

Getagged mit: ,
Veröffentlicht unter Linux

Recreate ssh host keys in Debian

Sometimes it is needed to recreate the used ssh host keys and this can be done quite easy on a Debian based system.

root@arm:~# rm /etc/ssh/ssh_host_*
root@arm:~# dpkg-reconfigure openssh-server
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
Restarting OpenBSD Secure Shell server: sshd.
Getagged mit: , ,
Veröffentlicht unter Linux

Update KDE in Ubuntu

On my work linux machine I am using Ubuntu with KDE. As the new 4.11 was released I thought it would be a good idea to update my current KDE installation. As a long-term Gentoo user it needed some more steps.

sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt-get update
sudo apt-get dist-upgrade

I think it is really time to replace my Ubuntu installation with something different/better.

Getagged mit: ,
Veröffentlicht unter Linux