2012年3月2日金曜日

adb devices で no permissions のエラー

手元の ICONIA を gentoo から adb で操作しようと、以下実行
してみたところ、なんだか ? がいっぱいの no permissions だそ
うで。

 $ adb devices
 List of devices attached
 ????????????    no permissions

adb のサーバを無理くり root で実行するのもアリかもしれないが、
やっぱり自分のユーザでやりたいのでちゃんと設定しておく。
  1. /etc/udev/rules.d/51-android.rules を以下の URL の
    「Setting  up a Device for Development」を参考に作成。

    http://developer.android.com/guide/developing/device.html

    内容は dmesg で表示された idVender を設定する必要がある。
    ICONIA (Acer) は 0502 なので以下のようにする。

     SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666", GROUP="plugdev"
  2. 一応 udevd のリスタート

    $ sudo /etc/init.d/udev restart
  3.  で、adb のサーバリスタート

    $ adb kill-server
    $ adb start-server
  4.  そしたら adb devices がエラーにならないはず。

pk12util

pk12util は firefox の証明書ストア{に,から}コマンドで PKCS#12 を import, export
できるらしい。
gentoo の場合、package.use に以下追加で emerge すると入ってきた。

dev-libs/nss utils

2012年2月29日水曜日

ネットワーク経由で adb

Android 端末にネットワーク経由で adb するには以下の設定を root でする必要あり。

setprop service.adb.tcp.port 5555
stop adbd
start adbd

で停止は以下のようにポート番号に -1 を付与。

setprop service.adb.tcp.port -1
stop adbd
start adbd

一応 netstat で確認するとちゃんと 5555 の LISTEN が無くなってる。
これ、うっかり停止し忘れたら恐ろしいことになるな...
気休めだけど一応 5555 はやめておこう。

2012年2月21日火曜日

iPhone 3GS ios4.3.3 で mobileterminal

手元の iPhone 3GS ios4.3.3 は JB 済みではあるが、OpenSSH は入れていない。
なので大丈夫だろうと最近まで root と mobile のパスワードを alpine のまま
放置していた。

しかし、やっぱり不安なので変えることにした。passwd コマンドを実行すべく
cydia から mobileterminal を入れたのだが起動してもすぐ終わってしまう。
どうやら cydia にある mobileterminal は ios4 では動かないらしい。

じゃぁどうするか。sshd を動かしてリモートからログインすれば良いのだろうが
どうしても OpenSSH は入れたくない。

もともと FreeBSD な Mac なので /etc/passwd もとい /etc/master.passwd
を直接いじれば良いんじゃないかと思い、ifuse --root で rootfs ごと mount して
/etc/master.passwd を見ると、ありました。mobile と root のパスワードの
ハッシュが同じで以下のようになってた。

                        : (snip)
  root:/smx7MYTQIi2M:0:0::0:0:System Administrator:/var/root:/bin/sh
  mobile:/smx7MYTQIi2M:501:501::0:0:Mobile User:/var/mobile:/bin/sh
                        : (snip)

/s の salt の crypt ということで、openssl passwd -crypt -salt /s hoge で求
めた値を直接設定しちゃえと思たのだが、、、

ここでふと昔のことを思い出した。お客さんのところの Mac OS X の /etc/resolv.conf
を直接いじったのは良いが、なんだか名前解決できない場合があった。
で、結局 GUI から DNS サーバを変更して解決したことがあった。
→Mac OS でファイルの直接編集はヤバい?

なのでここはぐっと我慢して、いろいろ調べたところ、mobileterminalのβ版
が ios4 でも動くらしいという情報が Web にあった。

Installation - mobileterminal
http://code.google.com/p/mobileterminal/wiki/Installation

上記 URL には手動でインストールする方法も書いてある。Mac と Win だけだが。
しかし Mac の項を読むと、どうやら iphone の特定の場所に deb パッケージを
コピーして再起動しているだけっぽい。
# Cyberduck だの iFunbox だの Win や Mac の人は大変なんやね…(他人事)


まずは mobileterminal の 520_1 というバージョンを落とした。

 $ cd /var/tmp
 $ wget http://mobileterminal.googlecode.com/files/MobileTerminal_520-1_iphoneos-arm.deb
 $ sha1sum  MobileTerminal_520-1_iphoneos-arm.deb
 84410af6febf2065a2a7fabea49cd5b9f34575f9  MobileTerminal_520-1_iphoneos-arm.deb

んで、ifuse で --root マウント。

 $ ifuse --root /media/iphone

上記ドキュメントを読むと、/var/root/Media/Cydia/AutoInstall/ に deb を
コピーすればいいらしいが、このディレクトリが無い場合は作れと。

 $ mkdir /media/iphone/private/var/root/Media/Cydia/AutoInstall

で、コピー。

 $ cp /var/tmp/MobileTerminal_520-1_iphoneos-arm.deb /media/iphone/private/var/root/Media/Cydia/AutoInstall/

そしたら iphone を再起動。正常起動するかどうかちょっとドキドキした。
再起動後 mobileterminal のアイコンが画面にあった。
ちなみに /var/root/Media/Cydia/AutoInstall/ の下においた deb は無くなっ
てた。

あとは普通に passwd コマンドで mobile と root のパスワードを変えた。
あれ? mobileterminal ってどうやって終わらせるの? exit しても残ってる。
Web 調べるとタップホールドでメニューが出るらしいが、このバージョンは
駄目みたい。仕方ないのでホームボタンダブルクリックからプロセスブチ切り。

再起動後手元の Linux から find -mtime -10 とかして /etc やら /var の
下で変更されているファイルを調べてみたが、関連してそうなファイルは
/etc/master.passwd, /etc/passwd くらいしかなかったので、おそらく直接
編集しても良かったのかもしれないが…

まぁこれで一安心ということで。



2012年2月9日木曜日

no applicable action for [ImmediateFlush]

Shibboleth を 2.1 系から 2.3 系にアップデートしたら
なんだか以下のようなメッセージが catalina.out にぞろぞろと。

 INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
 INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
   :
 ERROR in ch.qos.logback.core.joran.spi.Interpreter - no applicable action for [ImmediateFlush], current pattern is [[configuration][appender][ImmediateFlush]]
   :

いろいろ悩んだが、logging.xml が古いバージョンのデフォルト
のままだった。新しいバージョンの shibboleth に付随している
logging.xml に入れ替えてOK。

2012年1月25日水曜日

gentoo に ICONIA A500 をマウント

我が ICONIA A500 ですが、どうも最近カーナビの役割しかしてない…
ICONIA で音楽聞きたくなったので、手元の音楽 CD を mp3 にして
これを Music フォルダに転送しようと画策。

# ちなみに CD -> mp3 は cdda2wav で wav にしてそれを lame で
# mp3 に。proxy じゃないと外に出られない環境だったので cddb
# の取得に苦労した... 結局 freedb.freedb.org:8880 をローカル
# ポートフォワードしちまった。

ICONIA を USB デバイスとして、我が X60 の Gentoo に接続して
まぁ usb-storage でフツーに見えるだろうと思い高を括っていた
ら、dmesg に出ない!

ちょっと調べたところ、どうも usb-storage でなく MTP でお話し
してるらしい。以下にやり方がまるまる載っとる。ubuntu だけど。

 Connecting via USB to Linux (Ubuntu)

というわけで上記 URL をまるまる参考にして mtpfs を入れること
にした。fuse でこんなのあったのね。知らんかったよ。


# 全然関係ないけど、もしかして我が家の Canon HF11 ももしかし
# て MTP?


 emerge mtpfs

  (mask されてるので、事前に package.keywords に要追加)

んで、lsusb で VendorID を確認。以下の出力ありで 502。

 Bus 001 Device 008: ID 0502:3325 Acer, Inc.

そしたら、/etc/udev/rules.d/51-android.rules を新規作成して
以下の行を追加。

  SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
で、マウントポイントの作成。
  mkdir /media/a500
でマウント。 
  mount -t fuse mtpfs /media/a500/
意外とあっさり出来た。 
# mtpfs がなんだか tmpfs に見える。 
 


 
 



# ちなみに初 CD は Retunr of The Headhunters でした。古!

abcde

これ知らんかった。Bourne Shellっつーのがアレだけど便利かも。

A Better CD Encoder
http://lly.org/~rcw/abcde/page/

と思ったらかなり古く本家は全然メンテされてないのね…
debian で地道にメンテされてるのか?以下が最新ぽい

http://http.us.debian.org/debian/pool/main/a/abcde/