SSブログ
Raspberry Pi ブログトップ
- | 次の10件

Raspberry piでリモート・デバッグを試してみた [Raspberry Pi]

(2013.08.26)
”Raspberry piで動くJavaFXアプリケーションとPICをI2C(またはUART)で接続する”構想(<==妄想)の実現に向けて、着々と準備を進めています。今回はNetbeansを使ったJavaのリモート・デバッグを試してみました。

先ずは、Netbeansを使ったC/C++リモート開発環境と同じディレクトリ(Raspberry piのSambaディレクトリ)にJDK1.8.0-eaで”Hello world”プログラムを作成し、Netbeansで実行してみます。(<==これは当然動く)

次に、Raspberry piのコンソールから実行してみます。
$ java -jar dist/JNA_BCM.jar
Hello World!

PCのjdk1.8.0でビルドしたプログラムがRaspberry pi(のjdk1.8.0)で動きました。
(パチパチパチ~)

で、いよいよリモート・デバッグです。こちらのページを参考にしました。しかし、初めてやるときには色々問題が起きる訳で・・・
デバッガとターゲット・プログラムの接続が確立しません。
曰く”接続が拒否されました”
曰く”Time out ・・・”
曰く”Cannot assign requested address: JVM_Bind”

『そう言えば、Raspberry piのfirewallってどうなっているんだ?』
『raspi-configでsshを有効にして以来、何も触っていない・・・』

調べてみると こんな設定が見つかりました。
$ cat /etc/hosts.allow
shd: 192.168.2.0/24 127.0.0.0/8

そこで、こちらのページを参考にして、ローカル接続は何でも許可してみました。
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
Anywhere                   ALLOW       192.168.2.0/24

しかし、未だデバッガとターゲット・プログラムは接続出来ません。

tcpdumpで調べてみると・・・

$ sudo tcpdump -s0 -i eth0 -n port 8000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:35:17.045559 IP 192.168.2.109.35094 > 192.168.2.105.8000: Flags [S], seq 2523961733, win 14600, options [mss 1460,sackOK,TS val 17452084 ecr 0,nop,wscale 6], length 0
14:35:18.041014 IP 192.168.2.109.35094 > 192.168.2.105.8000: Flags [S], seq 2523961733, win 14600, options [mss 1460,sackOK,TS val 17452184 ecr 0,nop,wscale 6], length 0

どうやらPC側が応答していないようです。

『PC側にも8000番ポートの通信を許可する設定が必要か』

で、漸くtcpdumpにログがザラザラ~と流れ出しました。
--------------------------------------------------------
接続例 その1 Raspberry pi側をサーバにしてJVMを起動する
$ java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=y dist/JNA_BCM.jar

このときのNetbeans側の設定
2013_0826_1.pngコネクタ SocketAttachで接続する
--------------------------------------------------------
接続例 その2 Netbeans側をサーバにする
2013_0826_2.pngコネクタ SocketListenで接続する

このときのRaspberry pi側をクライアントにしてJVMを起動するコマンド
$ java -jar -Xdebug -Xrunjdwp:transport=dt_socket,address=192.168.2.105:8000,suspend=y dist/JNA_BCM.jar
--------------------------------------------------------

リモート・デバッガでブレークを掛けるとこんな感じになりました。
2013_0826_3.pngリモート・デバッガのブレーク

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

NetbeansのC/C++リモート開発環境で嵌った [Raspberry Pi]

(2013.08.21)
先日、Netbeans7.3.1のC/C++リモート開発環境を使ってRasmberry pi用のCプログラム開発環境を整え、Raspberry piのCライブラリ(これです)を見つけてインストールしました。

『ライブラリのblink.cでも動かしてみるか・・・』と軽い気持ちでblink.cを既存のプロジェクトに追加し、ビルドしてみると・・・

”必要なターゲット `//Raspberrypi/pidrive/netbeans_project/blink_test/blink.c' を make するルールがありません. 中止.”

ビルド・エラーを起こしました。
orz

nbproject直下のMakefile-Debug.mkが拙そうなのですが、自動生成されるので書き換えても問題解決しません。試しにlocalhost(<==Cygwin)で同じ操作をするとビルド出来ます。また、そのプロジェクト・フォルダごとRaspberry piに持ち込んでもビルド出来ることが判りました。

Raspberry piで操作したプロジェクトとCygwinで操作したプロジェクトの違いをdiffで調べると・・・

configurations.xmlに違いを見つけました。Raspberry piで追加した方はファイルがフルパスになっています。
2013_0821_1.pngtest.cを追加しでもconfigurations.xmlにはまだ反映されない

2013_0821_2.pngビルドするとフルパスでtest.cが追加され、ビルドに失敗する

configurations.xmlも自動生成されるのですが、こちらには”dont edit!”と記されていません。ファイルのパスをディレクトリ相対に修正してみると・・・

ビンゴ~!
ビルドが通りました。

2013_0821_3.png二箇所修正するとビルド出来る

試してみると、(ファイルの追加だけでなく)ファイルを削除してもconfigurations.xmlに結果が反映されないことが判りました。どうやらNetbeansのC/C++リモート開発環境はconfigurations.xml生成に不具合があるようです。

それにしても、こんな基本的な操作にバグが残っているというのはどういうことでしょう?
C/C++リモート開発環境の利用に不安を覚えます。

それとも、親族SNS管理人の操作に誤りがある?(<==その可能性は否定できません)

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

Rasmberry piのリモート開発環境を構築した [Raspberry Pi]

(2013.08.19)
WindowsにNetbeans7.3.1をインストールして、Raspberry piのリモート開発環境を構築しました。

最初はVirtualbox+ubuntuにRaspbian (armhf) cross compiling toolchain (これ)をインストールしてクロス開発環境を構築するつもりでしたが、途中で”Netbeansのリモート開発環境”のことを知り、方針を変えました。リモート開発環境では、ソース・コードをWindows上で開発し、コンパイルとビルドをRaspberry piで行います。

構築に必要なSAMBAサーバとSSHサーバは組み込み済みだったので、Netbeans7.3.1をインストールしてビルド・ホストとパス・マッパーを設定しただけでリモート開発環境が出来ました。作業にあったてこちらのページを参考にしました。<元ネタはこちら

ツール-->オプション-->C/C++-と辿り、ビルド・ホストの編集ボタンをクリックすると、ビルド・ホストとパス・マッパーの設定画面が表示されます。

2013_0819_01.pngビルド・ホストの編集画面

早速、サンプル・プログラムをビルドして、実行してみました。

------------------- 実行結果 -----------------------------
$ Arguments_1/dist/Debug/GNU-Linux-x86/arguments_1 1 2 3
Linux raspberrypi 3.6.11+ #474 PREEMPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU/Linux
Arguments:
0: Arguments_1/dist/Debug/GNU-Linux-x86/arguments_1
1: 1
2: 2
3: 3
$

------------------------------------------------
どうやら、ちゃんと動いているようです。
(ぱちぱちぱち~)

==========================================
追記
(2013.08.20)
パス・マッピングの設定で親族SNS管理人は一度失敗しました。
ここにちゃんと書いてあるのですが・・・)

パス・マッパーで指定するフォルダは個々のプロジェクト・フォルダ(<==例えばArgment_1)ではなく、その一つ上(<==例えば/netbeans_projects/Argument_1なら/netbeans_projectの方)です。

最初、一つ目のプロジェクト・フォルダ自体(<==Wlecome_1)をパス・マッパーで設定しても動いたのですが、二つ目のプロジェクト(<==Argument_1)で破綻しました(パス・マッパーの設定をArgument_1に変更出来ない)。

説明(これのパス・マッピングの所)を読み直して、設定を/netbeans_projectsに変更(<==この変更は受け入れられた)して、無事二つ目のプロジェクトも動きました。(やれやれ)
==========================================

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

Raspberry piの開発環境構築は手に負えない [Raspberry Pi]

(2013.08.16)
あれこれ手を尽くしましたが(やっぱり)自分には無理みたいです。

Raspberry piの”Midori”でWeb上の大きなファイルをダウンロードするのは時間が掛かります。そこで一旦Windowsマシンに必要なファイルをダウンロードしてから、Raspberry piの”sambaサーバ”に転送することにしました。(参考ページ

また、こちらの方のページを参考にして”apt-get”を使えるようにしました。

で、ここから”Linux ARMv6/7 VFP HardFP ABI”を持ってきてインストールし、ここに記された手順に従いRaspberry piでjavaFXのサンプル・プログラムを動かそうとしたのですが
-------------------------
pi@raspberrypi ~/javafx-samples-8.0.0-ea
$ java -cp StopWatch.jar Stopwatch.MainScreen
エラー: メイン・クラスStopwatch.MainScreenが見つからなかったかロードできませんでした
-------------------------
orz

で、サンプルは諦めて自分で書いたプログラムを動かすことにして、JDK 8への対応を謳っているNetbeans7.4βをインストールしました。ところが”JAVAFX SDKが見つからない”と言ってNetbeansにJAVAFXプログラムの開発を拒まれてしまいました。
???

で、ここの手順に従ってopenJFXの構築を試みたのですが、最初のステップで躓きました。

------------------------------
$ gradle tasks

FAILURE: Build failed with an exception.
* Where:
Build file '/home/pi/rt-7494a154c563/build.gradle' line: 578
* What went wrong:
A problem occurred evaluating root project 'rt-7494a154c563'.
> Unknown and unsupported build architecture: arm
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 1 mins 47.516 secs
------------------------------

2分間待たされて”armなんて知らん”と断られてしまいました。
orz

ここは大人しくjdk8の正式リリースを待つことにします。

それにしてもRaspberry piで動かすNetBeansの遅いこと!CPU使用量モニタが100%に張り付いてます。
正式版のNetbeans7.4では改善していると良いなぁ~

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

Raspbianのウィンドウをリモート表示してみた [Raspberry Pi]

(2013.08.13)
TeraTermでリモート・ログインできるようになり、扱い易くなったRaspberry piですが、PCでRaspbianのデスクトップ画面が確認出来れば、JavaFXプログラムの開発も楽になります。

そこでRaspberry piのウィンドウをPC画面に表示する方法を調べてみました。

”PC上のXサーバから、Raspberry piのXクライアントにアクセスする”ことができれば良い訳ですが、どうすればそれが実現するのか・・・

この辺りの操作は”うろ覚え&行き当たりばったり”で、毎回試行錯誤の繰り返しです。

”export DISPALY=192.168.*.*:0.0”やら
”xhost +192.168.*.*”やら
”ssh -Y pi@192.168.*.*”やら
あれこれ呪文を唱えてみるのですが、なかなか上手く行きません。

半分諦め掛けたところで、このページこのページこのページの合わせ技でなんとか実現出来ました。

手順をまとめるとこんな感じです。
(1)PCにcygwin+openssh+Xwindowをインストールする。
(2)cygwinのXサーバを立ち上げる
 C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
(Cygwinのコンソールで)
==> $ xinit
(Cygwin/Xウィンドウ内のコンソールで)
==> $ twm &
-------------------------------
2013.08.14
Cygwinのウィンドウ・マネージャは動かさなくて(動かさない方が)良いことが判りました。
-------------------------------
(3)Raspberry piのXアプリ(lxsseion)を起動する
(Cygwin/Xウィンドウ マネージャのコンソールで)
==> $ ssh -Y pi@192.168.*.* lxsession

2013_0813_1.pngRaspbianウィンドウのリモート表示

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

Raspbianをインストールしてみた [Raspberry Pi]

(2013.08.12)
手配したパーツが揃ったので、Raspberry Piを動かしてみました。
勝手が判らず、暫くジタバタしましたがなんとかここまで辿り着きました。

2013_0811_5.png1024x768のウィンドウで日本語表示

<用意したもの>
AJ-346 [充電器 microUSB用]
"HDMI to VGA (D-SUB) 変換 アダプター
Raspberry Pi Type B
SDHC 8GB CLASS4
USB MOUSE
USB 日本語KEYBOARD

2013_0811_1.png購入した物
インストール前の準備については、このページが比較的良くまとまっている(ただし英文)ようです。
http://www.themagpi.com/en/issue/02

インストール作業は、公式サイトのquick-start-guide(これです)に従って進めました。

<予め必要なプログラムとデータをダウンロード>
SDFormatter.exe(これです
NOOBS_V1_2_1.zip(これです
2013-07-26-wheezy-raspbian.zip(これです
Win32DiskImager.exe(これです

SDFormatter.exeでSDカードをフォーマットし、Win32DiskImager.exeでwheezy-raspbianのimageファイルを書き込みました。

----------------------------------
Raspberry PiはNOOBSの利用を推奨(NOOBS_V1_2_1.zipを展開したフォルダのファイル一式をドラッグ&ドロップでSDカードに書き込む方法)していますが、(ここから)必要なImageファイルを持ってきて書き込む方法でも良い(結果に違いはない)ようです。
----------------------------------

Raspberry PiにMOUSE、KEYBOARD、HDMI-VGAアダプタ、ディスプレイ(コンセント未接続)、電源アダプタ(コンセント未接続)を接続しました。

その後、ディスプレイのコンセントを接続し、ディスプレイの電源ON、最後にRaspberry Piの電源アダプタのコンセントを接続します。
(最後にRaspberry Piの電源を入れるのが重要なポイントらしい)

赤色LEDが点灯し、次いで緑色LEDが点滅して、Raspbian “wheezy”のインストール初期化処理が始まり(画面を文字列がスクロールし)ます。

インストールが終わると、raspi-configの画面が表示されます。
2013_0811_2.pngraspi-configの画面
ここでDefaultのLocaleをjp_JP.utf-8にしてTimezoneをAsia->Tokyo、KeyboardをGeneric-105->japanに設定しました。(設定は、後から$ sudo raspi-configでやり直せる)
2013_0811_3.png終了するとプロンプトが表示される

画面がVGA(640x480)サイズですが、Xウィンドウを起動してみました。
$ startx

2013_0811_4.pngXウィンドウが動いた

その後、(こちらの方)のページを参考に、日本語フォントをインストールしました。

取りあえずの動作確認は無事終了しましたが、画面サイズの変更が上手く出来ません。

”/boot/config.txtの設定を書き換えれば良い”のですが、設定パラメータをどのように設定すれば良いのか判りません。お試しで設定するとディスプレイが真っ暗になってしまったり、VGAのままだったり・・・

WEBを検索して、ようやく(この情報)に辿りつきました。
http://elinux.org/RPi_VerifiedPeripherals#HDMI-.3EVGA_converter_boxes

framebuffer_width=1024
framebuffer_height=768
hdmi_drive=2
hdmi_group=2
hdmi_mode=16
hdmi_force_hotplug=1
disable_overscan=0

適切なものかどうか判りませんが、何とか1024×768で表示出来るようになりました。
ヤレヤレ

<ご注意>
/boot/config.txtの設定を間違えてディスプレイに何も表示されなくなったとき、SSHでログイン出来ないと手も足も出なくなってしまいます。(OSをインスト-ルし直すしかない)
SSHでログイン出来れば、/boot/config.txtの設定を元に戻すことも(別の設定を試すことも)簡単です。
/boot/config.txtの設定を変更する前に、SSHでリモート・アクセス出来るようにしておくことをお勧めします。

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

ちょっと、早まったかもしれない [Raspberry Pi]

(2013.08.09)
まだ、何も始まっていない”Raspberry Pi”に振り回され、一喜一憂しています。

昨日の夕方(18時直前)、RS-COMPONENTSに注文した”Raspberry Pi”が今朝(9時前)に届きました。このスピード感には圧倒されますが、早速”Raspberry Pi”が手に入ったのは嬉しい!
(ぱちぱちぱち~)

多くの先達(こちらの方こちらの方)の知恵に学び、妄想が少しずつ、具体化していきます。

ところがJAVAについて確認していて・・・

Oracle、Linux ARM用JDKリリースの記事
”このJDKリリースは、新興のARMサーバ市場や、BeagleBoard、PandaBoard、Raspberry Piといった開発用ボードコミュニティを狙っています。この移植版では、ARMv6およびv7用の32ビットバイナリが提供され、これはSwing/AWTやクライアント(C1)およびサーバ(C2)の両コンパイラをフルサポートし、多くのLinuxディストリビューションで実行可能です。”

昨日は、ここまで読んで、”Raspberry Pi”を発注したのですが、直ぐ後にこんな一文が続いていました。

”一つ注意すべき点は、現在のバイナリはsoftfloat ABIだけなので、例えばRaspbianディストリビューションのようなhardfloat ABIを使うものでは動作しないことです。今後のJDKリリースでは、hardfloatサポートの追加、そしてARM版JavaFXのサポートも予定しています。”

『Raspbianでは使えない!』 (<==他のOSなら動くのか?)
『ARM版JavaFXはサポート予定!』 (<==ノック・アウト)
orz

大きく膨らんだ妄想が一気に萎みました。

すがる思いで検索を掛ける(”JAVAFX Raspberry Pi”)とこんなのページ(”Raspberry Pi で JavaFX”)やこんなページ(”OpenJFX on the Raspberry Pi”)が見つかりました。

『な~んだ、出来るんじゃないか!』
『JDK-8を使うのか』

どうやら、β版のJAVA 8を使うようです。
ちょっと早まった感じですが、何とか先に進めそうです。

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

妄想に取り付かれRaspberry Piを手配した [Raspberry Pi]

(2013.08.08)
ちょくちょく話題に上る”Raspberry Pi”(これです)のことか気になり、調べてみました。

”RAMが512MBかぁ~”
”GPUも搭載しているんだ、GPGPUは出来るのかなぁ~?”
"UART以外に、SPIやI2Cもあるということは・・・"
”ステッピング・モーター・コントローラとつなげられるんだ!”

”USBマウスとUSBキーボーは、まぁ良いとして・・・”
”うむむ、電源はmicroUSBで700mA以上!”
”ビデオ出力はHDMI!”
”古い液晶ディスプレイを使いたいんだけど・・・”

親族SNS管理人の抱いた妄想は・・・

”Raspberry PiをPICのビデオ・アダプターとして使う”というものです。
”Raspberry Piに接続したディスプレイ”はXYステージのコンソールとして十分です。ARMでもJDK7が動く(これを見つけました)ので、JAVAFXプログラムがそのまま使えるかもしれません。

一気に妄想が膨らみ、先ほど(Webで)発注してしまいました。

妄想爆発か?
それとも後悔の嵐か?
今週末が楽しみです!

にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感
- | 次の10件 Raspberry Pi ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。