getprop | \ sed -n -e 's/^\[net\.dns.\]: \[\(.*\)\]/\1/p' \ > etc/resolv.conf
Monday, January 5, 2009
Androidの/etc/resolv.conf
Android Dream PhoneでDebianだと、networkによっては nameserverがみつからなくて困ることがある。Android appなら問題ないけど、debianのプログラムだと/etc/resolv.confをちゃんとつくる必要があるのだ。nameserverの情報はgetpropコマンドでとれるのでchrootする前に次のようなかんじでchrootの中のetc/resolv.confをつくっておけばよい。
Sunday, January 4, 2009
謹賀新年2009
遅ればせながら、あけましておめでとうございます。今年もよろしくお願いします。
年末年始は実家のほうに帰省していました。
31日: 実家へ移動。
FOMAの/dev/ttyACM0がInput/output errorでopenできないのであせる。なんか何度かぬいたりさしたりいろいろ試しているとふいに繋るようになった。条件不明。いったん繋れば安定しているっぽい。
1日: 昼ごろ起きて御節料理。そのあとまた寝て起きたら晩飯。

2日: TV見たりしながらだらだら。
3日: 高校の同窓会へ。
11:30から。すごく久しぶりで懐しい。先生があんまりかわってない。というか、当時は今の我々より若かったみたいな話でみんな驚く。生徒は全体の1/3くらいが来ていたぽい。みんないろいろ活躍してるな。一次会は15:30に終了。
17:00から二次会。19:30ごろから三次会で22:00ごろにおひらき。終電まで余裕と思っていたら、乗り換えで50分待ちで終電になってた。田舎すぎる。
4日: 実家から東京へ。昼ごろに戻ってきていたのでその後明治神宮に初詣など。
年末年始は実家のほうに帰省していました。
31日: 実家へ移動。
FOMAの/dev/ttyACM0がInput/output errorでopenできないのであせる。なんか何度かぬいたりさしたりいろいろ試しているとふいに繋るようになった。条件不明。いったん繋れば安定しているっぽい。
1日: 昼ごろ起きて御節料理。そのあとまた寝て起きたら晩飯。
2日: TV見たりしながらだらだら。
3日: 高校の同窓会へ。
17:00から二次会。19:30ごろから三次会で22:00ごろにおひらき。終電まで余裕と思っていたら、乗り換えで50分待ちで終電になってた。田舎すぎる。
4日: 実家から東京へ。昼ごろに戻ってきていたのでその後明治神宮に初詣など。
Tuesday, December 30, 2008
cdc acm(FOMA対応) on Linux
cdc acm(FOMA対応)を試してみました。
Linux 2.6.28でもcdc-acm自体はv0.26のままなのでcdc-acm-v026.zipがそのまま使えました。すばらし。
ちなみに端末は N906i です。
これで実家かえっても なんとかIP reachableにできそう。
以下、こんなかんじという記録
追記 (2009/01/01 22:59): なんか openする時に Input/output error (EIO)になることがおおいな。さしなおして何度もやりなおしているとうまくいくことがあるが…
これで実家かえっても なんとかIP reachableにできそう。
以下、こんなかんじという記録
usb 4-1: new full speed USB device using uhci_hcd and address 7 usb 4-1: configuration #1 chosen from 1 choice usb 4-1: New USB device found, idVendor=0409, idProduct=0234 usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 4-1: Product: FOMA N906i usb 4-1: Manufacturer: NEC usb 4-1: SerialNumber: nnnnnnnnnnnn cdc_acm 4-1:1.0: CDC Header 1.10 cdc_acm 4-1:1.0: ttyACM0: USB ACM device this device is FOMA Mobile Phone cdc_acm 4-1:1.2: CDC Header 1.10 cdc_acm 4-1:1.4: CDC Header 1.10 usbcore: registered new interface driver cdc_acm cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapterspppconfigで適当に設定するとこんなかんじ
pppd 2.4.4 started by root, uid 0 abort on (BUSY) abort on (NO CARRIER) abort on (VOICE) abort on (NO DIALTONE) abort on (NO DIAL TONE) abort on (NO ANSWER) abort on (DELAYED) send (ATZ^M) expect (OK) ATZ^M^M OK -- got it send (ATDT0570-00-1616^M) expect (CONNECT) ^M ATDT0570-00-1616^M^M CONNECT -- got it send (\d) Serial connection established. using channel 1 Using interface ppp0 Connect: ppp0 <--> /dev/ttyACM0 sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x9c9d1e90> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <mru 1524> <auth chap MD5> <endpoint [MAC:00:c0:7b:8c:bb:a1]>] sent [LCP ConfNak id=0x1 <auth pap>] rcvd [LCP ConfRej id=0x1 <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9c9d1e90>] rcvd [LCP ConfReq id=0x2 <mru 1524> <auth pap> <endpoint [MAC:00:c0:7b:8c:bb:a1]>] sent [LCP ConfAck id=0x2 <mru 1524> <auth pap> <endpoint [MAC:00:c0:7b:8c:bb:a1]>] rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0x9c9d1e90>] sent [LCP EchoReq id=0x0 magic=0x9c9d1e90] sent [PAP AuthReq id=0x1 user="xxxx" password=<hidden>] rcvd [LCP EchoRep id=0x0 magic=0x0] rcvd [PAP AuthAck id=0x1 ""] PAP authentication succeeded PPP BSD Compression module registered sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>] sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>] rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 210.132.186.1>] sent [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 210.132.186.1>] PPP Deflate Compression module registered rcvd [LCP ProtRej id=0x3 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f] Protocol-Reject for 'Compression Control Protocol' (0x80fd) received rcvd [IPCP ConfNak id=0x1 <addr 210.132.186.12> <ms-dns1 202.238.95.24> <ms-dns3 202.238.95.26>] sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 210.132.186.12> <ms-dns1 202.238.95.24> <ms-dns3 202.238.95.26>] rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 210.132.186.12> <ms-dns1 202.238.95.24> <ms-dns3 202.238.95.26>] local IP address 210.132.186.12 remote IP address 210.132.186.1 primary DNS address 202.238.95.24 secondary DNS address 202.238.95.26 Script /etc/ppp/ip-up started (pid 5903) Script /etc/ppp/ip-up finished (pid 5903), status = 0x0
追記 (2009/01/01 22:59): なんか openする時に Input/output error (EIO)になることがおおいな。さしなおして何度もやりなおしているとうまくいくことがあるが…
Linux 2.6.28 on VAIO Type Z
Linux 2.6.28がでていたのでupgradeしてみた。
まだdebパッケージがないので自分でビルド
改善したと気付いたところ
まだdebパッケージがないので自分でビルド
改善したと気付いたところ
- backlightの調節が「明るさの調節アプレット」でできるようになった
iwlagnドライバがはいったのでwifiがつかえる。ただしIntel Wireless WiFi Link drivers for Linuxから5000用のimage(iwlwifi-5000-ucode)をとってきて/lib/firmwareにiwlwifi-5000-1.ucodeをおいておく必要がある。当然wirelessスイッチもONにしておかないといけない。
Android Dream Phone で Debian
Android Dream Phone を入手したのでいろいろいじってみた。以下その記録。基本的にAndroid Dev Phone 1と同じだと思う。
wifiでつかえるので、EM OneにWMWifiRouterとかいれておけばそれ経由でどこでも使えるか?と思ったら、現状ではAndroidがAd-hoc使えないみたいでだめげ。PHS300を買うべきなのか?
SDKをダウンロード&インストール。Eclispseに関しては後回し。VAIO Type Zは x86_64 (amd64)なので、Installation Notesに書いてあるとおり
とりあえずshellだろうと思い、
Android MarketにTerminal Emulatorってのがあるので、それをインストールしておけば実機上でもshellにさわれる。
せっかくなのでDebianをいれてみる。課題としてはmicrosdはFAT(symlink、hardlinkできないのでdebian chrootにできない)、defaultのkernelがsupportしているfsはFATとYAFFS(YAFFSは amd64とかには標準ではなさげ)。
とはいっても基本はLinuxなので、
Debianのchroot環境は
wifiでつかえるので、EM OneにWMWifiRouterとかいれておけばそれ経由でどこでも使えるか?と思ったら、現状ではAndroidがAd-hoc使えないみたいでだめげ。PHS300を買うべきなのか?
SDKをダウンロード&インストール。Eclispseに関しては後回し。VAIO Type Zは x86_64 (amd64)なので、Installation Notesに書いてあるとおり
ia32-libsなどをいれておく必要がある。android-sdk-linux_x86-1.0_r2/toolsにPATHを通したりするsetup scriptを書いた。とりあえずshellだろうと思い、
adb shellしてみるが動かない。adb devicesでdeviceがみつかってない。Developing on Device hardwareに書いてあるようにudev ruleを置いてみるがだめっぽい。いろいろ試した結果、50-android.rulesではなく、z60_android.rulesのようにz60でやらないといけないようだ。これで次のように見えるようになった。
% adb devices * daemon not running. starting it now * * daemon started successfully * List of devices attached HTnnnNnnnnnn device % adb shell $
adb pushやadb pullでおくりこんだり、とりだしたりできる。/system/bin/shはとりあえずつかえるけど、微妙にたりないかんじなのでbusyboxをいれた。armelのbusybox-staticパッケージをつかうのが楽。microsdは/sdcardにmountされているけど、ここはVFATでnodev,noexec,fmask=0711などでmountされているので、ここに置いてもbinaryは実行できない。とりあえず/data/binあたりをつくってそこにおくりこむ。
$ mkdir /data/bin $ exit % dpkg -x busybox-static_1.10.2-2_armel.deb . % adb push bin/busybox /data/bin/busybox % adb shell $ cd /data/bin $ ln -s busybox lsあとは必要なコマンド名でsymlinkをはっていけばよい。busyboxが提供しているコマンドはbusyboxを実行してみればわかる。で、そこにPATHをとおせばOK。
Android MarketにTerminal Emulatorってのがあるので、それをインストールしておけば実機上でもshellにさわれる。
せっかくなのでDebianをいれてみる。課題としてはmicrosdはFAT(symlink、hardlinkできないのでdebian chrootにできない)、defaultのkernelがsupportしているfsはFATとYAFFS(YAFFSは amd64とかには標準ではなさげ)。
とはいっても基本はLinuxなので、
ext2.koあたりを作ってinsmodしてやればよい。microsdもpartitionをきってFAT partitionとext2 partitionをつくってやればOK。VAIO Type ZのSD slotにいれてDebian上でcfdisk /dev/mmcblk0とかしてpartitionをきればよい。udevがdeviceファイルをつくるようにいったんぬいて挿しなおし、mkfsで/dev/mmcblk0p2をformat。Android上では最初のprimary partition(Androidで/dev/block/mmcblk0p1、VAIO Type Z Debianでは/dev/mmcblk0p1)が/sdcardに自動的にmountされる。2つめのpartitionを手でmountしてやればよい。Debianのchroot環境は
debootstrapでつくる。まずDebian上でfirst stage。
# mount -t ext2 /dev/mmcblk0p2 /mnt
# cd /mnt
# debootstrap --arch armel --foreign --variant=minbase \
sid . http://ftp.jp.debian.org/debian/
これをAndroidにさして続きを。
$ su # insmod ext2.ko # mount -t ext2 /dev/block/mmcblk0p2 /data/sdcard1 # cd /data/sdcard1 # mv dev dev.orig # mkdir dev # mount --bind /dev dev # chroot . bin/bash # PATH=/usr/bin:/bin:/usr/sbin:/sbin:$PATH # mount -t proc proc /proc # ./debootstrap/debootstrap --second-stage ... #こんなかんじでだいたいOK。
/etc/apt/sources.listを設定すればapt-getもつかえる。
Sunday, December 21, 2008
VAIO Type Z (VGN-Z90S)
自宅のメインノートが長らくLet's note CF-Y2だったのだが、なんか熱がでてthrottleしまくりで遅くて使いものにならなくなってきたので、新しいノートを購入。
大きさ、重さ、画面の広さなどからVAIO Type Zにした。オーナーメードで次のような構成に。
納期は12月下旬なので、最悪12月31日 とか言われたけど、12月19日の朝に配送されてきた。 しかし、「ご注文いただいた商品: ワイヤレスLAN IEEE 802.11abgn /Z 他」とかになっているのは いかがなものか。
早速 Debianをインストール。
まず、jigdoで testing snapshotなisoimageを作成。
せっかくなので grpahical installerをためしてみた。
とくにトラブルことなくインストール終了。 ちょっとはまったところは
大きさ、重さ、画面の広さなどからVAIO Type Zにした。オーナーメードで次のような構成に。
- VGN-Z90S - Windows Vista Home premium - どうせDebianにしちゃうので無しを選択できるようにしてほしい
- CPU: Core 2 Duo P9500
- memory: 4G
- disk: SSD 64G (128G*2 RAIDも64G*2 RAIDも、もうなかった)
- display: 1600x900
- DVD super multi drive
- Web camera
- 日本語KB - US配列で使う
- 大容量バッテリ
納期は12月下旬なので、最悪12月31日 とか言われたけど、12月19日の朝に配送されてきた。 しかし、「ご注文いただいた商品: ワイヤレスLAN IEEE 802.11abgn /Z 他」とかになっているのは いかがなものか。
早速 Debianをインストール。
まず、jigdoで testing snapshotなisoimageを作成。
% jigdo-lite http://hanzubon.jp/debian-cd/daily/unstable/amd64/jigdo-cd/debian-testing-amd64-businesscard.jigdoDebian mirrorをきいてくるので適当なmirror siteを指定すると、ダウンロードしてきてisoimageを作成してくれる。
debian-testing-amd64-businesscard.isoというファイルが作られるのでこれをCD-Rに書きこみ。
% sudo nice --18 wodim -eject -v speed=2 dev=/dev/sr0 \ -data -pad debian-testing-amd64-businesscard.isoで、CD-RをVAIOのDVD driveにつっこんで起動。
せっかくなので grpahical installerをためしてみた。
とくにトラブルことなくインストール終了。 ちょっとはまったところは
- Xが1024x768しかでなかった。よく見るとvesaドライバーになっているのが原因だった。intelドライバーとかにすればOK
- flashは
deb http://www.debian-multimedia.org/ experimental mainからapt-get install flashplayer-mozillaしろ とのこと
Tuesday, December 16, 2008
丸山不二夫レクチャーシリーズ第2回 クラウドのエンタープライズ利用をめぐって
丸山不二夫レクチャーシリーズ第2回 クラウドのエンタープライズ利用をめぐってにいってきた。
ちょっと遅刻ぎみでいったら、すでにだいぶ席がうまってた。席をさがして前のほうにいったらたまたま首藤さんの隣
丸山先生の話を聞くかぎりでは、Microsoft Azure SQL Data Serviceは、DHTで構築されたkey-valueの分散データストアで、SQLぽくアクセスできるというかんじなのかな? できることはGQLと似たようなもの? Bigtableでは、rowkeyをうまく設計することでRowのlocalityをある程度制御できる(同じtabletになるかどうかは基本的にbigtable serverが制御しclient側ではしない。App EngineのDatasource APIで使う場合にはindexテーブルとかもあるので気にする必要はない)けど、Azure SDSではPartitioning Keyでclient側がどう分割するかを決めるというあたりが違ったりする? とか聞きながら考えてた。
今回は発表者としてではなく聞きにいっただけ。発表者のMacBookのVGAアダプタがなんかおかしかったみたいなので、持ってたやつを貸してあげた。内容自体は基本的に札幌のJava Festa 2008とほぼ同じ。前回と違ってデモの失敗もなく無事終了。
その後、懇親会があったようだけど、今日は会社のYear End Partyがあったので懇親会には不参加。
ちょっと遅刻ぎみでいったら、すでにだいぶ席がうまってた。席をさがして前のほうにいったらたまたま首藤さんの隣
丸山先生の話を聞くかぎりでは、Microsoft Azure SQL Data Serviceは、DHTで構築されたkey-valueの分散データストアで、SQLぽくアクセスできるというかんじなのかな? できることはGQLと似たようなもの? Bigtableでは、rowkeyをうまく設計することでRowのlocalityをある程度制御できる(同じtabletになるかどうかは基本的にbigtable serverが制御しclient側ではしない。App EngineのDatasource APIで使う場合にはindexテーブルとかもあるので気にする必要はない)けど、Azure SDSではPartitioning Keyでclient側がどう分割するかを決めるというあたりが違ったりする? とか聞きながら考えてた。
今回は発表者としてではなく聞きにいっただけ。発表者のMacBookのVGAアダプタがなんかおかしかったみたいなので、持ってたやつを貸してあげた。内容自体は基本的に札幌のJava Festa 2008とほぼ同じ。前回と違ってデモの失敗もなく無事終了。
その後、懇親会があったようだけど、今日は会社のYear End Partyがあったので懇親会には不参加。
Saturday, December 13, 2008
App Engine Hackathon
今回は講義とかはなく、いくつかのグループにわかれてそれぞれ作業という形式だった。 チュートリアル、MashUp、Frameworkなどなど、おおまかなtopicにわかれて相談しつつ6-7時間ほどHackに集中。
昼には弁当がでました。 最後に各グループごとに成果発表。
今回は「20% ルール」(Google の「20% ルール」とは、勤務時間の 20% を自分の好きなことに使ってよい、という世界共通の社内ルールです。)で前からちょっとやってたinternal service(のprototype)を Java実装からPython/AppEngine実装に作り直しとかをやってました。Google Visualization APIをつかっていて、最近Data Source Python Libraryができていたのでそれを使ったりするようにしてみました。
Hackathonが終わったあと、App Engineのプレゼン用のデモコードを整理。そういえばこういうデモをするとき、liveでcodeを書いていくのもいいけど、gitリポジトリにいれておくと、「次のステップはこちら」と
git checkout branchでさくっと更新していけるので便利だなと思った。特にAppEngineLauncherを使う場合、Launcherからは同じディレクトリにないといけないのでgit checkoutでその場のコードをすぐに次のバージョンに変えていけるので便利。
Tuesday, December 9, 2008
404 Server Not Found
なんか、いつの間にか bloggerの構成(?)がかわっていたみたいで 404 Server Not Found になってしまっていた。
blogger-helpで聞いてみたところ
そんなことHelpHow do I use a custom domain name on my blog?に書いてないじゃん…
あと、CNAMEのTTLは短めにしといたほうがよいという話も。
というわけでこんなかんじで
blogger-helpで聞いてみたところ
blogger.ukai.org IN CNAME ghs.google.comだけじゃなくwww.blogger.ukai.org IN CNAME ghs.google.comも登録しろ。- 登録したら、一旦 blogspot.com に戻して、custom domainを設定しなおせ
そんなことHelpHow do I use a custom domain name on my blog?に書いてないじゃん…
あと、CNAMEのTTLは短めにしといたほうがよいという話も。
というわけでこんなかんじで
blogger.ukai.org. 3600 IN CNAME ghs.google.com. www.blogger.ukai.org. 3600 IN CNAME ghs.google.com.
Sunday, December 7, 2008
Google Friend Connectで遊ぶ
Google FriendConnectが使えるようになっていたので、ちょっと試してみました。
最初blogger.ukai.orgで使おうとしたら、なんか既に微妙に違うversionのrpc_replay.htmlとcanvas.htmlが見える模様? そのまま使えるのかなーと思っていたら、404 Server Not Found。
仕方ないのでukai.orgのほうをFriendConnectサイトにしてみた。むアンテナのほうも sign in して Ratingsの左の + をclickしてopenすれば、ratingとcommentが書けたりするようになってる。
とりあえず member gadgetとsign in gadget、comment gadgetをはってみた。それだけではさびしいのでついでにGoogle API使ったやつをいろいろと。
しかしなんかFriendConnect gadgetを使っていると、関係ないiframeのところもFriendConnect gadgetになってしまうという不可解な現象が…。とりあえずsetTimeoutでちょっとdelayを置いてからiframeを追加するようにしたら解決したが…
仕方ないのでukai.orgのほうをFriendConnectサイトにしてみた。むアンテナのほうも sign in して Ratingsの左の + をclickしてopenすれば、ratingとcommentが書けたりするようになってる。
とりあえず member gadgetとsign in gadget、comment gadgetをはってみた。それだけではさびしいのでついでにGoogle API使ったやつをいろいろと。
しかしなんかFriendConnect gadgetを使っていると、関係ないiframeのところもFriendConnect gadgetになってしまうという不可解な現象が…。とりあえずsetTimeoutでちょっとdelayを置いてからiframeを追加するようにしたら解決したが…
Subscribe to:
Posts (Atom)