Plan 9/Sheevaplugはっかそん

残念ながら参加できなかったけど、3/20〜22にかけてPlan9/Sheevaplugはっかそんが開催された。(きっと個々の成果は公開されるのだと思うが)SheevaplugのSDIO、SATAドライバ周りや、YUREXドライバの移植、rioのカーソルハッキングなどが行われたようだ。直前まで本当に開催されるのかよくわからなかったけど、みんな十分な成果を出せたんじゃないのだろうか。Plan 9漬けの3日間なんて、相当貴重だよ。

私自身は玄柴にアクセスできる環境にいなかったので、リモート参加でちょっとの手間でできそうなものということで、YUREXのmBBU/secをstats(8)に表示できるようにしてみた。

まずはまったのがYUREXがVMWare FusionのゲストOSに見えないことだが、これはvmxファイルに以下の行を追加すればOKだった。詳細はA Power User's Guide to VMware FusionのUSB HIDの項を参照のこと。

usb.generic.allowHID = "TRUE"

@go_vmさんがさくっとOpenBSDのドライバ*1を参考にYUREXドライバ(正確にはマウスドライバ)を書いてくれたので、アプリからBBU値を読み出せるようにファイルシステムの皮をかぶせて、statsで表示してみた。このYUREXのドライバ/ファイルシステム自体はユーザランド実装になっている。ソースはgithubここに置いた。@go_vmさんも同様なファイルシステムを公開しているが(初期化周りは違うけど、コア部分は私がコピペしたので同じ)、statsの/n/yurex/mbbupsをopenしているところを/n/ゆ/mbbupsに変更すればそちらでも動くはずだ。

とりあえず今回はカーネルドライバを書く必要はなかったが、きっと気がついたら「#ゆ」*2デバイスドライバができているはずだ。

今回の件をきっかけにUSB周りの実装が少しわかってきた。回を改めてまとめを書きたいと思う。

*1:BSD界隈を中心としたYUREXブームは、ここから始まったと言って過言ではない@yojiroさんの「OpenBSD meets "YUREX"」参照。

*2:すでに#yも#Yも使われているので、@n_kaneさん提案のこの名前のデバイスドライバが有力候補。