| (同じ利用者による、間の8版が非表示) | |||
| 71行目: | 71行目: | ||
# /etc/apt/sources.listファイル | # /etc/apt/sources.listファイル | ||
## 編集前 | ## 編集前 | ||
#deb-src http://deb.debian.org/debian unstable main contrib non-free non-free-firmware | #deb-src http://deb.debian.org/debian unstable main contrib non-free non-free-firmware | ||
| 89行目: | 88行目: | ||
* Armibian Trixie | * Armibian Trixie | ||
## EGLを使用する場合 | ## EGLを使用する場合 | ||
sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev | sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev \ | ||
libhidapi-dev libinput-bin libinput-dev libts0t64 libts-bin libts-dev libmtdev1 libmtdev-dev \ | |||
libevdev2 libevdev-dev libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \ | |||
libpcre2-8-0 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libsepol-dev | libpcre2-8-0 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libsepol-dev libselinux-dev libwacom-dev \ | ||
libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev | libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev \ | ||
libssl | libssl-dev libnss3-dev gdbserver \ | ||
libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev libgles2-mesa-dev libgbm-dev | libgles2-mesa-dev libxcb-xinerama0 libxcb-xinerama0-dev libgles2-mesa-dev libgbm-dev | ||
libgtk-3-dev # QtWidget向けにGTKネイティブテーマを使用する場合 | libgtk-3-dev # QtWidget向けにGTKネイティブテーマを使用する場合 | ||
## XCBを使用する場合 | ## XCBを使用する場合 | ||
sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev | sudo apt install ccache libicu-dev icu-devtools libb2-dev libsctp1 libsctp-dev libzstd1 libzstd-dev libhidapi-dev \ | ||
libinput-bin libinput-dev | libinput-bin libinput-dev libts0t64 libts-bin libts-dev libmtdev1 libmtdev-dev libevdev2 libevdev-dev \ | ||
libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev | libblkid-dev libffi-dev libglib2.0-dev libglib2.0-dev-bin libmount-dev \ | ||
libpcre2-8-0 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libsepol-dev | libpcre2-8-0 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libsepol-dev libselinux-dev libwacom-dev \ | ||
libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \ | libfontconfig1-dev libdbus-1-dev libxkbcommon-dev libjpeg-dev libasound2-dev libudev-dev libgles2-mesa-dev \ | ||
libxcb-xinerama0 libxcb-xinerama0-dev libssl | libxcb-xinerama0 libxcb-xinerama0-dev libssl-dev libnss3-dev gdbserver \ | ||
libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev | libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev \ | ||
libfreetype-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev \ | |||
libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev | libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \ | ||
libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev | libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev \ | ||
libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libgles2-mesa-dev libgbm-dev | libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev libgles2-mesa-dev libgbm-dev | ||
libgtk-3-dev # QtWidget向けにGTKネイティブテーマを使用する場合 | libgtk-3-dev # QtWidget向けにGTKネイティブテーマを使用する場合 | ||
| 126行目: | 125行目: | ||
| Bluetooth || bluez bluez-tools libbluetooth-dev || | | Bluetooth || bluez bluez-tools libbluetooth-dev || | ||
|- | |- | ||
| 画像 || libjpeg-dev libpng-dev libtiff-dev libwebp-dev libmng | | 画像 || libjpeg-dev libpng-dev libtiff-dev libwebp-dev libmng-dev || | ||
|- | |- | ||
| コーデック || libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libx265-dev || | | コーデック || libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libx265-dev || | ||
| 157行目: | 156行目: | ||
| プリンタ || libcups2-dev || | | プリンタ || libcups2-dev || | ||
|- | |- | ||
| Qt Speech || flite1-dev || | | Qt Speech || flite1-dev libespeak-dev libwhisper-dev || | ||
|- | |- | ||
| Qt GamePad || libsdl2-dev || | | Qt GamePad || libsdl2-dev || | ||
| 163行目: | 162行目: | ||
| Wayland || libwayland-dev libwayland-dev waylandpp-dev libwayland-egl-backend-dev || | | Wayland || libwayland-dev libwayland-dev waylandpp-dev libwayland-egl-backend-dev || | ||
|- | |- | ||
| X11 || libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev<br> | | X11 || libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev<br>libfreetype-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev<br>libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev<br>libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev<br> libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libfontconfig1-dev<br><br>もし、xcbに関連するパッケージを全てインストールする場合は、<code>sudo apt install "libxcb-*"</code>を実行する。 || | ||
|- | |- | ||
| WebEngine || 必須 :<br>flex bison gperf libre2-dev libnss3-dev libdrm-dev<br><br>オプション1 :<br>libxml2-dev libxslt1-dev libminizip-dev libjsoncpp-dev liblcms2-dev libevent-dev libprotobuf-dev<br>protobuf-compiler<br><br>オプション2(不安定なため注意すること) :<br>libopus-dev libvpx-dev || | | WebEngine || 必須 :<br>flex bison gperf libre2-dev libnss3-dev libdrm-dev<br><br>オプション1 :<br>libxml2-dev libxslt1-dev libminizip-dev libjsoncpp-dev liblcms2-dev libevent-dev libprotobuf-dev<br>protobuf-compiler<br><br>オプション2(不安定なため注意すること) :<br>libopus-dev libvpx-dev || | ||
| 280行目: | 279行目: | ||
QMAKE_LIBS_OPENVG = -lOpenVG $${QMAKE_LIBS_EGL} | QMAKE_LIBS_OPENVG = -lOpenVG $${QMAKE_LIBS_EGL} | ||
# | # RISC-V64 ベクトル拡張1.0対応コンパイラフラグ | ||
COMPILER_FLAGS = -march=rv64gcv -mabi=lp64d | |||
COMPILER_FLAGS = -march= | |||
QMAKE_CFLAGS = $${COMPILER_FLAGS} | QMAKE_CFLAGS = $${COMPILER_FLAGS} | ||
QMAKE_CXXFLAGS = $${COMPILER_FLAGS} | QMAKE_CXXFLAGS = $${COMPILER_FLAGS} | ||
QMAKE_CXXFLAGS_RELEASE += -O2 | |||
# リリースビルド時の最適化フラグ | |||
QMAKE_CXXFLAGS_RELEASE += -O2 -ftree-vectorize -pipe | |||
QMAKE_LIBS += -lrt -lpthread -ldl | QMAKE_LIBS += -lrt -lpthread -ldl | ||
| 365行目: | 363行目: | ||
#QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL} | #QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL} | ||
# | # RISC-V64 ベクトル拡張1.0対応コンパイラフラグ | ||
COMPILER_FLAGS = -march= | COMPILER_FLAGS = -march=rv64gcv -mabi=lp64d | ||
QMAKE_CFLAGS = $${COMPILER_FLAGS} | QMAKE_CFLAGS = $${COMPILER_FLAGS} | ||
QMAKE_CXXFLAGS = $${COMPILER_FLAGS} | QMAKE_CXXFLAGS = $${COMPILER_FLAGS} | ||
QMAKE_CXXFLAGS_RELEASE += -O2 | |||
# リリースビルド時の最適化フラグ | |||
QMAKE_CXXFLAGS_RELEASE += -O2 -ftree-vectorize -pipe | |||
QMAKE_LIBS += -lrt -lpthread -ldl | QMAKE_LIBS += -lrt -lpthread -ldl | ||
| 423行目: | 424行目: | ||
set(CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/riscv64-linux-gnu") | set(CMAKE_SHARED_LINKER_FLAGS_INIT "-Wl,-rpath-link,${TARGET_SYSROOT}/usr/lib/riscv64-linux-gnu") | ||
# RISC-V64 | # RISC-V64 ベクトル拡張対応コンパイラフラグ | ||
set(QT_COMPILER_FLAGS "-march=rv64gcv -mabi=lp64d") | |||
set(QT_COMPILER_FLAGS "-march= | # リリースビルド用の最適化フラグ | ||
set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe") | set(QT_COMPILER_FLAGS_RELEASE "-O2 -pipe -ftree-vectorize") | ||
# リンカフラグ | |||
set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed") | set(QT_LINKER_FLAGS "-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed") | ||
| 646行目: | 649行目: | ||
== Qt 6ライブラリのアップロード == | == Qt 6ライブラリのアップロード == | ||
ビルドしたQtライブラリを、Banana Piにデプロイする。<br> | |||
~/Program/Qt_Embedded/ | ~/Program/Qt_Embedded/Qt6ディレクトリに存在する全てのファイルを、Banana Piの/usr/localディレクトリに同期させる。<br> | ||
rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \ | rsync -avz --rsh="ssh -p <ポート番号> -i <秘密鍵のフルパス>" \ | ||
~/Program/Qt_Embedded/Target < | ~/Program/Qt_Embedded/Target <Banana Piのユーザ名>@<Banana Piのホスト名またはIPアドレス>:/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x | ||
<br> | <br> | ||
<u>※注意</u><br> | <u>※注意</u><br> | ||
<u> | <u>Banana PiにアップロードしたQtライブラリの所有者がrootになっている場合があるため、</u><br> | ||
<u>以下のコマンドを実行して、所有者をローカルユーザに変更する必要がある。</u><br> | <u>以下のコマンドを実行して、所有者をローカルユーザに変更する必要がある。</u><br> | ||
sudo chown -R < | sudo chown -R <Banana Piのユーザ名>:<Banana Piのグループ名> ~/InstallSoftware/Qt_6_x_x | ||
<br> | <br> | ||
Banana PiのリンカがQtライブラリを読み込むようにするため、以下のコマンドを実行する。<br> | |||
<u>/etc/ld.so.conf. | <u>/etc/ld.so.conf.dディレクトリに配置する場合、ファイル名の先頭に"00"を付加すること。</u><br> | ||
# .profileファイルに設定する場合 | # .profileファイルに設定する場合 | ||
export LD_LIBRARY_PATH="/home/< | export LD_LIBRARY_PATH="/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib:$LD_LIBRARY_PATH" | ||
# /etc/ld.so.conf.dディレクトリに配置する場合 | # /etc/ld.so.conf.dディレクトリに配置する場合 | ||
echo /home/< | echo /home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib | sudo tee /etc/ld.so.conf.d/00-Qt_6_x_x.conf | ||
sudo ldconfig | sudo ldconfig | ||
<br> | <br> | ||
これにより、Banana PiでQtライブラリが使用できる。<br> | |||
<br><br> | <br><br> | ||
| 686行目: | 689行目: | ||
*: [デバイス]プルダウンから、[設定]画面左にある[デバイス]で作成したターゲットを選択する。 | *: [デバイス]プルダウンから、[設定]画面左にある[デバイス]で作成したターゲットを選択する。 | ||
*: [ビルドデバイス]プルダウンから、[ローカルPC]を選択する。 | *: [ビルドデバイス]プルダウンから、[ローカルPC]を選択する。 | ||
*: [Sysroot] | *: [Sysroot]項目に、Banana Piのシステムルートディレクトリのパスを入力する。 | ||
*: [コンパイラ]項目の[C]プルダウンから、C向けのクロスコンパイラを選択する。 | *: [コンパイラ]項目の[C]プルダウンから、C向けのクロスコンパイラを選択する。 | ||
*: [コンパイラ]項目の[C++]プルダウンから、C++向けのクロスコンパイラを選択する。 | *: [コンパイラ]項目の[C++]プルダウンから、C++向けのクロスコンパイラを選択する。 | ||
*: [GDB]プルダウンから、クロスコンパイラ向けGDBを選択する。 | *: [GDB]プルダウンから、クロスコンパイラ向けGDBを選択する。 | ||
*: [Qtバージョン]プルダウンから、上記で設定した[Qtバージョン]を選択する。 | *: [Qtバージョン]プルダウンから、上記で設定した[Qtバージョン]を選択する。 | ||
*: [Qt mkspec]項目から、デバイス定義ファイル (/<クロスコンパイルしたQt 6のインストールディレクトリ>/mkspecs/devices/linux- | *: [Qt mkspec]項目から、デバイス定義ファイル (/<クロスコンパイルしたQt 6のインストールディレクトリ>/mkspecs/devices/linux-bananapi-f3-g++ファイル) のパスを入力する。 | ||
*: [CMake Tool]プルダウンから、クロスコンパイルで使用したCMakeを選択する。 | *: [CMake Tool]プルダウンから、クロスコンパイルで使用したCMakeを選択する。 | ||
*: <br> | *: <br> | ||
| 717行目: | 720行目: | ||
*: Value - :0 または :0.0 | *: Value - :0 または :0.0 | ||
* Variable : PATH | * Variable : PATH | ||
*: Value : /home/< | *: Value : /home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/bin ※PATHの設定が既に存在する場合は、追記する | ||
* Variable : LD_LIBRARY_PATH ( | * Variable : LD_LIBRARY_PATH (Banana Piの~/.profileファイルに環境変数LD_LIBRARY_PATHを設定している場合) | ||
*: Value : /home/< | *: Value : /home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib:/home/<Banana Pi's User Name>/InstallSoftware/Qt_6_x_x/plugins/qmltooling | ||
* Variable : QML_IMPORT_PATH | * Variable : QML_IMPORT_PATH | ||
*: Value : /home/< | *: Value : /home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/qml | ||
* Variable : QML2_IMPORT_PATH | * Variable : QML2_IMPORT_PATH | ||
*: Value : /home/< | *: Value : /home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/qml | ||
* Variable : QT_PLUGIN_PATH | * Variable : QT_PLUGIN_PATH | ||
*: Value : /home/< | *: Value : /home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/plugins | ||
* Variable : QT_QPA_PLATFORM_PLUGIN_PATH | * Variable : QT_QPA_PLATFORM_PLUGIN_PATH | ||
*: Value : /home/< | *: Value : /home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/platforms | ||
<br> | <br> | ||
また、上記の設定を簡潔に行う場合、Qtプロジェクトのディレクトリにある.pro.userファイルにおいて、<br> | また、上記の設定を簡潔に行う場合、Qtプロジェクトのディレクトリにある.pro.userファイルにおいて、<br> | ||
| 740行目: | 743行目: | ||
<value type="QString">QT_QPA_PLATFORMTHEME=qt6ct</value> | <value type="QString">QT_QPA_PLATFORMTHEME=qt6ct</value> | ||
<value type="QString">DISPLAY=:0</value> | <value type="QString">DISPLAY=:0</value> | ||
<value type="QString">PATH=/home/< | <value type="QString">PATH=/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games</value> | ||
<value type="QString">LD_LIBRARY_PATH=/home/< | <value type="QString">LD_LIBRARY_PATH=/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/lib:/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/qmltooling</value> | ||
<value type="QString">QML_IMPORT_PATH=/home/< | <value type="QString">QML_IMPORT_PATH=/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/qml</value> | ||
<value type="QString">QML2_IMPORT_PATH=/home/< | <value type="QString">QML2_IMPORT_PATH=/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/qml</value> | ||
<value type="QString">QT_PLUGIN_PATH=/home/< | <value type="QString">QT_PLUGIN_PATH=/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/plugins</value> | ||
<value type="QString">QT_QPA_PLATFORM_PLUGIN_PATH=/home/< | <value type="QString">QT_QPA_PLATFORM_PLUGIN_PATH=/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x/plugins/platforms</value> | ||
</valuelist> | </valuelist> | ||
<!-- ...略 --> | <!-- ...略 --> | ||
| 762行目: | 765行目: | ||
==== GDBの設定 ==== | ==== GDBの設定 ==== | ||
次に、GDBデバッガの設定を行う。<br> | 次に、GDBデバッガの設定を行う。<br> | ||
リモートターゲットをデバッグする時、GDBは、Linux | リモートターゲットをデバッグする時、GDBは、Linux PC側にダウンロードしているBanana Piのシステムルートディレクトリを検索する。<br> | ||
そのため、GDBにターゲット側のBanana Piのシステムルートディレクトリを検索するように設定する必要がある。<br> | |||
<br> | <br> | ||
これは、Qt Creatorメイン画面から、[ツール]メニューバー - [オプション] - [デバッガ] - [GDB]タブ - [追加の起動コマンド]に、以下の内容を設定する。<br> | これは、Qt Creatorメイン画面から、[ツール]メニューバー - [オプション] - [デバッガ] - [GDB]タブ - [追加の起動コマンド]に、以下の内容を設定する。<br> | ||
| 773行目: | 776行目: | ||
システムルートディレクトリに対して、Qtライブラリのインストールディレクトリのシンボリックリンクを作成することを推奨する。<br> | システムルートディレクトリに対して、Qtライブラリのインストールディレクトリのシンボリックリンクを作成することを推奨する。<br> | ||
<br> | <br> | ||
システムルートディレクトリに対して、Linux | システムルートディレクトリに対して、Linux PCに保存したBanana Pi向けのQtライブラリがあるディレクトリのシンボクリックリンクを作成する。 | ||
mkdir -p /< | mkdir -p /<Banana Piのシステムルートディレクトリ>/home/<Banana Piのユーザ名>/InstallSoftware | ||
ln -s /<Qtライブラリのインストールディレクトリ> /< | ln -s /<Qtライブラリのインストールディレクトリ> /<Banana Piのシステムルートディレクトリ>/home/<Banana Piのユーザ名>/InstallSoftware | ||
# シンボリックリンク名の変更 | # シンボリックリンク名の変更 | ||
mv /< | mv /<Banana Piのシステムルートディレクトリ>/home/<Banana Piのユーザ名>/InstallSoftware/<Qtライブラリのインストールディレクトリ> \ | ||
/< | /<Banana Piのシステムルートディレクトリ>/home/<Banana Piのユーザ名>/InstallSoftware/Qt_6_x_x | ||
<br> | <br> | ||
Qt Creatorメイン画面から、[ツール]メニューバー - [オプション] - [デバッガ] - [GDB]タブ - [追加の起動コマンド]に、以下の内容を設定する。<br> | Qt Creatorメイン画面から、[ツール]メニューバー - [オプション] - [デバッガ] - [GDB]タブ - [追加の起動コマンド]に、以下の内容を設定する。<br> | ||
# Kit名に" | # Kit名に"BananaPi"という文字列が入っている場合のみ、Banana Piのシステムルートディレクトリを参照する | ||
# x86 / | # x86 / x64のKitを使用する場合は、Banana Piのシステムルートディレクトリを参照しない | ||
[ -n $(grep -i | [ -n $(grep -i BananaPi %{ActiveProject:Kit:Name}) ] && set sysroot /<Banana Piのシステムルートディレクトリ> | ||
# または | # または | ||
set sysroot /< | set sysroot /<Banana Piのシステムルートディレクトリ> | ||
<br> | <br> | ||
これにより、Banana PiでQtライブラリが使用できる。<br> | |||
<br><br> | <br><br> | ||