CLIE NR70とLinux

 browncat.org
  Top 
     >Palm Gadgetry 
     自宅サーバを立ち上げよう! 
     Linuxのページ 
     blog@browncat.org 
     wiki@browncat.org 
 Palm Gadgetry
     Top/日記 
       過去の覚え書き 
 HowTo
     FreeBSD+PalmIII 
     pilot-mailの使い方 
     with rta50i 
     Network HotSync with Unix 
>    CLIE NR70とLinux 
 Development
     gccでpalmware開発を 
     localizerの作り方 
     pilrc情報 
     Palmware開発ツールメモ 
       私家版pilot-template 
     Prc-tools情報 
     TRGpro Memo 
 Other
     Favorite Palmware 
     PalmOS3.3で気になること 
 Software
     My Palmwareの倉庫 
       MailViewer 
       PoplDA 
       TinyDAs 
       Dhrystone 
       DAManager 
       LockApp 
       Syncit 
 Social Bookmarks
 逆Links
  派楽天地 (中国語) 
  VAIO, Palm, Linux, 連珠... 
  AB+ (ABPlus.com) 
  Hoshi's Palm OS Page 
  わ〜ぱほりっく 
  Palmfan 
  Upup Palm Load! 
  (順不同.ご一報下されば追加します) 
 Contact
  このサイトの作者にMail! 
 Search

Sony CLIE NR70/VをLinuxで使うための情報です。 カーネル構築部分以外は以前のCLIEでも同じだと思われるので 今更なにを...といわれると思いますが...
間違いや勘違いなどありましたら、御指摘頂けたら幸いです。 (2002/3/30)

● はじめに

まずは簡単なSony CLIE NR70の紹介から。

  • 二つ折スタイル
  • キーボード搭載
  • 320x480の液晶画面
  • Dragon Ball Super VZ 66Mhz
  • RAM -- 16MByte
  • PalmOS 4.1
  • メモリースティック
  • USB接続

 

● このページは?

Linuxから、HotSync、USBでマウント、mp3データのインストールが 出来るまでの手順を私なりにまとめてみました。 環境は私の使っているKondara/MNU Linux 2.1。kernelバージョンは2.4.18です。 2.4.10以降の新しめのカーネルならば他のディストリビューションでも ほぼ同様かと思います。

  1. カーネルにパッチを当てて再構築する
  2. coldsyncを使う
  3. pilot-linkを使う
  4. USB Mass Storageとしてマウントする
  5. HotSyncボタン一発で同期する
  6. Linuxとppp接続してインターネットにつなぐ
  7. mp3の音楽を聞く
  8. その他

 

● カーネルにパッチを当てて再構築する

手を加えないままUSBに接続しても、そんなデバイス知らないといわれて、 Linuxは認識してくれません。 そこで、以下のような簡単な追加を行い、カーネルを再構築すると、 若干エラーっぽいメッセージは出ますが無事動作しました。 全くこれでOKかどうかは保証できませんが(^^;
webを見ていると、使っているkernelの差なのか、私と同じようなことをしても、 うまく動作しない方もおられるようです。
また、以下作業は全てrootで行ってください。

なを以下の修正はKondara開発用cvsのkernelバージョン2.4.18-48k以降に取り込まれています。

  1. cd /usr/src/linux/drivers/usb/serial
  2. visor.hにデバイスIDを追加する
    visor.h 29行から
    
     #define SONY_CLIE_3_5_ID                0x0038
     #define SONY_CLIE_4_0_ID                0x0066
     #define SONY_CLIE_4_1_ID                0x009a
          
  3. visor.cにも同様に追加
    visor.c 172行から
    
    static __devinitdata struct usb_device_id clie_id_4_0_table [] = {
            { USB_DEVICE(SONY_VENDOR_ID, SONY_CLIE_4_0_ID) },
            { USB_DEVICE(SONY_VENDOR_ID, SONY_CLIE_4_1_ID) },
            { }                                     /* Terminating entry */
    };
    
    static __devinitdata struct usb_device_id id_table [] = {
            { USB_DEVICE(HANDSPRING_VENDOR_ID, HANDSPRING_VISOR_ID) },
            { USB_DEVICE(PALM_VENDOR_ID, PALM_M500_ID) },
            { USB_DEVICE(PALM_VENDOR_ID, PALM_M505_ID) },
            { USB_DEVICE(PALM_VENDOR_ID, PALM_M125_ID) },
            { USB_DEVICE(SONY_VENDOR_ID, SONY_CLIE_3_5_ID) },
            { USB_DEVICE(SONY_VENDOR_ID, SONY_CLIE_4_0_ID) },
            { USB_DEVICE(SONY_VENDOR_ID, SONY_CLIE_4_1_ID) },
            { }                                     /* Terminating entry */
    };
          
  4. カーネルの再構築

    Kondara的な正式な方法は調べていないのですが(手抜き) おおよそ以下の手順で問題無く動作しています。 /(ルート)にvmlinuzがインストールされるっていうのはおかしいのは わかっているのだが...

    1. /usr/src/linuxに移動
    2. make dep
    3. make && make install
    4. make modules && make modules_install
    5. cd alsa-drivers-0.5.12a
    6. ./configure && make && make install
    7. mv /vmlinuz /boot/vmlinuz-2.4.18-10kown
    8. mv /System.map /boot/System.map-2.4.18-10kown
    9. mkinitrd /boot/initrd-2.4.18-10kown.img 2.4.18-10kown
    10. lilo.confに2.4.18-10kownを追加
    11. lilo

     

  5. 再起動

    新しいカーネルで再起動します。

  6. 確認

    無事立ち上がったら、クレードルをUSBに接続し、 CLIEを乗せてHotSyncボタンを押します。 /var/log/messagesに以下のようなメッセージが出ていたらOKです。

    
    Mar 30 23:50:27 hoge /sbin/hotplug: invoke /etc/hotplug/usb.agent ()
    Mar 30 23:50:27 hoge /etc/hotplug/usb.agent: Setup visor for USB product 54c/9a/100
    Mar 30 23:50:27 hoge kernel: usbserial.c: USB Serial support registered for Handspring Visor
    Mar 30 23:50:27 hoge kernel: usbserial.c: USB Serial support registered for Palm 4.0
    Mar 30 23:50:27 hoge kernel: usbserial.c: USB Serial support registered for Sony Cli??3.5
    Mar 30 23:50:27 hoge kernel: usbserial.c: USB Serial support registered for Sony Cli??4.0
    Mar 30 23:50:27 hoge kernel: usbserial.c: Sony Cli??4.0 converter detected
    Mar 30 23:50:27 hoge kernel: visor.c: Sony Cli??4.0: Number of ports: 2
    Mar 30 23:50:27 hoge kernel: visor.c: Sony Cli??4.0: port 1, is for Generic use and is bound to ttyUSB0
    Mar 30 23:50:27 hoge kernel: visor.c: Sony Cli??4.0: port 2, is for HotSync use and is bound to ttyUSB1
    Mar 30 23:50:27 hoge kernel: usb-uhci.c: interrupt, status 2, frame# 818
    
    
  7. /dev/pilotを作る

    pilot-linkなどがポート指定なしで使えるように "ln -s /dev/ttyUSB0 /dev/pilot" としておきます。

● coldsyncを使う

pilot-linkを使おうかと思ったのですが、開発版でしか対応していない様子。 まずは実績のあるcoldsyncを使ってみます。

ダウンロードしたら、解凍、configure & make ですんなりインストールできます。
次にホームディレクトリに以下のような内容で ".coldsyncrc" を作ります。 色の変わっているところは御自分の環境に合わせて下さい。


listen serial {
      device: /dev/ttyUSB0;
      protocol: net;
}

pda "all" {
    directory: "/home/hoge/clie/data";
    default;
}
    

使い方はこんな感じ

  1. coldsync -mI <- 初期化
  2. coldsync -v -mr <- インストール
  3. coldsync -v -ms <- 同期
  4. coldsync -v -mb <- バックアップ
  5. coldsync -h <- ヘルプ

注意としては、Palmにパスワードを入れるとsync出来なくなります。FAQによるとPalmOS3.5以降のものはダメだそうです。

● pilot-linkを使う

安定版のpilot-link 0.9.5はまだusbのデバイスには対応していませんが、 開発版の0.10.99には対応が入っているようです。

これもまた、解凍したらconfigure && makeでコンパイルします。 動作するかどうか分からないので $builddir/srcから直接試してみました。

 
 ./pilot-xfer -p /dev/ttyUSB0 -l
 

すると...見事にリストが出て来ました!
-fでデータベース指定でのfetchもできました。いい感じです。 次のリリースは0.11だそうですね。期待しておきましょう。
現状でもpilot-mailなども問題なく動作しており十分実用出来ます。

● HotSyncボタン一発で同期する

Linuxでは通常ホットシンクするためには、 HotSyncボタン押下、pilot-xfer起動の2ステップ必要です。 以下のようにすればHotSyncボタン一発に近いことが出来ます。

  1. /etc/hotplugにusbディレクトリを作成
  2. そこにvisorという名前で実行可能なスクリプトを作成
  3. visorスクリプトにpilot-xferなどを記述

HotSyncボタンを押下するとデバイス認識後、 visorスクリプトが実行されます。 スクリプトは/dev/ttyUSB0などが既に使える状態で実行されますので、 ここにsync用の記述やppp用の記述を入れておけばいいわけです。 ただしroot権限で実行されることにご注意下さい。 suコマンドやsudoコマンドとうまく組み合わせて使うといいと思います。

● Linuxとppp接続してインターネットにつなぐ

◎まずは設定から

設定はrootになって行います。

  1. /etc/pppの設定
    /etc/ppp/pap-secretsに以下の一行追加
    
    *  *   ""  <CLIEのppp用IPアドレス>
        
  2. Linuxのルーティング機能を生かす
    以下のコマンドを実行
    
    echo 1 > /proc/sys/net/ipv4/ip_forward
        
  3. CLIEの設定
    "環境設定"からネットワークを選び、新しいサービスとして以下の感じで追加
    • サービス: 適当
    • ユーザ名: ホストのアカウント名
    • パスワード: ホストのパスワード
    • 接続: クレードル/ケーブル

◎使い方

  1. CLIEからネットワークを接続
    1. "環境設定"の接続ボタン
    2. 使用するアプリの接続機能など
  2. linuxで以下のコマンドを実行
    
    /usr/sbin/pppd ttyUSB0 auth -chap +pap login
        ms-dns <DNSサーバのIPアドレス>
        <LinuxBoxのppp用IPアドレス>:<CLIEのppp用IPアドレス>

    proxyarp nodefaultroute idle 120 (実際には一行)

    指定するIPアドレスは使用しているマシンと同じサブネットの空いている アドレスにします。 これが嫌な方、出来ない方はnatなどが必要になりますので、 マニュアルや他のページを参考に頑張って下さい。

  3. 無事接続できたらOK

◎注意など

pppを切断してもLinux側のpppが残ってしまいます。 終了後pppdをkillして下さい。なぜかは解明できていません。 何度も繰り返すと接続できなくなることがあるようです。
ソースコードは見ていませんが、切断時にCLIE側のUSBシリアルのデバイスが 無くなってしまうのが問題のような気がします。

ちなみにpilot-xferでNetwork Hotsyncする方法が変更になっています。 事前にpi-csdを立ち上げておくのは同じですがpilot-xferでの 通信ポートの指定が以下のようになります。


    pilot-xfer -p .   -> pilot-xfer -p net:<LinuxBoxのアドレス>
    
● USB Mass Storageとしてマウントする

MSImport, AudioPlayerを使ってCLIE内のメモリースティックをLinuxからマウントできます。 私的には一番気に入った通信手段です。 母艦側に特別なソフト無しでmp3だけでなく、データのインストール/バックアップも出来ます。

ただし、若干不安定なようで、私の所のsmpマシンではMSImportを起動した瞬間カーネルが固まります。また、正常に動作するマシンでも、シャットダウン時にレジスタダンプしたり固まったりするようです。ご注意下さい。

  1. CLIE上でMSImportを起動、もしくはAudioPlayerから [メニュー]->[オプション]->[曲転送]を選びます。
  2. うちでは何故かここで一回母艦のfloppyがアクセスされます。
  3. dmesg などでUSB Mass Storageが認識されたことを確認
  4. /dev/sda1などというログを見付けたら
     
     mount /dev/sda1 /mnt/clie
          
    とします。

これで/mnt/clie以下にCLIEのメモリースティックがマウントされます。 つまりUSB接続のメモリースティックReader/Writerとして機能しはじめます。 後は、適当なファイルを普通にコピーすればOKです。ただし漢字のファイル名は 使わないほうがよいです。
コピーはLinux内でキャッシュされるので一見高速ですが、実際にUSB転送されていません。 念のためsyncコマンドを実行しておくといいかも知れません。シリアルより速いとはいえ、それなりに時間がかかるので気長にどうぞ。

メモリースティックのアクセス中にCLIEをクレードルから外したり、メモリースティックを抜いたりするとファイルが壊れる確率大です。 必ずsync & umount してからクレードルから外すようにご注意ください。

gnomeやkdeのデスクトップをお使いの方は/dev/sda1などをデスクトップに 貼り付けておくと、 CLIE側でソフトを起動してLinux側でデバイスの認識が出来たら、 クリックするだけで自動的にマウントして開くことが出来ます。 終るときには例えばKDEなら右クリックでマウント解除などとすればOKです。
バックアップにはコマンドラインからコマンドを叩いてもいいのですが、 音楽データや画像データの転送などにはこちらのほうが楽ではないでしょうか。

● mp3の音楽を聞く

午後のコーダとgripでリッピングしたデータを再生しようと思ったのですが、 素直にはいきませんでした。 私の使った午後のこ〜だ2.XXでは以下の問題がありました。

  1. 128Kbps、固定ビットレート、ステレオ、入力44.1KhzはOK
  2. デフォルトで作成されるジョイントステレオのものは再生できなかった
  3. VBRで作成したものも再生できなかった(?)
  4. 96Kbpsのものは再生できなかった

そこで新しいバージョンを入手します。

余談ですが、このソフト、情報処理学会で発表されたんですね。 素晴らしいです。
さて、上記ページを参考にインストール。以下のパラメータで起動するように gripなどを設定してリッピングします。


 gogo -m s -b 128 (or 96) infile outfile
    

前述のマウント手順でCLIEをマウントし、 $mountpoint/palm/Programs/msaudio/ にmp3のファイルをコピーします。 終ったらsync,umountして、AudioPlayerを立ち上げてみます。 無事に曲のリストが出て、再生できたら完了です。

  1. 96Kbps,128KbpsはOK
  2. VBRは未テスト
  3. ジョイントステレオは不可

となりました。電車の中で聞く程度なら96KbpsでOKでしょう。 128Kのメディアでバックアップ+辞書などのスペースを除くと、 アルバム2.5枚程度を持ち歩けます。

● NR70Vでの画像データ
マウントしてみればすぐに分かることですが、 NR70V内蔵カメラで撮った写真をMSに保存またはコピーすると $mountpoint/dcim/100msdcf/ にその写真が入ります。

以下Linuxとは関係ありませんが...

 
● バッテリーについて

今までPalmIII,TRGProと使って来たので、 普通に使っている限り電池は2週間〜1ヵ月程度持ちます。 忘れたころに無くなるという感じです。 PHSをチョコチョコ使ったりゲームにはまったり、 プログラム作成などでホットシンクしまくっても、 なんとか1週間程度はいけていました。 NR70はカラーで高速なCPUなので電池の持ちが悪い、とは事前に記事などで読んでいましたが、 はっきりいってかなり悪いです。

  1. MP3プレイヤ(通勤で1.5時間程度)+予定+メモ程度ならば1日で30%消費
  2. MP3プレイヤ(2H以上)同時にゲーム+予定+メモ+ホットシンクなどと使いまくると 夜にはMP3はおろか、バックライトすら付かなくなりました。
  3. 普通にPDAとして使うだけならば2〜3日以上はいけそうです

mp3再生時にHoldしておくと思ったより電池を食いません。
とはいえ、バッテリーが無くなってくるとバックアップもできなくなるので、 携帯電話のノリで毎日充電は欠かせなそうです。

● CF通信アダプタ

P-in Comp@ctを活用するため、CF通信アダプタ[PEGA-CF70]を導入。

利点は

  1. CFタイプの通信カードが使用できる
  2. 特に工夫無くアカウントの設定だけでさっくりmoperaにつながり Webブラウズ、メール受信ができました
  3. 速度はまあまあ
  4. CFメモリや無線LANカードは不可
  5. リチウムイオンバッテリを内蔵しており、 本体の補助バッテリとして使用可能
  6. 接続したまま通常のクレードルでHotSync,充電が出来る。また、 電源の接続コネクタがあるのでそこから給電出来る

特にNR-70はバッテリーが弱く、がんがん使いまくると 一日持たないので(5)は大きな利点となります。 使い込んでいませんが、容量が倍くらいになる感覚でしょうか。 少しは安心出来そうです。
ただし...

  1. 分厚くなる(1.5倍位)
  2. 重くなる(1.5倍位、感覚的には倍?)
  3. スタイラスの取り出し、ジョグダイアルなどの操作性が落ちる

もともと結構大きな印象のNR-70ですが、これを装着すると、約300g。 ずっしり重く、分厚くなり、 ワイシャツのポケットに入れるのは辛いものがあります。 スーツの内ポケットでなんとかという感じですね。 バッテリを補うためならば、乾電池アダプタか充電できるUSBケーブルを 入手したほうがよさそうです。

● 充電機能付き HotSyncケーブル

CLIE-NR70(V)は特に歴代Palmの中でも、 最も電池の減りが速いのではないかと思われます。
サードパーティから発売されている充電機能付きのHotSyncケーブルを使えば、 PCから充電できるようになり、とても安心です。 私も会社と家でHotSyncするために1本入手しました。

  • 軽くてかさ張らないので持ち運びも便利
  • CF通信アダプタを装着していても充電出来る
  • 純正HotSyncケーブルより安価

NRユーザ必携と思います。

でもちょっと気になることが。
電池の寿命って充放電の回数で示されていますよね。 CLIEで採用されているLion電池は大体500回の充放電で、 新品の約80%程度になるそうです。
また、フル充電状態で保存すると早く劣化するそうなので、 毎日 継ぎ足し充電を行うと、より早く劣化するのではないかと思われます。

毎日1回の充電だと1年4ヵ月程度で500回。 まあこれを越えても使えなくなる訳ではないのですが、 自宅と会社などで2回充電となると、これが半分になってしまいます。 となると1年もすれば、かなりヘタってしまうかも知れません
プログラムの作成/デバッグ中などは頻繁に付けたり外したりするので、 充電機能の切替えが出来たら嬉しいですね。

まあ、電池は消耗品と割り切ってしまえばいいのですが...


改定履歴
2002/5/2 レイアウト修正、画像フォルダ、電池など
2002/4/26 ppp関係の修正とルーティング追加など(Thank! itty君)
2002/4/22 ppp、hotplug、誤字修正など
2002/4/18 通信アダプタ
2002/4/12 mp3周りの情報修正
2002/3/30 作成


ご意見ご要望などは yamap@browncat.org まで
このページは以下のソフトウェアを使用して作成しました:
Kondara/MNU Linux,FreeBSD,XEmacs,Mule,jed,w3m,Netscape Communicator,MetaHTML,apache,jweblint,efstat,Namazu...
Thank you for visiting this page