
QNXをRaspberryPi4で試す。LinuxマシンとVSCode利用
0.本記事の読み方 本記事で紹介する概要
QNXをとりあえずやってみようという方は、1.2.は読み飛ばしていただいてよいと思います。
3から読み進めてください。本記事ではRaspberryPi4にQNXのリファレンスSDカードに書き込み、VisualStdioCodeでクロス開発する入り口まで解説します。EclipseベースのMomentics IDEは利用しません。
本記事は2つの構成で実施しました。
1)WindowsPC単独

2)linuxビルドマシンとWindows(VSCode利用)

1.試したきっかけ
単なる探求心から試したわけでじゃなくて、個人的に困っていたため、その解決手段としてたまたま記事を見つけて、やってみたのです。
理由は細かい説明は割愛しますが、linuxベースの環境でコマンドラインでいいのでデバッガが使いたいただそれだけです。それを非商用ライセンスでどうやって利用するかを確認することを目的としています。
2.最初にやったこと
標準のgdbでデバッグができると思っていましたが、nto<アーキテキチャ>-gdb なるプログラムがいるということらしいことがネット検索でわかった。それの入手方法がないだろうかと思い、結局本家のQNX Downloadセンターにアクセスして、非商用のライセンスを発行、とりあえずソフトウェア開発パッケージ(以下 SDP)をPCにインストールしてみた。それでお目当てのntoaarch64-gdb.exe を入手できました。
一旦そこで止まりましたが、開発パッケージ特にBSP(ボードサポートパッケージ)をみるとRaspberry-pi4があることに気づきました。
それで、「QNX Raspberry-pi」で検索すると該当記事が見つかったのでそれでやってみることにしました。
3.ミッション
コマンドラインでのデバッガ―接続を実現する
linuxの共有のビルドマシンがあり、SDP(開発パッケージ)が入っていないWindowsPCから利用できること
linuxの共有のビルドマシンはubuntu18.04とする
4.必要なもの
Raspberry-pi4 タイプB 2GB以上 必須
Micro SDカード 必須4GB以上
USB TYPE-C電源 必須
Windows11 64bit PC 必須
linux用PC レッツノート CF-SZ6を使った
HDMIモニタとMicroHDMIケーブル 画面にIPアドレスが出るので確認が必要な場合
5.手順の参照先
QNX SDP 8.0 for RPi4でのPython/C開発環境構築
https://zenn.dev/tasada038/articles/f7e81d709775ee
本記事より上記zennサイトのほうが詳しく書かれている場合もあるので、そちらも参照いただいたほうがいいと思います。
6.LinuxとWindows共通の最初の手順
SDカード焼きこむところまでは、私はWindowsで実施しました。上記zennのサイトではLinuxがメインの説明になっているようです。
7.ライセンス取得とSDPインストール
私が手続きしたときは、ライセンス発行まで、1日ぐらいかかった記憶があります。単に自分が必要な申請ができていなかっただけかもしれませんが、急ぐ場合は早めにしましょう。

手順としては以下を順番に行います。
1)会員登録をします

会員登録すると画面が以下のようになっているはずです。

2)ライセンスマネージャーにmyQNXに項目が現れるのを待ちます。
以下はすでに発行済みのライセンスマネージャーです。
実は、なかなか発行されなくてメールで請求しました。
一旦ライセンス申し込みを受けた旨メールがあって、即日でないみたいなので1行だけ本文を以下のように送ったら発行されました。
Free Access to QNX SDP 8.0 for Non-Commercial Use

その後、ライセンス発行で来たメールは以下の内容です。
Welcome to the QNX developer community.
Your QNX SDP 8.0 Non-Commercial Single-User License (Reference Serial Number: XXXXXX) is being prepared for you and will be ready to use shortly.
The QNX Software Development Platform (SDP) 8.0 includes:
the QNX OS 8.0, a general-purpose real-time operating system
the QNX Tool Suite, a set of software development tools
the QNX Software Center, a centralized software delivery system
To access your license, your next steps are:
Log in to your myQNX account and go to the myQNX License Manager tool at https://www.qnx.com/account/dashboard where you will be shown as the Manager of your license.
Click to Accept the license. After accepting, the license will be available for you to deploy.
Click the Users column and deploy the license to your own account.
With your license deployed, download the QNX Software Center installer for your host OS (https://www.qnx.com/download/group.html?programid=29178) and use QNX Software Center to download and manage your installation of QNX SDP 8.0.
You can find QNX documentation online at: https://www.qnx.com/developers/docs/index.html. Additionally, find many open-source ports, a flashable Raspberry Pi starter image, and more Getting Started content at: https://gitlab.com/qnx.
If you have any feedback about your license or have questions about getting started that are not covered by the documentation, please contact us at QNXCommunityEngagement@qnx.com.
Thank you,
BlackBerry QNX
もう一通
myQNX Email of Assigned Products
The following QNX products are now deployed to you
These products are now available for you to use in the QNX Software Center.
To access the license certificates for these products, log in to myQNX using the button below.
Access myQNX
Product Serial Number Assigned By
QNX Software Development Platform 8.0 - Perpetual - Developer License - Non-Commercial Single-User License (Non-Commercial/Academic License Class) (ver. 8.0)<ライセンス番号>
BlackBerry Limited
1001 Farrar Road
Ottawa, ON K2K 0B3
Canada
QNX Software Centerというインストール専用アプリをインストールして、そのアプリからソフトウェア開発パッケージ(以下SDP)を選んでインストールします。インストール済みのデータは以下の動画になります。
8.MicroSDに書き込み
「qnx_sdp8.0_rpi4_quickstart_YYYY/MM/DD.img」をRaspberry pi imager」用いてSDカードに書き込みます。
書き込んだ後、SDカード内のwpa_supplicant.confをwifiの設定を
自分のところのWifiの環境に合わせて修正します。
LAN接続なら修正しなくてもOKです。
wpa_supplicant.conf SDカード内
network={
ssid="<SSID>"
key_mgmt=WPA-PSK
psk="<PASSWORD>"
}
9.QNXのshell確認
SDカードをRaspberry-piに挿入して電源を入れてみましょう。
$ssh -m hmac-sha2-512 qnxuser@qnxpi.local
でつながるようですが、しばらく時間がかかるだけかもしれません。
手っ取り早く、HDMIでモニタにつなげば画面にIPアドレスが表示されます。
IPアドレスが表示されない場合はIPアドレスが正しく取れていないのでwpa_supplicant.confを修正するかLANでつないでみましょう。
10.VisualStdioCodeの設定と実行(図1構成)
拡張機能 QNX ToolKitのインストールと設定をします。

拡張機能を設定し、ビルドします。
途中でipアドレスが違うので設定しなおして続けています。
11.コマンドラインでデバッガ利用、プロセスをアタッチして実行(図1構成)
前述のVSCodeでビルドした実行プログラムがRaspberryPi内にコピーされてあります。コマンドプロンプトを3つ使って操作します
デバッグ対象プログラムの実行 QNXにssh接続して実行します。
QNXにssh接続し、helloWorldのプロセスIDを確認します。
コマンドプロンプトからデバッガ操作します。
12.Visual Studio Codeでソースコードデバッグ(図1構成)
普通にソースコードデバッグができます。
13.VisualStudioCodeでコード生成、実行(図2構成)
ここからはlinuxを介した場合の説明になります。linuxマシンにSDPをインストールしても手元(開発者PC)からシームレスに開発が可能です。
動画録画前に、ubuntu24.04 を別途PC(CF-SZ6)にインストールし、SDP等3パッケージをインストールします。手順はほぼ同じです。SDカードは書き直す必要はありません。WindowsPCのVisualStudioCodeには、ubuntuマシンのssh設定を行う必要があります。続いてubuntu接続用にもQNX toolKitの拡張機能を有効化します。QNX toolKitの設定情報は、SDPのディレクトリを変更するぐらいです。linux標準だと「/home/<ユーザー名>/qnx800」にする程度です。
14.コマンドライン(shell)でattachしてデバッグ(図2構成)
こちらもshellを3つ使って操作します。
15.考察とできなかったこと
実はミッションの3つ目は未達です。ライブラリのバージョンの問題でデバッガが動作しません。あまり私自身linuxの知見がないため、単純にlinuxを新しいものに変えればいいというところでとりあえず決着しました。
16.そのほか
ユーザー名パスワードなどまとめておきます。上記試用した際のものです。
QNX ユーザー qnxuser パスワード qnxuser
QNX suパスワード root
linuxのユーザー名 user パスワード user
以上になります。