e-tipsmemo

ごった煮

Raspberry pi(Raspbian Jessie PIXEL)にQt5.7を入れる③

e-tipsmemo.hatenablog.com前回のこれを再度試していたら幾つかエラーが出たのでメモ

①SDカードをUbuntuにつなげると勝手に/media/$USER/{hogehoge}にマウントしてくれてしまって/mnt/rasp-pi-rootfsにマウントしてもRead onlyになってしまって

sudo ./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc

の実行に失敗する。

➜  opt audo umount /media/$USER/boot
➜  opt sudo umount /media/$USER/{数字の羅列}
➜  opt sudo mount -o loop,offset=70254592 /dev/sdb /mnt/rasp-pi-rootfs

とする

(sdbはRaspbienの入ったSDカードに置き換える)

 

②make 中に「qt undefined reference to `png_set_longjmp_fn」とでる

configureで-qt-libpngオプションを追加。

 

----おまけ-----

Ubuntu32bitだとQt5.7を含んだQtCreatorを用意してくれていないので

デスクトップ上で動作確認→Raspberry Pi(VNC)で動作確認とするときは

Qt5.7を自分でビルドしてインストールする。

cross_compileよりずっと楽

Qt for Linux/X11 - Building from Source | Qt 5.7

Raspberry pi(Raspbian Jessie PIXEL)にQt5.7を入れる ②

前の記事

e-tipsmemo.hatenablog.comの修正版

xcbのプラグインが必要な気がするのでそれを含めたQt5.7をインストールする。

 

準備として

ダウンロードしたRaspbianをマウントして

dhcpcd.conf を編集して固定IPアドレスにしておけば楽

Raspiを起動、sshでつなげて、sudo apt-get update && sudo apt-get upgradeしておく。

Raspi-config->Advance OptionsでVNCも有効にして、/boot/config.txtを編集してVNCの画面サイズを変更する。

e-tipsmemo.hatenablog.com

pi@raspberrypi:~ $ ls
Desktop    Downloads  Pictures  Templates  python_games
Documents  Music      Public    Videos
pi@raspberrypi:~ $ sudo raspi-config 
(省略)
pi@raspberrypi:~ $ sudo vi /boot/config.txt
(省略)
pi@raspberrypi:~ $ sudo apt-get update
(省略)
pi@raspberrypi:~ $ sudo apt-get upgrade
(省略)
pi@raspberrypi:~ $ sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev
(省略)

Raspiを停止して、SDをUbuntuでマウントする。

この時、/rasp-pi-rootfs/usr/include/などに

必要な物が揃っていないとqtbaseのConfigureで失敗する気がする。

qt5を./init-repository などしたあとに

./configureするオプションに-qt-xcb -no-pchを追加しておく

Configureチェックでxcb がyesになっていればあとは

e-tipsmemo と同じ。

 

Raspberry pi(Raspbian Jessie PIXEL)にQt5.7を入れる

UbuntuVM Playerなどに入れた

この時32bitのUbuntuを使うと面倒でない。

(64bitでもできる)

Raspberry Pi Beginners Guide - Qt Wiki

Raspbianのイメージをマウントするところまでは大体同じ

 

➜  opt pwd
/home/{USER}/opt
➜  opt wget https://www.dropbox.com/s/sl919ly0q79m1e6/gcc-4.7-linaro-rpi-gnueabihf.tbz
(or at http://de.sourceforge.jp/projects/sfnet_rfidmonitor/downloads/crosscompilation-resources/gcc-4.7-linaro-rpi-gnueabihf.tbz)
➜  opt tar -xf gcc-4.7-linaro-rpi-gnueabihf.tbz
(省略)
➜  opt git clone https://git.milosolutions.com/other/cross-compile-tools.git
(省略)
➜  opt git clone https://github.com/qt/qt5 -b 5.7
(省略)
➜  opt ls
cross-compile-tools           gcc-4.7-linaro-rpi-gnueabihf.tbz
gcc-4.7-linaro-rpi-gnueabihf  qt5
➜  opt 

という配置にしてに

 

➜  opt cd qt5              
➜  qt5 git:(5.7) ✗ ./init-repository 
(省略)
➜  qt5 git:(5.7) ✗ cd ..
➜  opt cd cross-compile-tools 
➜  cross-compile-tools git:(master) ✗ sudo ./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc

 

つぎのqtbaseのconfigureで必要なプラグインのためにオプションを追加(-qt-xcb)したい

 

  
➜  opt cd qt5              
➜  qtbase git:(5.7) ./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=/home/$USER/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -release -make libs -prefix /usr/local/qt5pi

-qt-xcbでxcbプラグインが有効になる。

前にやったときはxcbのプラグインは有効になり、Makefileとかqmakeが生成されたが

二回目に試してみたところDependenciesなものが足りないと言われ仕方なく-qt-xcb無しで行った。

 

configureのまとめのような物が出たらOK

 

➜  opt cd qt5              
➜  qtbase git:(5.7) .make -j 4 && sudo make install

などとすると /usr/local/qt5pi/bin/ にRaspi用のqmakeなどができる。

qtimageformats, qtsvg, qtjsbackend, qtscript, qtxmlpatterns, qtdeclarative, qtsensors, qt3d, qtgraphicaleffects, qtjsondb, qtlocation, qtdocgallery qtserialport, qtserialbus

あたりの順番でqt5の必要なパッケージのビルドをする。

(quickcontrolあたりはQtQuickを使うために必要そうなので入れた。)

   
➜  opt cd qt5 
➜  qt5 git:(5.7) ✗ cd qtimageformats 
➜  qtimageformats git:(5.7) ✗ git checkout 5.7 && /usr/local/qt5pi/bin/qmake . && make -j 4 && sudo make install

とすると

/mnt/rasp-pi-rootfs/usr/local/qt5pi/lib/

の中に***.soがインストールされていく。

この続きはQtのサイトと同じくsyncしてddでSDカードに書き込んで起動する。

Qt Designerの設定はここと同じ

kkayataka.hatenablog.com

修正版

e-tipsmemo.hatenablog.com

Raspbian Jessie PIXEL の標準VNC

RaspbianのJessie with PIXELになってから

VNCが標準で搭載されるようになった。(Raspi-config のAdvance Option)

が、機能ONにしてディスプレイを繋げないでRealVNCで接続すると画面サイズが656x416で使いにくいのでそれを大きくする。

xrandrが使える?ということも聞いたけどもだめだった

    sudo vi /boot/config.txt

として

#hdmi_mode=1

の下に

以下を追加する。

hdmi_ignore_edid=0xa5000080

hdmi_group=2

hdmi_mode=85

再起動すると大きな画面で見れる

 

Raspberry Pi • View topic - Setting up HDMI output when video output isn't what you want

このgroup=2のリストの番号をhdmi_mode=XXとすると良い解像度にできる。