2020-09-12
NASが固まった
作業してたら、アプリケーションが固まった。
調べたら、NASをマウントしてるディレクトリへのアクセスが凍るみたい。 ネットワークエラーかと思ったが、NASにログインはできる。 NAS内でいろいろ見てみたら、HDDへのアクセスだけ凍る。
mpt0: attempting to abort req 0xfffffe0000ed7ce0:32249 function 0
mpt0: abort of req 0xfffffe0000ed7ce0:32249 completed
mpt0: attempting to abort req 0xfffffe0000ed7ce0:32249 function 0
mpt0: abort of req 0xfffffe0000ed7ce0:32249 completed
mpt0: attempting to abort req 0xfffffe0000ed7ce0:32249 function 0
mpt0: abort of req 0xfffffe0000ed7ce0:32249 completed
mpt0: attempting to abort req 0xfffffe0000ed7ce0:32249 function 0
mpt0: abort of req 0xfffffe0000ed7ce0:32249 completed
mpt0: attempting to abort req 0xfffffe0000ed7ce0:32249 function 0
mpt0: abort of req 0xfffffe0000ed7ce0:32249 completed
ログをみたら、こういうログが延々と並んでる。
よくわからないけど、再起動したらなおった。
uptimeは90日ぐらい。 メンテしたとき以来かな。
キーリピートがきかない。
気がついたらメインマシンでキーリピートがきかない。 キーボードを抜き差しするとなおる。
色々試したら、またもやx11vncのVNCサーバーが悪いみたい。
キーリピートはクライアントサイドで処理されるから、 サーバーではオフにしているみたい。 終了処理がうまくいかないとオフのままになるみたい。
1Wireについて調査
分割キーボードの左右間の通信を本数は減らしたまま、 3分割(やそれ以上)にしたい。
QMKの1線シリアルは1線で多重通信して、1線で双方向通信している。
前に俺がDMOTEのクローンを作った時は、この線でプロトコルはそのままで、 更に電力も通して、 左右が2線で繋がっている状態にした。
電力を通信線でまとめるプロトコルで有名なのは1Wireだろう。
1Wireについていくつか調べたのでまとめておく。
- 1つのコントローラに複数のペリフェラルを接続できる。
- 物理層
- コントローラはプルアップしておく。
- 無通信時は電力供給用にFETを使うのが推奨
- コントローラからペリフェラルへのデータ送信は、コントローラがLOWにしてからHIGHに戻すまでの時間で決める
- ペリフェラルからコントローラへのデータ通信は、コントローラがLOWにして、HIGHに戻した時に、ペリフェラルが一定時間LOWにキープする事で行なう。
- 時間は0と1とRESETの3種類がある。
- コントローラはプルアップしておく。
- データリンク層
- まず、コントローラはRESETを送る。ペリフェラルはLOWを出して応答する。
- コントローラは宛先指定用のコマンドを送る。
- 一般的な方法は、1バイトのコマンドIDと、8バイトの相手アドレス
- IPv4より大きい空間があるのか。
- 一般的な方法は、1バイトのコマンドIDと、8バイトの相手アドレス
- アプリケーション層
- 各デバイス用に用意したコマンドを実行する。これはデバイスの種類による。
- 通信速度
- キーボードに使うとすると、キー数は32ぐらいを仮定する。
- リセットが480us、リセット応答が最悪480us。
- 宛先指定コマンドが1バイト、宛先アドレスが8バイト
- アプリケーションコマンドに1バイト、32キーで4バイト
- 1ビットあたり60ucだとして、6720usec
- 1つだと十分高速だけど、10台とか繋ぐとすると、キースキャンが100hzでできなくなりそうだな。
- アドレスを短かくカスタムした物を作るとかすべき?
- 参考
この記事へのご意見、ご感想、コメントは、
twitter
か下のフォーム(実験的)へどうぞ。