Dropbox

AndroidをNokia N900に入れてみた

本当に入れてみただけの状態です。まだまだ動かない機能が沢山ありますし、動きもやや鈍いです。あくまでも実験的に入れてみようというものです。

導入自体はAutoinstallerというものがありますので、ひとつのプログラムを走らせるだけでMaemoとのMulti-bootな環境が自動的に出来上がります。MicroSDカードにパティションが切られますので内容の待避が必要です。私の場合MicroSDカードの使用量が少なかったためか、中身は消えてはいませんでした。

今現在も改良が続けられているプロジェクトです。詳しくは以下のページを参照ください。

http://www.nitdroid.com/index.php?title=N900

中国外の携帯電話契約にてローミングでネットワーク接続を行うと規制されているwebサイトなども閲覧できるという話を聞きました。で、ちょっと試してみることに上の画面はソフトバンクのSIMを使用して中国国内でローミングによる接続を行いIP Addressの所在を確認するwebサイトにアクセスしたものです。

IP Addressは日本国内にあるものが割り当てられています。ここから想像すると中国の携帯電話会社から日本の携帯電話会社までは何かしらの専用回線で接続しインターネットに出て行くのは日本国内になっているようです。これにより、例の規制は回避出来ていると思われます。

もちろん料金の問題がありますのでお手軽というわけではありませんが、ひとつの方法として覚えておくのも悪くはないでしょう。

先日購入したTransend Express Card SSDはThinkPad X200sに常時挿入して使用します。将来的にはX200sに内蔵したIntel SSD 80GBのスペースを補う目的でしようするかもしれませんが、当面は余裕がありそうです。ということで、最近ご無沙汰だったUbuntu Desktopを入れてみました。

別のUSBメモリーにUbuntu Desktop 10.04のLiveCDイメージを作り、そこから導入しました。その手順自体は特別なものではありません。手順については公式ドキュメントなどをご覧ください。ここでは、私の環境に依存することや、ちょっとしたヒントを列挙してみます。

[ パティション構成 ]

Ubuntu以外にもWindowsから使用するデータ用パティションも作成しました。結論から言うとデータ用パティションを基本区画、Ubuntuのルートとswapを拡張区画に配置しなければなりませんでした。

もともとExpress Card SSDはUSBメモリーとしてWindowsから認識されています。そのためWindows XPからはパティションを切ることはできません。全ての作業はUbuntuのインストーラーで行いました。

最初Ubuntuのルートを基本区画としデータ区画を拡張区画として最後に配置しました。その時は、Windows XPから見るとUbuntuのルート区画にドライブ・レターが変更不可能な形で割り当てられ、反対にデータ区画はドライブとして使用出来ませんでした。そのため、最初に書いたような配置を行いました。

[ ブート・ローダー ]

既定値のままUbuntuを導入すると最初のドライブである内蔵ディスクにブート・ローダーが書かれてしまいます。内蔵ディスクには手を付けず、ブートの切り替えはBIOS設定あるいは一時的なブートデバイスの切り替えで行います。

インストール画面の最後の方でAdvancedというボタンを押すとブート・ローダーをどこに書き込むかが選択出来ます。ここでExpress Card SSDを選択しました。

[ OpenVPN ]

VPN無しでやっていけない環境にいます。当面のこのUbuntuの使い道はAndroidの開発環境ですが、その構築にすらVPN等の手段が必要な場所にいます。

PPTPは最初から組み込まれていました。これでも構わないのですが好みによりOpenVPNを組み込みました。以下のコマンドを投入するとNetwork ManagerにOpenVPNが組み込まれます。単体のOpenVPNと違ってメニューから操作が出来て良い感じです。

sudo apt-get install network-manager-openvpn
sudo service network-manager restart

[ トラックポイントの中央ボタンを有効にする ]

既定値だと中央ボタンは役に立ちません。Windowsと同じようにスクロールする時に使うための設定がここにありました。

以下の内容で /usr/lib/x11/xorg.conf.d/20-thinkpad.conf というファイルを新規に作成します。

Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection

iPhone/iPad universal binaryのサンプル・コード

練習で作ったiPhoneとiPadの両方で走るuniversal binaryのテスト・プロジェクトを公開いたします。自分自身のテンプレートとして使うために極力シンプルなものにしましたので、容易に読み解く事が出来ると思います。細かいところまで正しいコードを書いているとは限りませんが大きな方針は間違ったものでは無いと思います。

[ コードの権利 ]
コードの大半はXcodeが作り出したものです。また、ごく標準的なものですので、私自身が権利を主張するようなものは何もありません。また、無保証での提供となります。ご自身の責任においてご利用ください。

[ プロジェクトの概要 ]
iPhoneで起動するとTableViewを表示し、クリックによりTextViewにNavigationコントロールにより遷移する標準的なiPhoneアプリ(DrillDownって言うの?)です。同じbianryをiPadで実行するとSplitViewにて同様の動作を行ないます。簡単なプログラムですが、実際のアプリケーションで行うようにデータはUIとは別の共通クラスにより提供するようにしています。

[ プロジェクト作成の概要 ]
Xcode 3.2.3 SDK 4.0.1を使用して作成しました。プロジェクト自体を公開していますので、全てはそれを見て頂ければ良いのですが、どうやってiPhoneプロジェクトからuniversalなプロジェクトに変更していったのかなどを理解いただくため大きなステップを紹介いたします。

< iPhoneアプリの作成 >
– 新規プロジェクトをiPhone用のNavaigation-based Applicationとして作成します。
– TableViewをタップした後に表示するTextView用のクラスとnibを’DetailViewController’として作成。ごく一般的な内容なので詳細はプロジェクトを参照ください。
– データを供給するクラス’MyEngineを作成。RootViewControllerに組み込みます。
ここまででiPhoneアプリとしては完成です。

< Universal Binary化 >
– ターゲット UniTest2を選びプロジェクト, 現在のターゲットを iPad 用にアップグレードする。この時’One Universal application’を選択する。
– UniTest2AppDelegateクラスのUINavigationControllerのプロパティをコメントアウトし代わりにUIViewControllerクラスのプロパティを作成します。元のMainWindow.xibの該当接続を貼り直します。
-> 起動時にiPhoneかiPadかでinfo.plistを参照しMainWindow.xibかMainWindow-iPad.xibが選択されま す。ただしWindowにviewを割付るのはAppDelegateクラスの中なので、ここの接続を正しく行う必要があります。
– 内容を表示するためのTextViewを含んだクラスおよびnibを’DetailViewController-iPad’という名前で作成する。’Targeted for iPad’オプションを忘れないように。このクラスはUIPopoverControllerDelegateとUISPlitViewControllerDelegateになります。クラス名はDetailViewController_iPadに成っているので注意。
– TableViewControllerのサブクラスとしてRootViewController-iPadというファイル名でクラスを作成します(クラス名はRootViewController_iPadになってしまうのでファイル名は別の方が良かったかも)。これはUISplitViewのtable部分のcontrollerになります。
– iPadで最初に表示されるviewを含むMainWindow-iPad.xibを作成します。MainWindow-iPadという名前はinfo.plistで既定値として指定されているものです。これにSplit View Controllerを追加し各種接続を行ないます。

先日ThinkPad X200sのHDDをSSDに換装したのに続いてExpress Cardに挿入するSSDを購入してみました。あまり使われることが無いのか、中国のお店で製品について説明するのにちょっと苦労しました。

購入したのはTranscendの32GBです。この製品にはUSB接続するためのアダプターが付属しているのでExpress Cardスロットを持たないPCとの間でのデータ交換も簡単に行なえます。

いずれ内蔵SSDがいっぱいに成った時の補助というのが主目的ですが、当面は余裕がありそうなのでUbuntuでも入れてみようかと思っています。せっかくのExpress Cardスロットが空いているのが寂しいという気持ちも大分あります。そういう意味ではThinkPad X200sにはSDカードスロットもあるので、次はSDHCカードかなぁ。 🙂

普段はベンチマークとか取らないのですがExpress Card接続は初めてなのでCrystalDiskMark 3.0にて計測してみました。以下、その結果です。比較のために内臓のIntel製SSDの結果も併記しました。ちょっと予測と違ったのはExpress CardとUSBポート接続の数値がほとんど同じで有ったことです。Express Cardだと内蔵したままに出来るくらいのメリットしかないですね。

== 内蔵SSD ==
———————————————————————–
CrystalDiskMark 3.0 (C) 2007-2010 hiyohiyo
Crystal Dew World : http://crystalmark.info/
———————————————————————–
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]
Sequential Read :   259.420 MB/s
Sequential Write :    86.673 MB/s
Random Read 512KB :   197.350 MB/s
Random Write 512KB :    51.493 MB/s
Random Read 4KB (QD=1) :    20.402 MB/s [  4980.9 IOPS]
Random Write 4KB (QD=1) :    26.206 MB/s [  6397.9 IOPS]
Random Read 4KB (QD=32) :    99.119 MB/s [ 24198.9 IOPS]
Random Write 4KB (QD=32) :    45.499 MB/s [ 11108.1 IOPS]
Test : 1000 MB [C: 42.1% (31.4/74.5 GB)] (x5)
Date : 2010/08/14 12:34:33
OS : Windows XP Professional SP3 [5.1 Build 2600] (x86)
== Express Card接続 ==
———————————————————————–
CrystalDiskMark 3.0 (C) 2007-2010 hiyohiyo
Crystal Dew World : http://crystalmark.info/
———————————————————————–
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]
Sequential Read :    32.379 MB/s
Sequential Write :    25.117 MB/s
Random Read 512KB :    31.964 MB/s
Random Write 512KB :    22.205 MB/s
Random Read 4KB (QD=1) :     6.299 MB/s [  1538.0 IOPS]
Random Write 4KB (QD=1) :     1.920 MB/s [   468.8 IOPS]
Random Read 4KB (QD=32) :     7.050 MB/s [  1721.2 IOPS]
Random Write 4KB (QD=32) :     1.653 MB/s [   403.5 IOPS]
Test : 1000 MB [D: 6.5% (1.9/30.1 GB)] (x5)
Date : 2010/08/14 12:48:07
OS : Windows XP Professional SP3 [5.1 Build 2600] (x86)
== USB接続 ==
———————————————————————–
CrystalDiskMark 3.0 (C) 2007-2010 hiyohiyo
Crystal Dew World : http://crystalmark.info/
———————————————————————–
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]
Sequential Read :    32.738 MB/s
Sequential Write :    25.502 MB/s
Random Read 512KB :    32.342 MB/s
Random Write 512KB :    23.096 MB/s
Random Read 4KB (QD=1) :     6.328 MB/s [  1544.9 IOPS]
Random Write 4KB (QD=1) :     1.954 MB/s [   477.0 IOPS]
Random Read 4KB (QD=32) :     7.083 MB/s [  1729.2 IOPS]
Random Write 4KB (QD=32) :     1.663 MB/s [   406.1 IOPS]
Test : 1000 MB [D: 6.5% (1.9/30.1 GB)] (x5)
Date : 2010/08/14 13:02:42
OS : Windows XP Professional SP3 [5.1 Build 2600] (x86)

電脳中心買物隊のレザーケース

ちょっと話題的には遅れていますが、電脳中心買物隊のレザーケースを使い始めました。詳しいことは販売ページを見ていただくのが良いと思います。

最初はiPhone 3GSを入れてみたのですが、やはり未だ普段使いのNokia E63を入れてみました。これまた、ぴったり収まります。最初はキツイような感じがしますが、すぐに馴染みました。

ICカード収納ポケットはまだ試していません。近いうちに上海の交通カードを入れて試してみます。

2010/08/17追記) 上海の交通カードを入れてE63と共に使ってみました。ほぼ問題なく使用出来ています。これでNokia E63も気分はお財布ケータイです。

ソフトバンクの海外パケットし放題は海外ローミング中のデータ通信料金を定額に収める画期的なサービスです。従来のローミング中のデータ通信は帰ってみるまで料金が分からない、かつ個人利用はとても出来無い高額なものでした。そういう意味で、正しく運用すれば金額が事前に予測できますし現地用の端末だのSIMだのを準備する必要が無いのは便利なことでしょう。海外在住者には関係のないことですが、、、

一つだけ落とし穴があります。それはローミング中に接続される現地の携帯電話会社によって定額になる場合とならない場合があることです。中国の場合、中国移動(China Mobile)と中国聯通(China Unicom)がローミングで接続できますが定額の対象になるのは中国聯通だけです。きっと接続先が違って従来の料金が請求されることもあるのではと人事ながら心配していました。

一昨日からサービスが開始され、私のソフトバンク版のiPhone(ローミング中、データ通信は未使用)に下のようなSMSが飛んできました。ソフトバンクさんもユーザに対して注意を喚起するための努力をなさっているのが良く分かります。左が定額対象外の中国移動に接続された時、右が定額対象の中国聯通に接続された時にやってきたSMSです。

中国では北京についで二店舗目のアップルストアが上海に出来ました。オープンして三日目の今週月曜日に少しだけのぞいてきました。

店内はゆったりとしていてデモ機の数は豊富です。左の写真は、ほんの一角です。iPhoneやiPodも何十台という単位で置いてあります。

Apple製品の購入を検討する際に現物を思う存分吟味出来るのはありがたい事です。今までも家電量販店なとせApple製品をデモしている場所はありましたが、やはり規模が違います。

あと、何と言ってもGenius Bar(中国語では天才吧と言います。吧はバーの音訳)が身近に出来た安心感は大きいです。これで安心してApple製品を使え事が出来ます。

Windows XPをまるっと引越しする

仕事で使用しているThinkPad X200s、貸与品にも関わらず勝手にSSDに換装してみました。

元のHDDは160GBをひとつの区画として構成されています。それをSSD 80GBにコピーしようというのが目的です。実際に使用されているのは25GBほどなので容量的には余裕なはずですが、HDD容量が小さくなる場合の手順、あるいはツールはなかなか見つかりません。一ひねり(といっても大した事ではないですが)必要でした。

最初はrobocopyでファイル単位のコピーを試みましたがXPは立ち上がるものの何か足りない様子で一部アプリケーションが上手く動きません。そこでntfscloneによるイメージでのコピーを行うことにしました。ただしntfscloneではパティションが小さくなるようなコピーは出来ません。ということでパティション・サイズの変更も併用してみました。

[ 準備 ]

PartedMagicなSDカードWinPEなSDカードとWindows XPの起動ディスクです。

SDDはバティションを作ってアクティブ化を行っておきました。また一時的にイメージをコピーするための160GB以上の容量を持つHDDを用意しました。それもパティションを作って置きます。

[ 大きなHDDにイメージ・コピー ]

元々使用していた160GB HDDのパティション・サイズを小さくしても同じことなのですが、流石にオリジナルのHDDを弄ってしまうのは危険なので、たまたま持っていた3.5inchの大きなHDDをUSB接続してイメージ・コピーを行ないました。

イメージ・コピーはPartedMagicに搭載されているClonezillaで行ないました。詳細はケースによって異なるので書きませんが、特別なオプション等は無しで単純にパティションからパティションへのコピーを行ないました。

[ HDDのパティション・サイズを変更 ]

上でイメージ・コピーした先のHDDのパティションを目標であるSSDのサイズより少しだけ小さめなパティション・サイズに変更しました。PartedMagicのGnome Partition Editorでグラフィカルに行えますので、迷うことは無いでしょう。

[ SSDへのイメージ・コピー ]

Clonezillaにて上のHDDからイメージ・コピーを行ないました。

[ SSDのパティション・サイズを調整 ]

Clonezilla (実際はntfsclone)でコビーを行うとコピー先のパティション・サイズが元のパティション・サイズに成ってしまいます。安全を見て上のパティション・サイズの変更でSSDより小さめに設定したところ、SSDのパティション・サイズがそのサイズに成ってしまいました。しかもPartition Editorで見てもHDD上に余っている部分も無い状態で、普通とはちょっと違います。

このままでも使用できますが、少しだけ容量が小さいのがもったいないです。そこで使用したのがPartedMagicに入っているntfsresizeというコマンドライン・ツールです。

ntfsresize -i /dev/sda1 などとしてSSDの本当のデバイスサイズを知ります。それを元に新しいサイズを ntfsresize -s 80025M /dev/sda1 などとしてパティション・サイズを調整します。

[ トラブルシュート ]

SSDに載せ替えてブート出来れば良いのですが、なかなか簡単では有りません。

  • BIOSのメッセージでシステムが見つからないと言われる。
    恐らくはパティションがアクティブに成っていません。動いているWindowsシステムに接続してディスクの管理にて活性化(アクティブ化)する。もしくはThinkPad本体に内蔵した状態でWinPEにて以下のコマンドを実行する。

    • diskpart
      • select disk 0
      • select partition 1
      • active
      • exit
    • wpeutil shutdown
  • Windowsの壁紙は表示されるがデスクトップにアイコンが出ない(パスワードが設定されている場合はログイン画面も出る)。
    パティションにC以外のドライブレターが設定されていてユーザーに正しくログイン出来ていないと思われる。ディスクの管理にてパティションのドライブレターを外す。もしくはThinkPad本体に内蔵した状態でWinPEにて以下のコマンドを実行する。

    • diskpart
      • select disk 0
      • select partition 1
      • remove
      • exit
    • wpeutil shutdown

もう一つ現象は確認していませんがWindows XPのリカバリー・コンソールからfixbootコマンドを投入しないといけない場合があります。Windows XPのCDを起動し回復コンソールを立ち上げるのですが残念ながら我が家のXPが古くてThinkPad X200sでは立ち上がりません。今回は他のPCを利用して(白MacBookです)、パティションを確保した後にfixbootを念のために実行しておきました。それが有効であったかどうかは未確認です。

フリーなHDD関連ツールPartedMagic

パティションの変更やHDDやパティションのデータをフルバックアップ、コピーを行うフリーなツールPartedMagicを試してみました。Linux上で動くツール類をコンパクトにまとめたブートイメージです。USBメモリーなどからブートして手軽に使用することが出来ます。

ThinkPad X200sのSDカード・スロットからブートするためのセットアップ手順を紹介します。USBメモリーと手順としては同じです。

  • SDカード( 128MBあれば大丈夫)をFAT32でフォーマットしアクティブ化して置きます。
  • DownloadページからUSB用のパッケージをダウンロードします。
  • ダウンロードしたファイルを展開しSDカードにコピーします。bootとpmagicという二つのフォルダーがあると思います。
  • SYSLINUXのダウンロードページからパッケージをダウンロードします。
  • SYSLINUXパッケージを展開しwin32/syslinux.exeを取り出します。
  • Windows上で’syslinux -d \boot\syslinux -ma D:’などと実行します(SD cardがドライブD:と仮定)

以上でブータブルなSDカード版PartedMagicの出来上がりです。

ブートすると美しい画面で立ち上がります。基本的なツールはメニューに入っていますし、多数のコマンドラインなツールも含まれています。代表的なものはパティションを拡大縮小するPartition EditorとClonezillaというディスクをバックアップ、コピーするツールです。