5月 242012
 

最近というか、かなり前から秋葉原の色々なショップでジャンク扱いで販売している PLANEX の MZK-W300NH2 という BB ルータがあります。

今回はこれが 500yen で売っていたので買って来ました。実は一年くらい前に 1,000yen で一個購入しているので今回が二個目の購入。ということになります。

個人的には二個目のヤツに OpenWRT をインストールして、その上で OpenFLOW などを動かしてみようかなぁ。などと思った次第です。

で、今回はその手順を見ていくことにしましょう。とは言いつつも一回では到底終わりそうにないので多分数回に分けて書いていくことになります;-)。

まず、 MZK-W300NH2 で OpenWRT が動作するか確認する必要があります。 OpenWRT のサポートしている機器の一覧を確認します。ふむ。 MZK-W300NH2 はリストアップされていませんね。と、いうことで MZK-W300NH2 の機器の情報を取得します。

・アーキテクチャは ramips
・CPU は RT3052
・FLASH は 4MB

これだけ解れば大丈夫か。似たような機器としては Allnet の ALL0239-3G などが掲載されているのでトライです。以下の URL からそれらしいファームを拾ってきます。

http://downloads.openwrt.org/snapshots/trunk/ramips/

で、ウェブインターフェースからファームウェアを更新しようとするんですが、チェックではじかれますね。アタタタタ。と、いうことでしゅーりょー。orz。

何か手段は無いものか? などと調べていたら MZK-W300NH2 にはマザーボード上にシリアルのコネクタというか、結線できるものはあるようですね。ウェブで調べてみると以下のようです。右から順に以下のようになっています。

・3.3V
・TXD
・GND
・RXD

では、ここに RS232C のチップと D-SUB 9pin オスを付けてしまいましょう。こんな感じになりました;-)。写真を 2,3 枚。

こっちがアップの図。

IMG_2318_mzk-w300nh2_1.jpg

でもって、こっちが D-SUB 9pin がニョキっと生えた図。

IMG_2304_mzk-w300nh2_2.jpg

今回利用したチップは ADM3202 です。ただし、僕が付けられるわけもなく、会社の同僚で仕事が電子工作という人に付けてもらいましたf(^^;;。ありがとうございました。

さてと。今回の話はようやっとここから;-)。シリアルコンソールが付くと、もう何でもできるような気分になります。まずは電源投入してプロンプトなどを表示してみます。

U-Boot 1.1.3 (Nov 25 2008 - 16:46:30)
Board: Ralink APSoC DRAM: 16 MB relocate_code Pointer at: 80fa8000
Please choose the operation: 0: Load ucos code to SDRAM via TFTP Client. 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 9: Load Boot Loader code then write to Flash via TFTP.

 
最初にメニューが出力され選択できるようになっています。メニュー画面の表示時間は一秒なので二秒後には 3: が動作し BB ルータとしての OS が起動してしまいます。なので、電源投入後はすかさず 4 を押します。

するとコマンドプロンプトが出てきます。

RT3052 # ?
?       - alias for 'help'
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootm   - boot application image from memory
bootp   - boot image via network using BootP/TFTP protocol
cp      - memory copy
echo    - echo args to console
erase   - erase FLASH memory
help    - print online help
loopback   - Ralink eth loopback test !!
md      - memory display
mdio   - Ralink PHY register R/W command !!
mm      - memory modify (auto-incrementing)
mw      - memory write (fill)
nm      - memory modify (constant address)
printenv- print environment variables
protect - enable or disable FLASH write protection
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
spicmd  - read/write data from/to eeprom or vtss
tftpboot- boot image via network using TFTP protocol
version - print monitor version

 
なるほど。こんなコマンドがサポートされているのね。で、プロンプトから操作するときのの情報を知るには printenv コマンドを実行します。

RT3052 # printenv
bootcmd=tftp
bootdelay=2
baudrate=57600
ethaddr="00:AA:BB:CC:DD:10"
ipaddr=10.10.10.123
serverip=10.10.10.3
preboot=echo;echo
ramargs=setenv bootargs root=/dev/ram rw
addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):\
$(gatewayip):$(netmask):$(hostname):$(netdev):off
addmisc=setenv bootargs $(bootargs) console=ttyS0,$(baudrate)\
ethaddr=$(ethaddr) panic=1
flash_self=run ramargs addip addmisc;bootm $(kernel_addr)¥
$(ramdisk_addr)
kernel_addr=BFC40000
u-boot=u-boot.bin
load=tftp 8A100000 $(u-boot)
u_b=protect off 1:0-1;era 1:0-1;cp.b 8A100000 BC400000¥
$(filesize)
loadfs=tftp 8A100000 root.cramfs
u_fs=era bc540000 bc83ffff;cp.b 8A100000 BC540000 $(filesize)
test_tftp=tftp 8A100000 root.cramfs;run test_tftp
stdin=serial
stdout=serial
stderr=serial
ethact=Eth0 (10/100-M)
Environment size: 783/65532 bytes RT3052 #

 
なるほど。tftp の設定とか、FLASH の扱い方とか設定できますね。ウェブインターフェースでイリーガルなファームウェアを更新するとガードがかかってできませんが、 tftp サーバから持ってきてブートするともしかしたら OpenWRT がブートするかもしれないですね。

と、いうことで第一回目は終了です;-)。 MZK-W300NH2 にシリアルポート付けたぜーっ。ってのが第一回目だったりします。それにしても RS232C のチップ埋め込んでハンダ当てて色々やるのは随分と敷居が高いですよね。

で、こーいうのを見つけました。

UART(3.3V)-RS232C変換モジュール内蔵コネクタケーブル

D-SUB 9pin コネクタの中に RS232C チップが最初から埋め込まれていて、伸びたケーブルをマザーボードの ピンに何らかの手段で接続すれば良いだけ。と、いう非常に簡単なモノです。ただ、これをどうやってマザーボードに固定もしくは接触させるかを考える必要はあるかと思いますけどね。

それにしてもシリアルコンソールがあるといきなりワクワクしてしまいますね。後は tftp サーバからファームウェアをダウンロードしてブートできれは良いだけになりました。とは言いつつ、ファームウェアを作らなければならないわけでして。それについては上にも書きましたが次回以降で;-)。

次回 があるか分かりませんがf(^^;;。

5月 192012
 

「CPU コレクション」の第54回目です。前回 Willametteが登場してきたことにより「おっ!! いよいよ Socket 478 に突入かぁ?」などと思った方もいらっしゃるかと思いますが、まだまだそこまでたどり着きません;-)。実は最近、新しい CPU がドドドと手に入ったので、そっちを先に順次掲載していきます;-)。

と、いうことで、 Intel の IA64 アーキテクチャがいよいよ登場です;-)。 Itanium2。

過去に MIPS とか SPARC、POWER アーキテクチャな CPU が登場していますが、これらは皆僕使ったことがある CPU なのですが IA64 アーキテクチャは使ったことが無いですねぇ。まぁ、使ったことがある人のほうが少ないかな? とも思えなくも無いですが。あ。 NEC の ACOS とか使っている人は普段から IA64 使っている。ってことになるかぁ;-)。

Intel_Itanium2_1.jpg

CPU 単体としてはこんな感じです。横長ですね。雰囲気的には Intel Xeon の Foster コアを横に長くしたような感じでしょうか。けど、コアと言うかヒートスプレッタが結構大きいです。

で、こちらが裏側。

Intel_Itanium2_2.jpg

ヒートスプレッタの下にピンが密集している感じです。

この CPU はオークションでゲットしました。オークションとかで調べてみるとまだずいぶんと値段が高かったりしたのですが、今回ゲットしたこの CPU は、まぁ、手の届く、ジャンク的な価格だった(とわいえ、一応四桁の価格ですよ;-)ので思わずゲットしてしまった。と、いうことなのですねぇ;-)。

CPU の型番・スペック的には Itanium2 1.3GHz L3 3MB(SL6XD) というらしいくて、FSB は 400MHz で動作するらしいです。

こちらの写真は Intel Xeon Prestonia コアとの比較です。

Intel_Itanium2_3.jpg

しかし、Itanium2 にも左下に穴が開いているんですねぇ。この辺りは x86 アーキテクチャな CPU といっょです。

で、コアというかヒートスプレッタですが、かぁなり大きいです。でもって、その下の土台の部分は Prestonia コアと同じ大きさなんですね。

この CPU は動作確認済みでちゃんと動くらしいです。が、しかし、現役バリバリの CPU とはいえマザーボードとか手に入りそうに無いし、そー考えると本当に現役バリバリでもコレクションとするしか、今のところは手はなさそうです。 FreeBSD/IA64 で動作すると思うんですけどねぇ。

それにしても、今まで利用したことが無いアーキテクチャの CPU。うひっ。けど、そーなると黒歴史の 初代 Itanium も欲しくなるなぁ;-)。

5月 152012
 

いやー。MEDIAS LTE N-04D フツーに使用するとバッテリーがガンガン無くなっていきます。 08:00 くらいから利用し始めて会社の机の上に置いとくと 15:00 くらいには残り30% を切ってしまう状態。これはなんとかしなければなるまい。と思ったのですが、そんなことは Android を昔から利用している人にとってはきっと常識なのでしょうなぁ。

iPhone4 よりもバッテリーの持ちは半分以下。生半可な状態ではありません・・。orz。

で、色々試した結果、だいぶ安定して長持ちできるようになったのでちょっと書いてみたいと思います。

ちなみに iPhone4 持っている僕にとって「Androdi で何しているの?」って聞かれれば「バッテリ長持ちさせるためのプロセス kill っ!!」って答えるとこにしています;-P。それくらい iPhone4 に比べてヒサンな状態。では、バッテリーを長持ちさせるためのコツを順番に見ていくことにしましょう。と、は言いつつ、ネタは二つしか無いのでありますが・・f(^^;;。

1. GPS 使うのやめよう。
本当に Android の GPS 機能というか、マップアプリは情けないよね。

IMG_2164_android3_1.jpg

バッテリーの消費をアプリケーションの比率で表したグラフのキャプチャです。地図を起動するとマップアプリがほぼ全てのバッテリを食い潰します。で、こいつ、プロセスを kill しても再度起動してくるので、マップアプリが起動したら Android を再起動することにしております・・。orz。
Android で GPS は利用するものではないですな。

あと、Android の位置情報の設定では

・無線ネットワークを使用
・GPS機能を使用

の二つの項目があるのですが、下のやつをオンにしただけでは GPS が利用できない。位置情報がアプリケーションで利用できないんですな。どーいうことー? 上のもオンにすると GPS がようやっと利用できかるようになる。

で、僕が思うに上のをオンにするとたぶん google に位置情報が飛んでいって、マップアプリの渋滞情報として利用されるんだろうなぁ。と想像できます。イヤだねぇ・・。

バッテリーの面からも google に情報上げたくない派の面からも GPS をオンにしないほうが得策でしょうなぁ。けど、そーすると一番悲しいのが写真を撮ったときかな・・。位置情報が書き込まれていない写真なんて、クリープを入れないコーヒーみたいなモンだ・・。orz。

2. LTE オフにすると良い感じ。
せっかく LTE 対応のスマートフォンを買ったのにねぇ・・。本末転倒だ。僕の職場は渋谷の道玄坂を登り切った辺りにあるんだけど、ここって 3G と LTE の電波の境目みたい。アンテナを見ているとしっかりと 3G <--> LTE を行ったり来たりしている。電波がつかめなくて頑張っているときと同じ状態なのかなぁ?バッテリーの消費がガンガンですね。

なので、LTE OnOff というアプリをインストールしました。

IMG_2226_android3_3.jpg

僕は「docomo の電波は良い。」というのは都市伝説だと思っているので 3G も信じないんだけど、LTE を切ったらバッテリーの持ちがずいぶんと良くなったと感じます。

LTE オン/オプはこんな感じ。

IMG_2166_android3_2.jpg

これで選択して LTE をオフにします。で、本当に 3G が遅い環境(渋谷駅とか新宿駅とか?)は LTE をオンにして利用します。そーいうことができるのでこのアプリはありがたい;-)。

と、いうことで Android というか MEDIAS LTE N-04D の場合はマップアプリ・GPS のオン/オフと LTE のオン/オフでずいぶんとバッテリーが持つようになりました。それと後はプロセスをこまめに監視して不要なのはドンドン kill するのが良いかと思われます。

が、やっぱりそれでも一日持たないので結局外部電源、つまりはバッテリーパックを購入してしまいましたけどね・・。

5月 072012
 

お遊びで ports 作りました;-)。

最近、jail で遊んでいるのですが、jail の動作確認のために jls ってコマンドを良く打ちます。でもって ls ってのを間違えて sl とか打ってしまうと SL がターミナル上を走るのですが、それの jsl 版があってもいいんじゃね? とか思った次第です;-)。

とは言いつつ、しょせんはお遊びなので ports の games/sl をインストールすると do-install: のところで合わせて sl と jsl の両方をインストールするように Makefile を改修しただけです;-)。

こーいうのって ports のメンテナの方にも送るのもアレなので、ここにノラ ports として置いておきます。

僕も私もインストールしたい。と、言う方は、ports の Makefile を覗いてみてください。あ。当然 pkg-plist も更新しているので make deinstall にも対応しています。

http://www.icmpv6.org/Prog/FreeBSD_ports/ports-sl-20120507.tgz

ほんとうにどうでも良い ports ですね;-)。 4/1 に出すべきだったかぁ?

5月 032012
 

「CPU コレクション」の第53回目です。前回、前々回と Xeon が登場しましたが、今回はようやっとコンシューマ向け CPU の登場です。Pentium4 ですが、アーキテクチャは Willamette (ウィラメット)です。

ここで Intel はそこはかとなく、ずっこけるわけですね。メモリは RIMM の高価なヤツを買わなければならず CPU に付録でメモリが付いてきたのも一時期ありました。そして、CPU 自体は電力をバカみたいに消費するし、結構悲劇的な扱いを受けた CPU ではなかったかと記憶しています。

ちなみに僕は Intel がこの CPU を出したときはすっかりと AMD ラバーな人と化していたために「ふーん。」的右斜め45度からの目線的に見ていただけなのであります;-)。

会社の同僚は出たばかりの Pentium4、つまりこの CPU のマシンを DELL から購入したのですが、メモリが高いーーっ!! と嘆いていました。ただし、HTT (Hyper-Threading Technology) が搭載された CPU はこの CPU からではなかったかなぁ。あ。Xeon には既に搭載されていたかもしれないけど。

写真はこんな感じ。この CPU はどえりゃーでかいんですよ。

Socket423_Pentium4_Willamette_1.jpg

でもってこちらが CPU の裏側。

Socket423_Pentium4_Willamette_2.jpg

Xeon とは違って外側で綺麗に四角に並んでいるんですねぇ;-)。

で、こっちが Xeon 二つ、Willamette 、 Northwood の計四個を並べて撮った写真です。

Socket423_Pentium4_Willamette_3.jpg

こーいう風に並べてみると大きさとか比較ができて解りやすくて良いですよね。やはり手元に色々な CPU を持っているからできる芸当でして;-)。

ここから Intel の大進撃が始まるのか、ずっこけた後の Pentium4 は Northwood 方面へと進んでいくわけですねぇ。

この CPU はどうやって手に入れたんだっけかなぁ。アキバだったかなぁ?「でけー CPU だ。」って思ったことは覚えているのですが、どうやって僕の手元に来たか、すっかりと忘れてしまいましたf(^^;;。