So-net無料ブログ作成
検索選択

NetWalkerで色々やりたいこと [NetWalker]

さて、あいかわらずだらだらしていますが、ようやくNetWalkerでのソフト開発の前準備ができた感じです。ぼちぼちやっていくつもりですが、今やりたいと思っているのは、以下の内容です。

 ・タッチパネルの動作を正常化させたい。
 ・Sunbird をキーオペレーションできるようにしたい。
 ・MacOS X の Finder 風のカラム表示のファイラーが欲しい。

一つ目のタッチパネルなんですが、NetWalkerはタッチパネルの挙動が変です。具体的にどう変化と言うと、X軸で左方向への移動時とY軸で上方向への移動時に認識される座標の位置が飛び飛びになっています(解像度が低いと言う言い方をされている方もいましたが・・)。NetWalkerの購入時には、手書きメモとしての利用にかなり期待していたので、大きな誤算と言うか個人的にかなりダメージがでかいです。

で、これですが、おのおの逆方向では普通に細かい範囲で座標が認識できている様子なので、タッチパネル自体の問題ではないのでは?と思っています・・。その辺の仕組みが良くわかってないので、見当違いの可能性もあるかもしれませんが・・。タッチパネルのドライバは evtouch と言うものが使われているのがわかっています。そして、そのソースも公開されています。ですので、とりあえず、このソースでも眺めてみたいなぁとか思っています。ただ、その下にシャープ製のドライバがいるような気もしますし、そのあたりLinux のドライバの構成の知識が全くないんで、正常化するのはかなりハードルが高いんでしょうねぇ・・。

*

二つ目は Sunbird です。スケジューラはとりあえず、これを使ってるんですが、結構動きが重いです。また、キー操作に対応していないのが結構ストレスです。ペンが使えた方がいいのはそうなんですが、それだけじゃあ、面倒な時もあります。とくに NetWalker みたいにちょっと立ち上げて、ちょいちょいっと操作して、すぐにサスペンド。と言うような使い方をする場合、キー操作に対応していないとかなりつらいですね。大体、ペンが内蔵されてないし・・。と言うことで、こちらも何とかしたいんですが、これもかなり敷居が高いんでしょう・・。

*

で、最後にファイラーです。標準のファイラーは Windows のエクスプローラに似てますが、ちょっと異なります。で、Mac の Finder とは全く別物です(当たり前?)。Mac で最初に Finder をみた時はちょっと戸惑いましたが、慣れるとこれが使いやすいんですよね。と言うことで、最初の練習用のアプリはこれにしてみたいと思っています。ほんとは手書きメモ系のソフトを作りたかったんですけどね・・・。でも、前述の通り、NetWalkerはタッチパネルの反応が悪いので、手書きメモ系のソフトは作ったとしても使い物になりません。これ、ほんとにどうにかして欲しいんですけどねぇ・・。


以上、最初から破綻しそうな雰囲気が満々なんですが、とりあえずはこの3つを気の向くままに取り組んで Linux 上のソフト開発に慣れて行ければなぁと思っています。


【参考】
Linux-Touchscreen Driver for X
Sunbird のビルド

microSD上へのext2領域の作成 [NetWalker]

前回、本体ディスク上にソースを置こうかと思いましたが、それは怖いと言う記事をいくつか見たので、やっぱりmicroSD上にext2領域を作成することにしました。マウントはファイル・マネージャーで簡単にできることを期待します。

以前、Zaurusでも同じようなことをしたんですが、その時に参考にさせていただいたのページによると。32MBの領域の場合で「dd if=/dev/zero of=./extfile bs=1M count=32」とのこと。で、実際に作成するサイズですが、今のところmicroSDの空き領域が4.7GBとのことなので、多目ですが1GB確保することにします。

091117_make_ext2.png
約250秒かかりました・・・


で、そのイメージのフォーマットは「mkfs.ext2 ./extfile」と言う感じで「mkfs.ext2」コマンドを使用するようです。

091117_format_ext2.png
実際はmke2fsが起動される様子


さて、イメージの作成はこれでいいんですが、問題はマウントです。まずはマウントするためのマウントポイントとなるディレクトリを作成、その後、「mount」コマンドでマウントと言う形になるようですが、面倒です。また、起動時に自動でマウントするように設定もできるようですが、一時的にmicroSDを入れ替えた時の動作がちょっと気になります。

と言うことで、簡単にディスクイメージのマウント・アンマウントができるツールが無いかなぁと探してみたんですが、なんか無さげです。Mac なら「DiskImageMounter.app」と言うソフトでマウントポイントなども不要で簡単にマウントできるんですけどね・・・。仕方がないので、microSDのルートにマウント、アンマウント用のシェルスクリプトを作ることにしました。

中身はこんな感じ。

sudo mount -t ext2 -o loop ./extarea /home/[xxxx]/src
[xxxx]はアカウント名


ディスクイメージは「extarea」と言うファイル名で作成しました。また、マウントポイントとして、ユーザディレクトリの下に「src」と言うディレクトリを作成しています。

ファイル・ブラウザでこのスクリプトをダブルクリックをすると動作の選択肢が出てきました。その中から「端末内で実行する」を選択。

091117_run_shell_script.png
「実行する」なら、「端末」が表示されないのか?


シェルスクリプト内で「sudo」で「mount」を実行しているので、初回はパスワードを聞かれました。パスワードを入力。すると、マウントが成功し、デスクトップ上にディスクのアイコンが出てきました。

091117_diskimage_icon.png
アンマウントはGUIで可能??


ディスクイメージのアイコンが出てきたので、アンマウントはGUIでいけるのかと思い、アイコンを右クリック「アンマウント(U)」を選択したところ・・・。「fstab にありません(さらに、あなたは root ではありません)」と怒られてしまいました。ああ、そうですか・・。


091117_i_am_not_root.png
ひと言多い・・。と言うか、なんと言うか・・



仕方がないので、アンマウント側もシェルスクリプトを作成しました。

sudo umount /home/[xxxx]/src
[xxxx]はアカウント名


これで、マウント時と同様、シェルスクリプトをダブルクリックすることでアンマウントできます。多少面倒ですが、仕方がないか・・。


マウント先を Anjuta の作業ディレクトリとして登録、新規プロジェクトの作成、プロジェクトのビルド・・。ビルドが成功しました。と言うことで、これで作業を進めていくことにします。


【参考】
ext領域を作る - はけの徒然日記
Manpage of DD
ddコマンド使用について - Ubuntu日本語フォーラム
Manpage of mkfs
グラフィカルなマウントマネージャ3種類を試す page2
Mount Manager – User-friendly management of disks and partitions - ubuntu Geek

ディスクフォーマットと操作権限 [NetWalker]

なんとか、プロジェクトの実行ができる様になったところで、開発フォルダmicroSD上に移動させて、新たにプロジェクトを作成し直しました。それで、プロジェクトの構成をやり直したんですが、エラーが出てきました・・。

0910_anjuta_sd_error.png
アクセス権限のせい?


権限を確認したところ、私のユーザアカウントのみが「作成と削除」が可能で、後は権限なしになっています。行おうとしている操作が私以外の権限で実行されているのでしょうか?それとも、microSD上ではできない操作をしているんでしょうか・・? とりあえず、「ファイル・ブラウザ」でディレクトリの権限を変更しようとしたところ、変更できません。変更の権限が無いんか・・。

仕方がないので、「端末」から変更を試みて見ます。chmodを実行したところ、何もエラーは出ませんが、変更が効きません・・。う~ん・・と考えていたところ、そういえば、このメディアはFAT32のままでした・・。そのせいか・・???

0910_anjuta_sd_format.png
フォーマットし直すのは嫌・・


フォーマットし直しと言う手もありますが、いざと言う時にWindowsやケータイで利用できないと言うのは何とも歯がゆいですしねぇ。以前、Zaurusで行っていたんですが、FAT32のメディア上に ext3 の領域を作ろうかとも思いましたが、こちらはこちらでマウントを行うのが面倒なんですよねぇ・・。自動マウントをするとメディアを交換した時とかの制御がよくわからなかったですし・・。つまらないことで悩むのもなんなので、とりあえず、開発用のファイルは本体上に置くことにします。


と言う事で、また仕切り直しです。

GTK+プロジェクトの実行 [NetWalker]

仕切りなおしのため、Gtk+のプロジェクトを最初から作り直し、いきなり「ビルド」→「プロジェクトのビルド」でビルドをしてみました。で、「実行」→「実行」で実行です。

結果、ビルドは成功しましたが、「libglade-WARINIG **: could not find glade file 'src/gtk_test2.glade'」と起こられてしまいます。たぶんこれが原因でいくつか、エラーメッセージが出ていますが・・。

0910_anjuta_glade_error.png
gladeの環境設定がうまく行っていないのか??


ちなみに、無いと言われている「gtk_test2.glade」はちゃんと「src」以下に入っています。ちょっと検索してみたところ、「つまりソース内で定義したgladeファイルのパスが相対的なものであった場合、実行ファイルのあるディレクトリではなく、カレントディレクトリからの位置で探してしまっているみたい。」と言う情報がありました。ここによるとgladeのファイルの位置をフルパスで指定すれば、実行できたとか・・。

grepをかけてみたところ、「src/main.c」内にgladeのファイルを指定するマクロが定義されていました。ここをフルパスに変えてみます。

[src/main.c]
変更前#define GLADE_FILE "src/gtk_test2.glade"
変更後#define GLADE_FILE "/home/xxxxxx/gtk_test2/src/gtk_test2.glade"
※「/home/xxxxxx/gtk_test2/」はプロジェクトのディレクトリ


ここで、プロジェクトをビルドし直して「実行」。無事起動しました・・・・。

0910_anjuta_run.png
空のウィンドウが出現


起動したのはいいんですが、これが解決策か・・?先程のページの解決編では、固定パス指定の代わりに、実行中に動的に実行ファイルの位置を取得する方法をとっています。まあ、これで、アプリケーションをどこにインストールしても良くはなりますわな・・。これがほんとに解決方法か?と思って、調べてみましたが、これが解決方法の様です。

ちなみに、gladeのファイルって、単なるxmlで表記されているファイルみたいですね。これで自由にGUIをカスタマイズできると言う感じ。


これの位置を探すのって、一般的にはどうしてるんでしょうかねぇ?って、これが一般的なのか・・。


【参考】
Anjuta IDE マニュアル
libglade リファレンスマニュアル
手書きによるコーディングは必要ありません
gladeによるGUIの構築
いつも発展途上

Anjutaでの開発 [NetWalker]

Anjutaを使い始めてみます。最初はGNOME開発サイトのチュートリアルを見て行ってたんですが、肝心のAnjutaを使い始めるところで、指定されているメニュー「Build」が出ていません。

0910_anjuta_menubar_default.png
ビルド、ビルド・・・


チュートリアルの内容を読み進んでいると、どうも既にプロジェクトが存在していることが前提になっている気がしたので、プロジェクトを新規作成してみました(「gtk-test」と言う名前で作成)。すると、メニューに「ビルド」が出てきました・・。チュートリアルの順序が間違ってませんかね・・。

0910_anjuta_menubar_normal.png
出た


チュートリアルでプロジェクトの構成について、書かれていましたので、それを実行してみました。「ビルド」→「プロジェクトの構成」で下記のダイアログになりました。

0910_anjuta_configure_project.png
プロジェクトの構成


・・・チュートリアルでは「プロジェクトを再構成する」のチェックははずすように書かれています。で、「デバッグ」を選択するように書かれていたので、そうしたところ、自動で「Debug」と言うディレクトリがプロジェクトのディレクトリ以下に作成されました。で、「実行」。エラーが出ました。「configureが実行できない」とか。横のファイル一覧を見ても確かに「configure」と言うファイルは無いですね。「configure.ac」ならあります。

0910_anjuta_config_error.png
何が足りないのやら・・


試しに「ビルド」→「プロジェクトの構成」で、先ほどはずした「プロジェクトを再構成する」のチェックを入れたまま「実行」してみました。するとなにやら処理が走り始め何かが成功裏に完了したらしいメッセージが出ました。「configure」も出来上がっています。

0910_anjuta_config_success.png
何かが成功したらしい


チュートリアルでは続いて、メニュー構成が書かれていますが、多少違いがあるようです。で、プロジェクトの作成の項目に来ました。「Autotools」の説明が書かれていますね。先程「configure」が無かったのは正解の様です。「configure.ac」から「Autoconf」と言うツールを使って作成するそうです。で、この作成した「configure」は「Makefile.in」から「Makefile」を作成するとの事。確認したところ「Makefile」はまだできてませんね。も一つ「Automake」と言うツールにも触れられています。こちらは「Makefile.am」から「Makefile.in」を作成するとか。「Makefile.in」は既にできていますね。

0910_anjuta_makefile_not_found.png
Makefileだけ無いです


と読み進めていたら、やっとAnjutaを用いたプロジェクトの作成です。この文書の目的と私の目的がずれてる気がしますね・・。最初に読む文書を間違えましたか・・。まあ、いいか。

ところで、チュートリアルでは「一般(最小構成)」を作成しています。私は先程「GTK+」で作成してしまいました。これもまあいいか。ちなみに、「C++」のタブには「GTKmm」もあります。ちなみに、「SDL」なんかもありますね。クリックしてみると「SDLのサンプルを作成するプロジェクトです」とのこと。SDLのサンプルって良くわかってないんですが、GKT+のアプリとかの中で利用できないんですかね・・?

0910_anjuta_make_project.png
いろんなタイプがあります


・・・チュートリアルでは、ちゃっちゃ〜っとプロジェクト作成のメニューを進んで行って、「configure.ac」を見ろと言うところに来てます。

どうしましょうかね・・。このチュートリアルはどちらかと言うと、IDEなどを使わずにLinuxを開発してきた人たち向けにIDEの便利さを紹介する様な目的で書かれたような気がします。今は楽するためにIDEをいきなり使い始めたので、そこまで細かい話は必要に感じていません。と言う事で、なんか迷走気味なので、今回はここで置いときます。

NetWalkerの開発環境のインストール [NetWalker]

前回、NetWalkerと言うか、GNOMEの開発環境について調べてみましたが、結局良くわからなかったので、とりあえず、前回出てきた内容で必要そうな物を入れて、後は足りない時に随時入れることにします。

まずは、「Anjuta」。必要なライブラリとかは依存関係で勝手に入ることを期待していますがどうでしょう。インストール指定をしたところ、下記の項目も必要だと提示されました。

anjuta-commonautoconfautogenautomakeautotools-dev
devhelp-commonexuberant-ctagsgettextguile-1.8-libsintltool
libdevhelp-1-0libgda4-4libgda4-binlibgda4-commonlibgda-sqlite
libgdl-1-0libgdl-1-commonlibgladeui-1-9libltd17-devlibopts25
libopts25-devlibtoollibwebkit-1.0-1m4patch


Synapticパッケージマネージャ上、「anjuta」で検索にひっかかる項目のうち、「anjuta-dev」「anjuta-dbg」「libdevhelp-1-dev」「devhelp」が残っています。良くわかりませんが、説明を読んでいたところ、デバグに必要な項目の様に書いている気がするので入れておきます。

「anjuta-dev」をインストール指定すると、下記の項目も同様にインストール指定されました。

build-essentialdebhelperdpkg-devg++
g++-4.3html2textintltool-debianlibart-2.0-dev
libatk1.0-devlibaudiofile-devlibavahi-client-devlibavahi-common-dev
libavahi-glib-devlibbonobo2-devlibbonoboui2-devlibcairo2-dev
libdbus-1-devlibdirectfb-devlibdirectfb-extralibesd0-dev
libexpat1-devlibfontconfig1-devlibfreetype6-devlibgail-dev
libgconf2-devlibgcrypt11-devlibglade2-devlibgnome-keyring-dev
libgnome2-devlibgnome2-devlibgnomecanvas2-devlibgnomeui-dev
libgnomevfs2-devlibgnutls-devlibgpg-error-devlibgtk2.0-dev
libice-devlibidl-devlibjpeg62-devlibmail-sendmail-perl
liborbit2-devlibpango1.0-devlibpixman-1-devlibpng12-dev
libpopt-devlibpthread-stubs0libpthread-stubs0-devlibselinux1-dev
libsepol1-devlibsm-devlibstdc++6-4.3-devlibsys-hostname-long-perl
libsysfs-devlibtasn1-3-devlibx11-devlibxau-dev
libxcb-render-util0-devlibxcb-render0-devlibxcb1-devlibxcomposite-dev
libcursor-devlibxdamage-devlibxdmcp-devlibxext-dev
libxfixes-devlibxft-devlibxi-devlibxinerama-dev
libxml2-devlibxrandr-devlibxrender-devorbit2
po-debconfx11proto-composite-devx11proto-core-devx11proto-damage-dev
x11proto-fixes-devx11proto-input-devx11proto-kb-devx11proto-randr-dev
x11proto-render-devx11proto-xext-devx11proto-xinerama-devxtrans-dev
zlib1g-dev


ファイル名を見ていると、どうやら、これで開発に必要なライブラリが網羅されている様な気がします。もしかしたら、入れ過ぎなんですかね・・。なお、「anjuta-dbg」他は未だインストールされていません。どうしましょうかね・・。

「anjuta-dbg」をインストール指定すると、他の依存関係は表示されませんでした。ついでに「libdevhelp-1-dev」を追加していすると下記の項目が依存する様子です。

libstartup-notification0-devlibwebkit-devlibwnck-dev
libxres-devx11proto-resource-dev


ついでに「devhelp」も指定しました。次の物が依存するとのこと。名前からドキュメント類ですね。

libatk1.0-doclibglib2.0-doclibgtk2.0-doclibpango1.0-doc


ライブラリ系は何が必要なのか良くわからないので、次に「Glade」で検索をかけてみます。・・・こっちはたくさん出てきましたね・・。前回見たAnjutaの説明のページでは、Gladeは3.1.3以降と書かれています。「glade」と「glade-3」のどちらを選択すればいいんでしょうかね・・。分からないので、まずは「glade」をインストール指定してみました。すると、依存するのは下記の2つの様子。

automake1.4glade-common


上記だけでは、「glade-3」は入らない様なので、「glade-3」もインストール指定してみたところ、特に他の依存が見られませんでした・・。下の方を見て行くと「glade-gnome-3」と言うのもあるんですが、これはいらないんですかね?と思ったら、「glade-gnome」とか「glade-doc」もありますね・・。良くわからないので、「glade」と「glade-3」だけにしておきます。

なんだか良くわかりませんが、この辺でインストールはやめておいて、アップデートの確認をしておきます。が、特に何も出ませんでした。


さて、動くんかな・・。つづく。



ブログを作る(無料) powered by So-netブログ

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