Xojo でリモート開発(Raspberry Pi / Webアプリ編)
「Xojo でリモート開発」
https://qiita.com/nanbuwks/items/4743756186060c3c3d20
では、Linuxマシンで動かすアプリケーションを、Windows PCで開発してリモートで実行、デバッグしました。
今回は RaspberryPi で動かす Web アプリケーションを、PC で開発してリモートで実行、デバッグします。
リモート開発するPCは Windows/Linux で検証しましたが、多分Macもイケる・・・ハズ。
概要
Xojo は、Mac/Windows/Linux/iOS/Web/RaspberryPi アプリを作成することができます。
このうち、RaspberryPi アプリについてはデスクトップアプリ/CUIアプリ/Webアプリいずれも作成可能となりました。
しかしながら IDE が動作するのは Mac/Windows/Linux PC でのみです。
開発は以下のいずれかとなります。
- ターゲットを ARM に設定して、バイナリを RaspberryPi に転送して実行する
- リモートで実行、デバッグする(リモート開発時)
環境
- Xojo 2019 r3.1
- Raspbian GNU/Linux 10 (buster)
- Raspberry Pi 3 Model B
リモート開発PCは以下の2つでテストしています。
- MS-Windows 10 Pro 64bit
- Ubuntu 18.04 AMD64
RaspberryPi での設定
Ubuntu の Xojo パッケージを解凍した以下のファイルを RaspberryPiにコピー
.../xojo2019r3.1/Extras/Remote Debugger Console/linux\ ARM.zip
$ scp linux\ ARM.zip [email protected]:/home/pi
RaspberryPi で解凍
pi@raspberrypi:~ $ mkdir xojo
pi@raspberrypi:~ $ cd xojo
pi@raspberrypi:~/xojo $ mv ../linux\ ARM.zip .
pi@raspberrypi:~/xojo $ unzip linux\ ARM.zip
Archive: linux ARM.zip
creating: RemoteDebuggerConsole/
inflating: RemoteDebuggerConsole/RemoteDebuggerConsole
creating: RemoteDebuggerConsole/RemoteDebuggerConsole Libs/
inflating: RemoteDebuggerConsole/RemoteDebuggerConsole Libs/libc++.so.1
inflating: RemoteDebuggerConsole/RemoteDebuggerConsole Libs/libGZipARM.so
inflating: RemoteDebuggerConsole/RemoteDebuggerConsole Libs/libRBShellARM.so
inflating: RemoteDebuggerConsole/RemoteDebuggerConsole Libs/XojoConsoleFrameworkARM.so ls
creating: RemoteDebuggerConsole/RemoteDebuggerConsole Resources/
creating: RemoteDebuggerConsole/RemoteDebuggerConsole Resources/en.UTF-8/
creating: RemoteDebuggerConsole/RemoteDebuggerConsole Resources/en.UTF-8/LC_MESSAGES/
inflating: RemoteDebuggerConsole/RemoteDebuggerConsole Resources/en.UTF-8/LC_MESSAGES/localizable.mo
pi@raspberrypi:~/xojo $ ls
RemoteDebuggerConsole 'linux ARM.zip'
pi@raspberrypi:~/xojo $ cd RemoteDebuggerConsole/
pi@raspberrypi:~/xojo/RemoteDebuggerConsole $ ./RemoteDebuggerConsole
./RemoteDebuggerConsole: error while loading shared libraries: libunwind.so.8: cannot open shared object file: No such file or directory
実行しようとしたらライブラリがないと出たのでインストール
pi@raspberrypi:~/xojo/RemoteDebuggerConsole $ sudo apt install libunwind8
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
libunwind8
0 upgraded, 1 newly installed, 0 to remove and 74 not upgraded.
Need to get 48.3 kB of archives.
After this operation, 165 kB of additional disk space will be used.
Get:1 http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian buster/main armhf libunwind8 armhf 1.2.1-9 [48.3 kB]
Fetched 48.3 kB in 1s (45.1 kB/s)
・
・
・
実行すると色々聞いてくるので適当に答える
pi@raspberrypi:~/xojo/RemoteDebuggerConsole $ ./RemoteDebuggerConsole
Machine Name: RaspberryPi
Download Directory: /home/pi/xojo
192.168.162.100
192.168.43.13
IP Address: 192.168.162.100
Maximum Connections: 10
Auto Launch:
Auto Launch: Yes
Public: Yes
とすると、待受になった。
Machine Name: RaspberryPi
Download Directory: /home/pi/xojo
IP Address: 192.168.162.100 X
IP Address: 192.168.43.13
Port: 44553
Max Connections: 10
Launch After Unpack: true
Public Stub: true
11:28:24 AM: Binding New StubLocator to port: 44553
11:28:24 AM: StubLocator New: Connected
ServerSocket1 is Listening on 192.168.162.100:44553
母艦側で、ボタン1つだけのWebアプリを作ってみる
開発PC 側で、Project-Run Remotely でRaspberryPiのIPアドレスを登録し、選択すると、RaspberryPi のコンソールで以下のように出て、動いた。
11:31:25 AM: Connection established
11:31:25 AM: Stub<-IDE HELLO, 19.3.1a0, Protocol: 6, Local IP: 192.168.162.100
11:31:25 AM: Using protocol version 6
11:31:25 AM: IDE Version supported
11:31:25 AM: Stub->IDE OLLEH, 1.9.057, 6, Remote Address: 192.168.162.82
11:31:25 AM: Stub<-IDE PLATFORM-REQUEST
11:31:25 AM: Stub->IDE PLATFORM-RESPONSE, Linux, ARM, ELF, Linux 4.19.75-v7+ Raspbian GNU/Linux 10 \n \l
11:31:30 AM: Stub<-IDE CREATEFILE, DebugMyApplication.tar.gz, Relative path: True,
11:31:30 AM: Stub->IDE CHALLENGE, 123EBF 192.168.162.100 192.168.162.82
11:31:30 AM: Waiting for RESPONSE
11:31:30 AM: Got a RESPONSE packet, about to decrypt
11:31:30 AM: Stub<-IDE RESPONSE, 123EC0 192.168.162.82 192.168.162.10011:31:30 AM: Response accepted
11:31:30 AM: Creating file: /home/pi/xojo/DebugMyApplication.tar.gz
11:31:30 AM: Created the file list
11:31:30 AM: Added the file or folder to the file list
11:31:30 AM: Stub->IDE FILECREATION, File ID: 0, Status: 0
11:31:30 AM: Stub<-IDE FILEINFO, File ID: 0, Size: 1.883502e+7, Compressed: False, Stub Delete: False
11:31:30 AM: 1024.0 KB/18.0 MB 6%
11:31:31 AM: 2.0 MB/18.0 MB 11%
11:31:31 AM: 3.0 MB/18.0 MB 17%
11:31:31 AM: 4.0 MB/18.0 MB 22%
11:31:31 AM: 5.0 MB/18.0 MB 28%
11:31:32 AM: 6.0 MB/18.0 MB 33%
11:31:32 AM: 7.0 MB/18.0 MB 39%
11:31:32 AM: 8.0 MB/18.0 MB 45%
11:31:32 AM: 9.0 MB/18.0 MB 50%
11:31:33 AM: 10.0 MB/18.0 MB 56%
11:31:33 AM: 11.0 MB/18.0 MB 61%
11:31:33 AM: 12.0 MB/18.0 MB 67%
11:31:33 AM: 13.0 MB/18.0 MB 72%
11:31:34 AM: 14.0 MB/18.0 MB 78%
11:31:34 AM: 15.0 MB/18.0 MB 84%
11:31:34 AM: 16.0 MB/18.0 MB 89%
11:31:34 AM: 17.0 MB/18.0 MB 95%
11:31:35 AM: 18.0 MB/18.0 MB 100%
11:31:35 AM: Stub->IDE FILEWRITTEN, File ID: 0, Status: 0
11:31:35 AM: Stub<-IDE FILELAUNCH, File ID: 0, Launch in Terminal: False, Command line args:
11:31:35 AM: Stub->IDE CHALLENGE, 123EC1 192.168.162.100 192.168.162.82
11:31:35 AM: Got a RESPONSE packet, about to decrypt
11:31:35 AM: Stub<-IDE RESPONSE, 123EC2 192.168.162.82 192.168.162.10011:31:35 AM: Response accepted
11:31:35 AM: Decompressing DebugMyApplication.tar.gz
11:31:36 AM: Untarring DebugMyApplication.tar
11:31:38 AM: Launching DebugMyApplication
適当なマシンでWebブラウザでIPアドレス:8080 を開くと実行できていることがわかる。
杞憂?
- Linux PC をターゲットにして、コンソール版デバッガを立ち上げ、Windows PCからリモートデバッグしようとするとダメ
- 以前は Windows から RaspberryPi にリモートデバッグできなかった? https://www.k2-y.com/?page_id=2748 (リンク切れ)
とかで心配でしたが、あっさり動きました。
トラブルシューティング
illegal instruction と出る
→ Raspberry Pi 2 以降で無い場合はアーキテクチャの問題
Author And Source
この問題について(Xojo でリモート開発(Raspberry Pi / Webアプリ編)), 我々は、より多くの情報をここで見つけました https://qiita.com/nanbuwks/items/9fc2088324e153535d53著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .