Difference between revisions of "User:Hef/raspbian sdk"

From Pumping Station One
Jump to navigation Jump to search
(opening with commands)
 
 
(8 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
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
 
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
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
raspbian has a 0.3.x series libwebp, which is too old for qt 5.5.  Get a newer one.
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 12: Line 14:
 
./configure
 
./configure
 
make
 
make
 +
sudo make install
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Creating a sysroot ===
+
== 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.
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
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/
 
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/
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
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 ==
 +
 +
<syntaxhighlight lang="bash">
 +
./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
 +
</syntaxhighlight>
 +
  
 
build, takes  43 minutes, 32 seconds on my 8 core MBP.
 
build, takes  43 minutes, 32 seconds on my 8 core MBP.
Line 24: Line 57:
 
make -j8
 
make -j8
 
make install -j8
 
make install -j8
 +
</syntaxhighlight>
 +
 +
 +
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
 +
<syntaxhighlight lang="bash">
 +
sudo mkdir /usr/local/qt5.5-raspbian
 +
chown pi:pi /usr/local/qt5.5-raspbian
 +
</syntaxhighlight>
 +
 +
Copy the files from the host machine to the pi.
 +
<syntaxhighlight lang="bash">
 +
rsync -auP /usr/local/qt5.5-raspbian [email protected]:/usr/local
 
</syntaxhighlight>
 
</syntaxhighlight>

Latest revision as of 12:28, 21 September 2015

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