*

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で行う、ということができるようになりました。
時間がかかっていたビルドとは、これでオサラバです。

ではっ!

補足

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

関連記事

raspberry-pi

libpigpioでのRaspberryPi3とArduinoのSPI通信

どもです。 今回は、libpigpioを使用してRaspberryPi3とArduinoでSPI通

記事を読む

GitHub

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

どもです。 突然ですが、C/C++の単体テストで使用する「スタブ」を自動で生成するツールを公開

記事を読む

eclipse-juno-logo

C言語でEV3開発(1)

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

記事を読む

toppers

C言語でEV3開発(22)-ロギング機能

どもです。 前回は、モーターの出力を制御する方法について記載しました。その際に、モータ/車体が期待

記事を読む

python

VisualStudioCommunityでのPython開発環境構築

どもです。 最近、VisualStudioでのPython開発を始めました。 その際の環境構築に

記事を読む

no image

C言語でEV3開発(21)-モーター出力の制御

どもです。 前回は、超音波センサから前方障害物との距離を取得し、それを元に安全状態を判断する、とい

記事を読む

no image

C言語でEV3開発(4)

どもです。 今回のエントリーは、前回のエントリー内容/EclipseでEV3の実行ファイルをビルド

記事を読む

Arduino_DHT11

温度(湿度)センサを使ってみた(1)-ArduinoでDHT11

どもです。 今回は、久しぶりにセンサーを購入して使ってみたので、それについて記載します。 1.使

記事を読む

Arduino_Logo

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

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

記事を読む

toppers

C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた

どもです。 今回は、Ev3の移動距離の算出についてです。 1.算出方法について 移動距離は

記事を読む

Comment

  1. NEXUS6 より:

    各環境で名前を変更されたパッケージ名を確認してから実行した方が良さそうですね。

    • kensukemorimoto より:

      コメントありがとうございます。

      確かにそうですね。
      少し意識するようにいたします。

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="">

DIY_eye_catch
自宅で電子工作(2)-ラズパイのSPIコネクタ自作

どもです。 今回は、電子工作です。 1.何を作った 今回紹介

image027
気圧センサを使ってみた-RaspberryPi/pigpioでMPL115A1

どもです。 前回は、DHT11をRaspberryPi/pigpio

Rasp_DHT11
温度(湿度)センサを使ってみた(2)-RaspberryPi/pigpioでDHT11

どもです。 前回は、DHT11をAdrudinoにつないで温度/湿度

Arduino_DHT11
温度(湿度)センサを使ってみた(1)-ArduinoでDHT11

どもです。 今回は、久しぶりにセンサーを購入して使ってみたので、それ

GitHub
Windowsでのカバレッジ測定-OpenCppCoverageを使ってみた(2)

どもです。 前回のエントリーで、OpenCppCoverageという

→もっと見る

PAGE TOP ↑