2011年12月31日土曜日

Amazon Kindle Fire (6.2.1)のroot化とMarketのインストール

Kindle FireのブラウザであるSilkの性能を知りたかったのと、単純にタブレットがほしかったので、Amazon Kindle Fireを購入した。モノはIMPORT Collectionさんから購入。送料税込で21,800円なので、安いほうである。ほかのショップは20,000円程度に別途送料2,000~3,000円程度かかるところが多い。

通常のKindle Fireでは、アプリはAmazonが管理するストアからダウンロードされる。そのストアは日本国内からは利用できない。もし今後日本国内から利用できるようになったとしても、Android Marketで購入したアプリでも再度購入しなくてはならない(...はず。なぜなら、アプリを管理しているのがGoogleとAmazonで違うので)。そのため、root化してAndroid Marketをインストールした。

以下、その手順。

  1. PCにAndroid SDKをインストールして、adbコマンドを利用できるようにする。(参考URL
  2. root化する。今回Kindle Fireのバージョンを6.2.1にアップデートしてからroot化した。6.2.1ではSilkやタッチスクリーンの性能が上がっているらしい。root化の詳細手順はこちらのURLを参照
  3. Android Marketをインストールする。詳細手順は以下のURL参照
    http://forum.xda-developers.com/showthread.php?t=1349902
    http://www.redmondpie.com/how-to-install-android-market-on-kindle-fire-tutorial/
    Marketをインストールする際、root権限をサポートするアプリ(Root Explorer)を利用するのだが、よく例で示されるRoot Explorerは有料のため、代替を探さなくてはならない。今回は、File ExpertES File Explorerを利用した。apkファイルはそれぞれのリンク先から取得可能。

    3.0.PC上からadb install ○○○.apkを使って、 File ExpertとES File Explorerをインストール。
    3.1.上記URLにしたがって、GoogleServicesFramework.apkをインストール。
    3.2.Vending.apkをKindle Fireのどこかのフォルダに保存。
    3.3.File Expertを用いて/system/appのフォルダ権限をRead OnlyからRead Writeに変更。
    3.4.ES File Explorerを用いて、Vending.apkを/system/appに移動。
    本来File Expertだけにしたかったが、ファイルのコピーがうまくできなかったため、ES File Explorerを併用した。
    3.5.Vending.apkをインストール。
    3.6.再起動
    3.7.Android Marketをインストール。
    3.8.何かしらのランチャアプリをインストール。今回はGo Launcher EXをインストールした。
    3.9.Kindleで右下のホームボタンを押すと、アプリ選択画面が出てくるので、Go Launcher EXを選択。そうすると、Androidでよく見る画面が登場。

これでKindle Fireを通常のAndroid端末としても利用できるようになる。もちろん、別の端末で購入したアプリは再度支払うことなくインストール可能。ブラウザはSilkのまま。

2011年9月2日金曜日

Swingで日付設定

GUIから日付を選択する際、カレンダーから選べるようにするライブラリを調査。気軽に使いたいので、無償ライセンス、軽量ライブラリで探す。
今回はJDatePicker(無償ライセンスのもの)を利用

2011年8月2日火曜日

Open vSwitchを使ってOpenFlowコントローラに接続

Open vSwitchからOpenFlowコントローラに接続するには、まず、接続したい仮想スイッチを把握する。
# ovs-vsctl list-br
このコマンドで、今動作している仮想スイッチ(BRIDGE)の一覧が表示される。
各仮想スイッチに繋がっている仮想マシンや物理ポートを知りたい場合には以下のコマンドを実行する。
# ovs-vsctl list-ports BRIDGE

次に、OpenFlowコントローラに接続するために、接続したい仮想スイッチ(BRDGE)を引数に以下のコマンドを実行する。
# ovs-vsctl set-controller BRIDGE tcp:IPADDRESS
ちなみに、切断したい場合は
# ovs-vsctl del-controller BRIDGE
意外にすぐに情報が見つからなかったので、メモ。

接続できた場合でも、Open vSwitch側では特に何も表示されないので、接続できたか心配になる。
/var/log/openvswitch/ovs-vswitchd.logで、成功か失敗かを確認できる。
また、OpenFlowコントローラに接続してしまうと、その仮想マシン経由の通信は一度全て遮断される。これは、仮想スイッチのパケット転送制御の権限が全てOpenFlowコントローラに移譲されるため、OpenFlowコントローラから指定されなければすべてのパケットが破棄されてしまうからである。

(8月9日追記)
ちなみに、OpenFlowコントローラとの切断がきれると、普通のOpen vSwitchとして動作する。

2011年3月1日火曜日

livedoor × FON終了

タダで公衆無線LANが使えたFON_livedoor(FONとlivedoorの提携)ですが、2011年2月28日を持って終了したようです。
「FON_livedoor」サービス終了のお知らせ
ここ数日ルノアールで使おうと思ったのに使えなかったのは、サービスが終了したのが原因のようです。FONだけではまだまだ常用利用には耐え切れないため、有料のWi2を契約する予定。

2011年2月18日金曜日

domU(仮想マシン)がネットワークに接続できない

Xen Cloud Platform上で作成したCentOSの仮想マシン(domU)から外部ネットワークに接続しようとしたところ、pingが通らない。XCP(dom0)上から外部ネットワークには正常に疎通しているが、XCPから仮想マシンへは疎通しない。
Googleで検索し、こちらのサイトを参考に修正した。

まず、# ip route showを実行。
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.0
デフォルトルートが登録されていない。そこで、以下のコマンドを実行。
# ip route add default via 192.168.0.1 dev eth0
すると、以下のとおりデフォルトルートが登録され、仮想マシンから疎通できるようになった。
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.0
0.0.0.0 via 192.168.0.1 dev eth0

2011年2月8日火曜日

Xen Cloud Platform 1.0 betaへOpen vSwitch 1.1.0pre2をインストール

Xen Cloud Platform 1.0 betaが昨年11月に公開された。
http://www.xen.org/files/XenCloud/Software/xcp-1.0-beta/
MANIFESTをみると、Open vSwitch 1.0.2がインストールされている模様なので早速インストール。インストール自体はこれまでのバージョン同様得の問題なし。
ただし、DDKが提供されていないためOpen vSwitch 1.1.0pre2をインストールすることはできない。XCP1.0正式版を待たないといけないのだろうか。

2011年2月7日月曜日

Xen Cloud Platformで帯域制御

Open vSwitchを用いて制御する場合、sch_ingressモジュールが必要となる。
デフォルトのXCPではsch_ingressがカーネルで有効化されていないため、カーネルを再構築してsch_ingressを有効化する。XCPでは、DDK上でカーネルのRPMを作成し、dom0にインストールする。

1Mbpsに帯域制御するためのコマンドは以下のとおり。
(参考URL:http://openvswitch.org/?page_id=267

# ovs-vsctl set Interface tap1.0 ingress_policing_rate=1000
# ovs-vsctl set Interface tap1.0 ingress_policing_burst=100

これで送信レートが制限される。
設定するtapは、対応するvifから判断する。vifとXCP上のvif-idとの対応はovs-vsctl list interfaceを実行し、external_idsの項目から判断する。

帯域制御を解除する場合には、上記のコマンドを用いて0で上書きする。

2011年1月23日日曜日

XCP DDKのディスクサイズ変更

Xen Cloud Platform(XCP)のdomain0に対してドライバの導入等でコンパイルが必要なとき、domain0とは別に、DDKという開発環境が提供されている。しかし、このDDKはディスク領域が2GBしかなく、すぐに容量不足になってしまう。
XCP環境で仮想マシンのディスク領域を増加させる方法は以下のURLが参考となった。
http://support.citrix.com/article/CTX127096

2011年1月20日木曜日

Xen Cloud PlatformへBrocade CNAのドライバインストール

DCB(DataCenter Bridging)の試験用に購入したサーバにXCPをインストールしていたため、XCPのdomain0へBrocade CNA (Brocade 1010)のドライバのインストールを行った。
今回XCP0.5上にインストールを行ったが、おそらくCitrix XenServer5.6でも同様の手順でいけると思われる。

まずは公式サイトよりドライバファイルをダウンロード。XCPのdomain0にはX環境がないため、All DistributionではなくDriver Packagesから、Other Distributionsのファイルを選択。"Other Distributions"といいながら、提供されているファイルはRPMであるため、RPMが扱えるディストリビューションの必要がある。
ダウンロードしたファイルを展開し、実行ファイル(brocade_install.sh)を実行すると、
[root@localhost ~]# bash brocade_install.sh
Installing the Brocade driver 2.3.0.0 RPM's
ERROR: Install failure: no gcc and kernel-xen-devel-2.6.27.42 rpm
というエラーに。どうやらgccとkernel-xen-develのRPMパッケージが必要な模様。
とりあえず個別にRPMをインストールしようとすると、bfa_util_linuxのみ成功。
bfa_driver_linuxとbna_driver_linuxでgccとカーネルソースが必要らしい。
XCP環境ではdomain0ではなく、DDKにてgccやkernelソース等が提供されているため、早速DDK上でbfa_driver_linuxとbna_driver_linuxをインストール。DDKの利用方法はこちらのエントリを参照。
bfa_driver_linuxとbna_driver_linuxで追加されたモジュールは
  • /lib/modules/2.6.27.42-0.1.1.xs0.5.0.47.111160xen/kernel/drivers/net/bna.ko
  • /lib/modules/2.6.27.42-0.1.1.xs0.5.0.47.111160xen/kernel/drivers/net/bfaipfc.ko
  • /lib/modules/2.6.27.42-0.1.1.xs0.5.0.47.111160xen/kernel/drivers/scsi/bfa.ko
の3つであるため、これらをdomain0にコピーし、insmodにてインストールし、再起動したところ、新たにeth2というインタフェースを正しく認識した。ethtoolを実行した結果は以下のとおり。
[root@localhost ~]# ethtool eth2
Settings for eth2:
Supported ports: [ FIBRE ]
Supported link modes: 10000baseT/Full
Supports auto-negotiation: No
Advertised link modes: 10000baseT/Full
Advertised auto-negotiation: No
Speed: Unknown!
Duplex: Unknown! (255)
Port: FIBRE
PHYAD: 0
Transceiver: external
Auto-negotiation: off
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000004 (4)
Link detected: no
サポートするリンクが10GbEで認識されている。

正しくない手順ではあるが、とりあえずXCP上でDCBを利用できるようになりそう。