[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: panic when DIAGNOSTIC is defined



ここには初めて出てきます。西脇といいます。

ADB ドライバには多少縁がありますので...

SUNAGAWA Keiki wrote:
> 
> Tsubai Masanari <tsubai@iri.co.jp> wrote:
> 
> Tsubai> ADB のドライバーってはっきりいって理解不能なんですが、:-)
> 
> 確かにかなりごちゃごちゃしていますね。仕様がもっときちんと公
> 開されていればいいんですけど。

えっと。Apple の肩を持つ必要はないんですが、ADB の仕様自体はちゃんとド
キュメントとして公開されていて ADB のドライバがやっていることはそれに則
っ
た処理ではあるわけです。確かに見た目にすっきりしていないとか、タイミン
グの取り方に問題があって多少おかしな動きをする場合はあるんですけど。

> はい、これでいけました。ただ、やはりキーボードが1つしかない
> のに2つプローブされています。adbドライバの動きが変みたいです。

砂川さんのマシンにも PS2 ポートがあるんですよね?
ならばドライバの動きに変なところはなく、正しく ADB デバイスを probe し
ていると思います。問題は PS2/ADB 変換の ADB デバイスが PS2 キーボード/
マウスが繋がっているかどうかに拘わらず応答しているということでしょう。
apple もこのハードウェアには手を焼いたと見えてこんな Technote を出して
います。

http://developer.apple.co.jp/technotes/tn10008.html

ですが、最近の MacOS では ADB デバイスのリストを取得している様なツール
で見ると PS2 ポートの接続状態を反映した情報を返してきているようなので、
何か方法があるに違いありません。試行錯誤している最中なんですが挫折しか
かっています ;-)

前後しますが、

> >> panic: kernel diagnostic assertion "wskbd_console_device
> >> == NULL" failed: file "../../../../dev/wscons/wskbd.c",
> >> line 318
> 
> Tsubai> これだけなら wskbd を複数 config しなければ回避でき
> Tsubai> るんじゃないかと思います。
> 
> Tsubai> wskbd0 at ...
> 
> Tsubai> とか。akbd も akbd0 だけで大丈夫だったと思います。

今のコードだと ADB bus 上で probe された順に番号が振られることになりま
すが、どのデバイスが先に見つかるかは ADB の仕様上保証されませんので、実
際にはキーボードの繋がっていない PS2 が先に見つかると入力できなくなって
しまいまずいと思います。うちでは PS2 が必ず最初に見つかるので、この設定
にすると PS2 キーボードを繋いでないと何も出来なくなってしまいます。

ADB というのは同種のデバイスが繋がっていた時に、個々を完全に区別する方
法がないので、今のような扱い方は馴染まないのかもしれませんね。

P.S.
椿井さん、筒井さん、先日はお騒がせしました。
MESH から boot、adv を mount で立ち上げてます :-)