リナザウでも SDHC を使いたい!

久しぶりに Amazon をのぞいてみたら非SDHCの4GSD (TS4GSDC)がついに品切れになってました。
もう手に入らないのかぁ。今となっては 2GSD じゃ物足りないしなぁ。SDHC使えるようにならないかなぁ。

Angstrom 環境(kernel-2.6)なら SDHC も使えるらしいので、純正環境(kertnel-2.4)でもドライバ次第で使えるはずなんですが、SD ドライバのソースが開示されていないので手も足も出ない状態です。

無謀にも kernel-2.6 からバックポートしようかなぁとも思ったんですが、ブロックデバイスのドライバは書いたことないし、SDHCの規格知らないし。。。
あと、うまくポーティングできたとしても、タスクトレイのアイコンと同期させるのは無理だろうし。。。
うーむ。

と、まぁ、以前からそんなことを考えてはいたのですが、ある日、SDHC のドライバを書いたことがある会社の先輩にSDHCについて何気なく聞いてみると、「SDとSDHCは初期化位しか差はないよ。あとはほとんど同じ」と言われました。

え?まじ? 初期化だけごまかせればいいってこと?
それくらいなら Binary Hack で何とかなるかも?? <- 無謀 ^^;

ということで、今月の初めくらいからtetsuさんのとこで配布されている4GSD対応SDドライバの解析を始めてみました。少しずつですが解析が進んでいるのと、ちょうど最近コメントでSDHC関係の書き込みがあったりしたので、4GSD へ ipk インストールの道シリーズのように経過を書いていこうと思います。

あ、解析の結果、ダメだったという可能性もありますので、あまり期待せず、ゆるーく見守っていただけるとありがたいです (^^;

まず、必要なものを集めます。

まずSD AssociationからSDHC の簡易仕様書がダウンロードできます。簡易仕様書ではSDHCドライバは書けないと勝手に思っていたのですが、そんなことはなく、ちゃんとすべて書いてあるようです(と前述の先輩が言ってました)。英語だからってちゃんと読んでなかったのがバレバレです。

あとは参考になりそうなのが、Angstrom の kernel 2.6 カーネルです。kernel 2.6 用ではありますが、PXA270のちゃんと動作するドライバのソースはとても貴重です。

Angstrom はカーネルだけポンと取得することができない(沢山パッチを当てて最終ツリーになる)ので、bitbake 環境を構築する必要があります。ここを参考に作業します。
カーネルツリーだけが欲しいので、最後の bitbake コマンドは以下のように linux-rp で実行します。

$ bitbake linux-rp 

とりあえず、最低限ですが、情報元は準備できました。次回からはドライバを解析していきます。

qgmap-0.2.0 リリース (続き)

qgmap 0.2.0 リリースの続きです。
昨日書いていたのですが力尽きてしまいました (^^;

カスタムPOI機能は、 ユーザが自由に位置情報を追加できる機能のことです。
本物のモバイルGPS機器ではPOIの検索等もできますが、今のところ表示と情報表示の機能だけ使えます。

カスタムPOIのフォーマットは、カンマで項目を区切ったCSV形式で、以下の順番で項目が並んでいます。

経度,緯度,名称,コメント

緯度、経度指定は小数点を含む度指定です。度.分秒指定ではありませんので注意です。

カスタムPOIの設定はメニューのカスタムPOIから行います。

メニュー
メニュー

CustomPOIをクリックすると、以下のようなダイアログが表示されます。

カスタムPOI設定ダイアログ
カスタムPOI設定ダイアログ

左から id , 表示の有無, 表示ズームレベル, 名前とアイコンが表示されます。
「表示」のチェックアイコンをクリックすることで表示の有無を切り替えることができます。

「追加」を押すと以下のダイアログが表示されます。

カスタムPOI追加
POI追加ダイアログ

上の「POI:」の欄にCSVファイルを指定します。
「Zoom:」 にはアイコンを表示するズームレベルを指定します。7の場合、ズームレベルが7〜0の時にアイコンが表示されます。
「Icon:」には表示するアイコンを設定します。「追加」ボタンからアイコンを追加できます。POIアイコンに指定できる画像は 16×16 ドットまでです。
「名前:」には、カスタムPOIの分類の名前を入力します。

OK を押下すると、カスタムPOIファイルを内部のデータベースに追加します。大量のPOIを登録する時は時間がかかり、固まったように見えますが処理しているので辛抱強く待ってください。
いずれ、プログレスバー表示をつける予定です。

ちなみに、データベースは /home/zaurus/Settings/qgmap-poi.db に作られます。
HDD機以外では内蔵フラッシュに書き込むので、空き容量に注意してください。いずれSD等の外部メディアに置けるようにしたいと思っています。

POIが表示されると以下のようにPOIファイルの座標の場所に指定したアイコンが表示されます。


POI表示

256x256dot の地図画像 1 枚あたりアイコンは 500 個まで表示できます。それを超えると以下のように「たくさんあるよ」アイコンが表示されます。

500個を超えると・・・

POIアイコンをクリックすると、そのアイコンが中央に位置するようスクロールし、以下のような情報表示ウィンドウが表示されます。

POI情報表示
POI情報表示

POIの説明文は改行を含むことができます。ただ、あまり多くの行は表示できないのでご注意ください。大体、名称3行、詳細3行くらいまででしょうか。

 

と、0.2.0 の新規機能の説明を駆け足で書きましたが、説明が下手なのでなんか複雑そうに読めるかと思いますが、使ってみればすぐわかると思います。

カスタムPOIのデータはGetLocInfoというソフトを使うとYahoo!電話帳などから簡単に作れるようです。(まだ使ってみてないですが^^;)

今回結構大幅な変更を加えたため、ミドルバージョンをあげて0.2.0にしてみました。
ただ、地図の描画をスレッド化するにあたり、本来はやってはいけない処理を行っているため、もしかすると若干不安定になっているかもしれません。

私が軽くテストした感じでは問題なかったためリリースしていますが、固まったり、落ちたりする可能性もあるので、そういった症状に遭遇した場合はコメントをいただけるとありがたいです。あまりに不安定な場合は元の処理にもどします。

0.2.x は POI 関係の機能を充実させようかなと思っています。例えば、名称検索や最寄りのPOI検索など。コンビニのPOIを入れておいて、最寄りのコンビニ検索とか、都内でスタバなどの最寄りのカフェ検索とかができたら便利かなーと。

SQLiteによるちゃんとしたデータベースを実装したので、POIとはちょっと違いますが、ようやく住所検索も実現できそうです。

少しずつ改良していきます。

新年のごあいさつ & qgmap-0.2.0 リリース

あけましておめでとうございます。
去年は色々と大変な一年でしたが、多くの方々に助けていただいた一年でもありました。
そのぶん、今年は少しでもいろいろな人のお役に立てればと思っています。
今年もよろしくお願いします。

ということで、2010年初リリースは qgmap 0.2.0 です。→ダウンロードページ

本当は冬休み前にリリースして、テストがてら自分でも帰省や旅行に使おうと思っていたのですが、間に合いませんでした ^^;

今回の変更点は以下の通りです。

  • カスタムPOI対応 (アイコン表示、クリックによる情報表示)
  • 地図描画のスレッド化
  • 地図座標表示

まず、カスタムPOIの最低限の機能を実装しました。
GARMINと同じ CSV 形式のカスタムPOIファイルを読み込ませ、アイコンを登録することで、地図上にアイコンを表示することができます。

カスタムPOI表示
カスタムPOI表示 (駅の位置に電車アイコンを表示)

また、地図上のアイコンをタップすることで情報表示を行うことが可能です。

POI情報表示
POI情報表示

今後は名前による検索や最寄りのPOI検索などもできるようにしたいと思っています。

また、今回地図描画周りを大きく変更しました。 地図のロードやカスタムPOIのアイコン描画を別スレッドで処理するようにしたので、描画中は「Loading…」と表示され、描画完了次第表示するようになりました。

この様子のスクリーンショットを撮ろうとしたのですが、うまく撮れませんでした。起動してみるとすぐわかると思います。

最後は、sugarware さんご要望の、座標表示(?)機能です。GM_Liteの「!」キー相当です。地図を追加ダウンロードする際に、down_imgs.pl に書く座標を表示します。
qgmapでは ! キー(Shift+1)がポジション保存で使用しているので、「Z」キーに割り当ててあります。

座標表示
座標表示機能

ちょっと長くなってしまったので、細かい使い方は次のエントリで書きたいと思います。

NetWalker買っちゃった

前のブログで「様子見」と書いていた NetWalker ですが、ついつい買ってしまいました。

Netwalker 買っちゃった

一番の理由は最近値段が下がったことです。辞書モデルが発表されたせいでしょうか、ちょっと値下がりした気がします。

発表当時から欲しかったものの、発売当時の 44,800円 という値段が物欲に打ち勝ち、買うまでは至っていなかったのですが、現在の kakaku.com の最安値で黒モデルが 30,650 円。約1万5千円ほど下がりました。

年明けたら3万切るかなー、そしたら買おうかなーと漠然と考えていたのですが、ヤフオクで当時のkakaku.comの最安値の約32,000円を下回る新品が出品されており、ついつい勢いでポチッとしてしまいました。

サイズ比較
歴代ガジェット(?)とサイズ比較 (SL-C1000/Netwalker/工人舎SH6)

サイズを比較するとZaurusより一回り大きく、一般的なネットブックより小さい感じです。両手で持って親指打ちするにはギリギリのサイズです。

この親指打ちが NetWalker を買おうと思った決め手でした。
私は電車通勤なのですが、基本的に立ちっぱなしで約1時間かかります。この時間がなんかもったいなくて、この時間を有効活用できればなぁと思っていたわけです。

それでNetWalkerなら、立った状態でもキーボードが使えるので、あわよくば開発もできるかも・・・と。

転職してから通勤時間が長くなったため、開発する時間が取りにくくて、最近めっきり開発が進んでいないので、これで少しは打開できるといいなぁ (^^;

NetWalker で Zaurus アプリの開発をする物好きは私くらいだろうなぁ。。

ちなみに、NetWalker を起動したらどこかで見た画面が・・・。

Netwalkerの起動画面

zaurus そっくり。ちょっとうれしい。


Google Maps w2.113 対応

Google Maps のバージョンが上がり、今までの down_imgs.pl ではダウンロードできなくなっていたので新たに対応した down_imgs.pl を作成しました。→ダウンロードページ

ファイル名を変えて GM_Lite 1.4 の bin/down_imgs.pl と差し替えてご使用ください。
機能的には変更ありません。今までどおりご使用ください。

ただし、注意として、既にダウンロード制限にかかってしまっている場合、対応済スクリプトを使ってもダウンロードできません。

制限が解除される間で1日程度待つか、グローバルIPを変更しないとダウンロードできるようになりませんのでご注意ください。

また、ダウンロード数を見て見たところ、古くて今では使用できないバージョンの down_imgs.pl をダウンロードされている方もいらっしゃるようで、紛らわしいため最新とその1つ前の down_imgs.pl 以外は公開をやめました。

最近の2つのバージョンがあれば変更点の差分も分かるので、この2つで十分かなと。