メッセージ欄

2012年4月の日記

一覧で表示する

GW-USValue-EZをNetBSDで使う
2012/04/22(日) 24:23 NetBSD はてブ情報 はてブに登録 はてブ数

11n/g/b対応の小型の無線LANアダプタGW-USValue-EZが届いたのでNetBSDで使えるかどうか試してみました。

まず、何も考えずに挿してみるとugenです。あーそうかー。

ということで、型番で検索するとどうやらRTL8192というチップを使っている代物のようです。チップ名とNetBSDで検索するとOpenBSDからの移植がされているとの情報が。twitterでつぶやくと-currentには入っていると教えてもらいました。

2012/4/21のkernelに入れ替えてみると、見事にurtwnで認識です。
urtwn0 at uhub4 port 1
urtwn0: GW-USValue-EZ GW-USValue-EZ, rev 2.00/2.00, addr 4
urtwn0: MAC/BB RTL8188CUS, RF 6052 1T1R, address XX:XX:XX:XX:XX:XX
urtwn0: 1 rx pipe, 2 tx pipes
urtwn0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
urtwn0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ところがいざ使おうとすると、
urtwn0: failed loadfirmware of file urtwn-rtl8192cfwT (error 2)
urtwn0: cannot assign link-local address
urtwn0: failed loadfirmware of file urtwn-rtl8192cfwT (error 2)
urtwn0: failed loadfirmware of file urtwn-rtl8192cfwT (error 2)
urtwn0: cannot assign link-local address
ということで使えません。どうやらファームウェアがないようです。

urtwn (4)をみるとhttp://firmware.openbsd.org/firmware/urtwn-firmware-1.1p0.tgzにfirmwareがあるということでダウンロードしてきます。

その中にあるファイルを/libdata/firmware/urtwnというディレクトリを作ってコピーしておきます。いやー、ubtのときにディレクトリ名で苦労しただけに、今回はさくっとsys/dev/usb/if_urtwn.c#urtwn_load_firmwareを確認できました。

以上で準備完了。ちゃんと通信できています。すばらしい!

OpenGrokをローカルで動かしてソースコードを読むために
2012/04/07(土) 10:39 NetBSD はてブ情報 はてブに登録 はてブ数

ソースコードを追っかけるときに大変お世話になっているhttp://nxr.netbsd.orgですが、ここで使われているのはOpenGrokというツールです。

手元で動くとうれしいなぁということでpkgsrcを探すとdevel/opengrokがありました。

ここではNetBSDのsrc, xsrcを対象にOpenGrokをWebブラウザで使えるところまでの記録をしておきたいと思います。

まず、devel/opengrok, www/apache-tomcat7をpkgsrcからインストールします。
OpenJDKのインストールに結構時間がかかりました。

次に、NetBSDのソースを用意します。/export/s/HEADに置くことにしました。
ここでcvs -d /cvsroot/NetBSD srcなどとしてsrcやxsrcをチェックアウトしておきます。

/usr/pkg/share/opengrokに移動して、run.shに次のようなパッチをあてます。
--- run.sh.orig	2012-04-04 00:38:41.000000000 +0000
+++ run.sh	2012-04-05 11:18:37.000000000 +0000
@@ -3,7 +3,7 @@
 PROGDIR=/usr/pkg/share/opengrok
 
 # REQUIRED The root of your source tree
-SRC_ROOT=/your/src/tree/
+SRC_ROOT=/export/s/HEAD
 
 # REQUIRED  The directory where the data files like
 # Lucene index and hypertext cross-references are stored
@@ -18,13 +18,14 @@
 EXUB_CTAGS=/usr/pkg/bin/exctags
 
 # If you need to set properties (Ex. override the mercurial binary)
-#PROPERTIES=-Dorg.opensolaris.opengrok.history.Mercurial=/home/trond/bin/hg
+PROPERTIES=-Dorg.opensolaris.opengrok.history.cvs=/usr/bin/cvs
 
 # Uncomment the following line if your source contains Mercurial repositories.
 # SCAN_FOR_REPOS="-S"
+SCAN_FOR_REPOS="-S -H -v -r on -W ./configuration.xml"
 
 # You might want to add more available memory, and perhaps use a server jvm?
-#JAVA_OPTS="-server -Xmx1024m"
+JAVA_OPTS="-server -Xmx1024m"
 
 LOGGER="-D/usr/pkg/java/openjdk7/bin/java.util.logging.config.file=conf/logging.properties"
ポイントはSCAN_FOR_REPORSに与えた引数ですかね。あ、あとJAVA_OPTSはどっちでもいいのかなと思っていたら、今回のような大きなソースを食わせる時にはこのオプションをつけておかないと解析が全然終わらないことがわかったので有効にしています。

次に、source.warを/usr/pkg/share/tomcat/webappsにコピーします。このsource.warはconfiguration.xmlが/var/opengrok/etcにあることを期待しているので、生成されたconfuguration.xmlを/var/opengrok/etcに置きます。ディレクトリは自分で作ってあげないといけません。


次に/usr/pkg/share/tomcat/bin/startup.shを実行してTomcatを起動します。これで準備完了です。

Webブラウザでhttp://localhost:8080/sourceにアクセスすればhttp://nxr.netbsd.orgとほぼ同じことが手元のマシンで可能になります。やった!