Day 02 – This Pi is such a QT
Well, it looks like the image was alright, and the base QT configuration worked out. However, it is missing the other modules I need, which I had problems working out due to the changes of set up. Sure enough, the base was done right (though I had to deal with a LONG path to it), and the needed modules were missing. This will be the running theme for today.
So I decided to leave the working CentOS7 VM alone, since it was meant to run HiFi with ease, and it does its job well. No point complicating matters by cross compiling on it and junking it up. A new, fresh VM and quick install of CentOS7 later, I now have a bigger hard drive and plenty of room for experimentation. I copied the original Raspian Wheezy image over (thank you, Filezilla), and began downloading the entire Qt5 repository again; my favorite step (said no one ever).
This time, doing the steps from the lovely tutorial in the way it was originally presented, I began to notice how much easier it was to do things. For starters, the paths for the make install were easier to understand and follow, and this would become critical mid way of the instructions. It also made the paths for the Raspian image MUCH smaller and simpler to follow, as if I were doing the same process natively on the Pi (just without the long 48 hour compile time). This time, I also didn’t give the VM 3 of my 4 cores on my Intel i5, as before, that was a very dumb mistake (I have Second Life running in the background), which barely effected compile time.
One part the tutorial messed up on was regarding where qmake was. It was referring to a path that wasn’t there, but at the same time, it wasn’t really wrong. Some sleuthing around allowed me to understand what the tutorial was trying to say: run the qmake made and installed in the RPi’s image (/mnt/rasp-pi-rootfs/usr/local/qt5pi/bin/qmake). Again, due to the shorter paths, this made things easier to follow and correct.
At this point, I had to compile the modules. QtSVG was easy enough, but QtJsBackEnd was the only thorn I initially came across. Some research showed that even the newer script that does this entire process for me (in Ubuntu) doesn’t involve it, since it was no longer involved with releases. Fair enough. My problems began when I couldn’t find QtScript, which I knew was needed for the compiling process of HiFi. Some more research later showed that Qt’s repository doesn’t always give every module since they aren’t part of release, meaning I’d have to grab QtScript and all missing modules manually. This meant renaming the exiting module folders with .bk (for backup reasons) and git cloning the modules manually. It was interesting to see which modules weren’t initially included and which ones were, since in my opinion, it shows how much HiFi is willing to gamble with experimental modules and libraries.
All the while the long compiling processes went through, I continued to script stuff in Second Life while keeping an eye on the SSH console on my other monitor. I was half tempted to run the SSH session on my tablet but with gapps crashing and holding my entire device hostage seemingly every other week, I wasn’t about to let it interfere with this tedious enough process. Don’t get me wrong, I know that I most likely screwed something up with the tablet (a Nobis NB09, rooted as always), but with Google’s apps getting larger and larger, it just becomes much more of a pain to keep my older devices updated.
The only module that seemed to be not only missing, but the only one to cause me some grief was QtJSONDB. I tried to compile it but it ran into errors. I went ahead and installed it anyway, but I have a safe feeling it isn’t actually used. A quick glance at the Ubuntu instructions for compiling HiFi didn’t show that qtjsondb5-dev was listed, so I think it is save to assume it is okay to have it be missing. Webkit gave me an error, but I pretty much assumed it was already built since I did the normal build of qt5, which it stated was already included. I hoped for the best, closed the image, and went ahead.
One thing I intend to do tomorrow, success or not, is preset an image with at least the steps that are NOT dependent on Qt5, namely the compiling of CMAKE, GLM, FreeGLUT, and the other repositories. This will also mean I can just jump straight into an SSH session and stop having to worry about doing it every time with my spare tiny keyboard. My only concern lies in inflating the image file and making transfers take longer, but I’m sure there are tutorials out there on how to fix this.
I’m tired, Qt5 is at least easier to compile and I have the ability to just run “make install” now, so I should be safe for now. I’ll continue this on Day 03. The Pi takes forever unpacking 100+ repositories.