*

Rasbianの新しいバージョンが出たので、クロス環境を更新してみた。

公開日: : 最終更新日:2019/09/07 Qt, RaspberryPi, 開発

どもです。

RaspberryPiのOS:Raspbianの新しいバージョンが、少し前(…なのか?)にリリースされました。
なので、さっそくOSを更新してみました。

前回の投稿では、NOOBSを使用したOSのインストール方法について記載しました。
実はコレ、Raspbianの新バージョンがリリースされたことに合わせて、使っているOSを更新した際の内容です。

今回は、OSの更新に合わせて、Qtのクロス環境を更新したので、その手順について書きます。
なお、対象とするQtのバージョンは「5.12.3」です。
LTSなので、このバージョンを選択しています。

0.概要

今回のエントリでは、Linux(ubuntu)上でQtをビルド、Raspbianにデプロイすることで、Linux(ubuntu)-Raspbianのクロス環境を構築します。

1.Raspbian側のセットアップ

まず、クロス環境を構築するにために、Raspbianに必要なライブラリ群をインストールします。

1.1.source.listの修正

Raspbianの/etc/apt/source.listを修正します。
/etc/apt/source.list 内の「deb-src」のコメントアウトを解除します。
コメントアウトの結果、下記のようになっています。

1.2.ライブラリのインストール

次に、Raspbianで下記コマンドを実行して必要なライブラリをインストールします。

1.3.ディレクトリの作成

Linux上でビルドしたQtをデプロイするためのディレクトリを作成します。
今回作成したのは、[/usr/local/qt5pi]です。
なお、[/usr/local]のフォルダはroot権限となりますが、qt5piのみpiユーザーでもアクセスできるように所有権を変更しておきます。

2.Linux(ubuntu)側のセットアップ

ここから、Linux(ubuntu)での作業です。
RaspberryPiのIPアドレスが必要になりますので、事前に調べておきます。

2.1.作業フォルダの作成

下記コマンドを実行して、作業フォルダを作成します。

2.2.クロスコンパイルに必要なツールを取得

作成した[raspi]に移動して、作業に必要なツール(toolchain)を取得します。

2.3.デプロイ用ディレクトリ作成

Raspbianのクロス環境、デプロイのための作業フォルダです。

Linuxでのビルド結果は、上記3つのフォルダに反映されます。

2.4.RaspberryPiと同期

先の手順で作成したフォルダと、RaspberryPiの実機と同期させます。
これにより、Linuxでのビルド結果を簡単にRaspberryPiの実機に反映させることができます。
実行するコマンドは、下記の通りです。

※raspberrypi_ipは、RaspberryPiのIPアドレスを示します。
環境にに合わせて変更します。

なお、上記コマンドを実行するだけでは、実は不十分です。
シンボリックリンクを調整して、sysrootの相対パスの構成なんかを統一しておく必要があります。
この手順、手動ではやっていられません。
そこは便利なスクリプトが用意されていますので、それを取得・実行します。
コマンドは、下記の通り。

2.5.Qtをビルド

ここまでで、下準備は整いました。
次は、Qtのソースコードを取得してビルドします。

これで、Qt ver.5.12.3のソースコードを取得できました。
ここで、qmake.confを編集します。
というのは、Raspbian stretchのEGLライブラリは、名前が変更されています。
なので、これに合わせてQtの設定を変更する必要があります。
変更するファイルは、Qtのソースコード内にある[./qtbase/mkspecs/devices/linux-rasp-pi-g++/qmake.conf]です。
変更後のqmake.confを示しておきます。

変更点は、上記ファイルでの20~21行目、32行目です。
変更内容は、「-lEGL」と「-lGLESv2」を、それぞれ「-lbrcmEGL」と「-lbrcmGLESv2」と変更しています。
実際に変更した行が、23~24行目、および33行目に該当します。

ここまでできたら、configureを実行してMakefileを生成し、ビルドからインストールまで一気に実行します。

makeする際の「-j」の後ろの数字は、並行して実行するプロセスの数です。
私の環境では「4」としました。
(このエントリーの手順を実行する際には、各自の環境に合わせて変更してください。)

以上で、qt5のクロスコンパイルが完了します。
最後に、ビルドしたqt5をRaspberryPiと同期させます。
実行するコマンドが、こちら。

これで、RaspberryPiにQtが生成されます。

3.まとめ

以上で、Linux/RaspberryPiのQtCreatorのクロス環境が構築できました。

GUIアプリをRaspberryPi上でビルドすると、モノによっては時間がかかってしょうがないです。
しかしこれにより、実装からビルドまでをLinux(ubuntu)で行い、動作確認をRaspberryPiで行う、ということができるようになりました。
時間がかかっていたビルドとは、これでオサラバです。

ではっ!

補足

今回の記事は、コチラの記事を参考にしています。
大変助かりました。
ありがとうございます。

関連記事

Arduino_Logo

1台のarduinno nanoで割込みとSPIの同時使用

どもです。 先日手に入れたArduino nano(中華)で遊んでいます。 今回、この1台のAr

記事を読む

toppers

C言語でEV3開発(26)-EV3で機械学習(1)-QLearningをC#に委譲してみた

どもです。 前回の投稿では、Q-LearningをEV3本体に実装してみたら、メモリが足りなくて動

記事を読む

Arduino_Logo

ホールセンサーの種類と使い方(割込み編)

どもです。 前回に引き続き、今回もホールセンサーについてです。 1.前回からの違い 前回の

記事を読む

toppers

C言語でEV3開発(16)-TOPPERS/HRP2 EV3 で Bluetooth割込み

どもです。 今回は、EV3 の環境をTOPPERS/HRP2 EV3RT で作成したアプリをPC上

記事を読む

OpenCvLogo

RaspberryPiで物体検出(1)-白線検出への挑戦(1):輪郭検出による白線検出

どもです。 今回は、OpenCvを用いて道路の白線検出について、です。 1.今回の環境 O

記事を読む

eclipse_4.3_kepler

elicpse/CDTでのgdbでのソースを追従したデバッグができない問題

どもです。 今回のエントリーは、Eclipse上でgdbを利用したデバッグ中に発生する問題について

記事を読む

eclipse-juno-logo

C言語でEV3開発(1)

どもです。 2回目の投稿。 本格的な投稿としては、初めての投稿になります。 内容は、LEG

記事を読む

Arduino_Logo

ホールセンサーの種類と使い方

どもです。 今回のエントリは、表題にある「ホールセンサー」についてです。 1.「ホールセンサ

記事を読む

Arduino_Logo

フォトレジスタを使ってみた-Arduinoで光検出

どもです。 今回は、タイトル通り「フォトレジスタの使い方」です。 1.フォトレジスタって何?

記事を読む

Splash

EV3開発サポートツール(3)-Ev3Controller

どもです。 今回は、以前ちらりと紹介した、Ev3のモーターの出力を調整するアプリケーションについて

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

RasPi_Qt
Rasbianの新しいバージョンが出たので、クロス環境を更新してみた。(さらにその後)

どもです。 前回の投稿から、かなり時間が空いてしまいましたが、今

RasPi_Qt
Rasbianの新しいバージョンが出たので、クロス環境を更新してみた。(その後)

どもです。 前回、Linux/RaspberryPiでのQt(Q

RasPi_Qt
Rasbianの新しいバージョンが出たので、クロス環境を更新してみた。

どもです。 RaspberryPiのOS:Raspbianの新し

no image
RaspberryPiのOS:RaspbianをNOOBSでセットアップしてみた

どもです。 今回の内容は、「今更!?」ですがNOOBSでRasp

GitHub
C/C++のスタブを自動生成するツールを公開しました

どもです。 突然ですが、C/C++の単体テストで使用する「スタブ

→もっと見る

PAGE TOP ↑