rpi-imagerをUbuntu18.04で動かす方法

スポンサーリンク

Raspberry pi の初期設定を楽にしたく、rpi-imagerを動かそうとしたところ動かすまでに色々ハマったので回避策をまとめました。
Workaroundでも良いから動かしたいという人は参考にしてみてください。

発生している問題

snapでインストールした場合

snapでインストールして動かそうとした場合、2つの問題が発生しました。
1つめの問題が、SDカードへ書き込む権限が無く以下のエラーが発生します。

Cannot open storage device '{Device PATH}'.

デバイスへのアクセス権限がないので管理者権限で起動しようとすると、次の問題として以下のエラーが発生して起動しなくなります。

qt.qpa.xcb: could not connect to display :0.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

環境変数にDISPLAYを設定して試しても起動しませんでした。

debパッケージをインストールした場合

snapでインストールすると管理者権限で起動できないため、次にdebパッケージをダウンロードしてインストールを試してみました。
結果としては、依存関係としてQt5.12を要求されインストールする事ができませんでした。

The following packages have unmet dependencies:
 rpi-imager : Depends: libgcc-s1 (>= 3.3.1) but it is not installable
              Depends: libqt5core5a (>= 5.12.2) but 5.9.5+dfsg-0ubuntu2.6 is to be installed
              Depends: libqt5gui5 (>= 5.10.0) but 5.9.5+dfsg-0ubuntu2.6 is to be installed or
                       libqt5gui5-gles (>= 5.10.0) but it is not installable
              Depends: libqt5qml5 (>= 5.10.0) but 5.9.5-0ubuntu1.1 is to be installed

aptでは依存問題でインストールに失敗するため、試しにdpkgによるインストールを試みましたが、起動する事はできませんでした。

fealone@fealone:~/$ rpi-imager
rpi-imager: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12' not found (required by rpi-imager)

解決策

Qt5.12の依存が問題のため、Qt5.12を手動でインストールしライブラリのパスを通す事で起動する事ができました。

Qt5.12のインストール

公式ページからインストーラをダウンロードしてインストールします。

Index of /official_releases/qt/5.12

現在はOSS版であってもアカウント登録が必要になるようなので、インストールを行う際はアカウント登録をしてください。

wget https://download.qt.io/official_releases/qt/5.12/5.12.12/qt-opensource-linux-x64-5.12.12.run
chmod +x qt-opensource-linux-x64-5.12.12.run
./qt-opensource-linux-x64-5.12.12.run

ライブラリのパスを通す

インストールが完了したら、ライブラリにパスを通します。
デフォルトでホームディレクトリ配下に作成されるので、そこにパスを通して起動します。

ldconfig ~/Qt5.12.12/Tools/QtCreator/lib/Qt/lib

起動

パスを通したら、管理者権限で起動します。
正常にGUIが立ち上がれば、完了です。

sudo rpi-imager

おわりに

調べてもあまり良い方法が見つからなず、Workaround的ではありますが今回の方法を採用しました。
ddコマンドでインストールしてセットアップしてもよいのですが、SSHやWiFiの設定などを画面なしで対応するのが面倒くさかったので、rpi-imagerを使いたかったという背景があります。
困っている人の参考になれば幸いです。