User:Hef/raspbian sdk

From Pumping Station One
< User:Hef
Revision as of 12:28, 21 September 2015 by Hef (talk | contribs) (→‎everything else =)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

raspbian dependencies

sudo apt-get install -y libpulse-dev libopenal-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libasound2-dev libgeoclue-dev libbluetooth-dev libicu-dev libglib2.0-dev libffi-dev libxslt1-dev libjasper-dev libmng-dev libtiff4-dev

raspbian has a 0.3.x series libwebp, which is too old for qt 5.5. Get a newer one.

wget http://downloads.webmproject.org/releases/webp/libwebp-0.4.3.tar.gz
cd libwebp
tar -xvzf libwebp-0.4.3.tar.gz
cd libwebp-0.4.3/
./configure
make
sudo make install

Creating a sysroot

compiler

Get a linaro cross compiler. For linux, there are official ones available, for OS X, I used http://www.welzels.de/blog/en/arm-cross-compiling-with-mac-os-x/comment-page-1/

I needed to use the gcc 4.8 version for my compiled binaries to work on raspbian. GCC 4.9 worked fine on alarmpi.

everything else

In this case a sysroot is just a copy of the important files for compiling built for the target system. It's also easier to just include a superset of the import files by grabbing pretty much everything.

There are a couple ways to do this, but I just created a case sensitive OS X volume and did and rsyncd the rpi to that volume.

rsync -P -rt --ignore-errors --delete --copy-unsafe-links --links --exclude /home --exclude /tmp --exclude /proc --exclude /sys --exclude /srv --exclude /var/cache --exclude /dev --exclude /var/log --exclude /root --exclude /run --exclude /lost+found --exclude /var/tmp --exclude /var --exclude /usr/share --exclude /etc --exclude /usr/lib/ssl [email protected]:/ /Volumes/raspbian/

If you want a narrower approach, I suspect the important files are in

  • /usr/include
  • /usr/lib
  • /usr/local/include
  • /usr/local/lib
  • /lib
  • /opt/vc

Another common approach is to create an nfs server an the rpi2 and just mount nfs:/ from the rpi2 on the dev machine.

Build qt5.5 for the rpi2

./configure -v -nomake examples -nomake tests -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=/usr/local/linaro/arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot /Volumes/raspbian -prefix /usr/local/qt5.5-raspbian -confirm-license -opensource


build, takes 43 minutes, 32 seconds on my 8 core MBP.

make -j8
make install -j8


once make install is run, there will be a a /volumes/rasbpian/usr/local/qt5.5-raspbian folder. copy that back to the pi in the same location

First make a target location on the pi

sudo mkdir /usr/local/qt5.5-raspbian
chown pi:pi /usr/local/qt5.5-raspbian

Copy the files from the host machine to the pi.

rsync -auP /usr/local/qt5.5-raspbian [email protected]:/usr/local