1000BaseTのUSB NIC(その3:再度usb-lan2500r)

panicの原因がureドライバかどうかを切り分けるために、別のNICでureドライバを使ってみることにしました。
昔cdce driverで殆ど使い物にならなかったために抽斗の奥で眠っていたplanexのusb-lan2500rを引っ張り出してきました。このNICは癖が強くて、FreeBSDでは通常はcdceドライバでしか動きませんが、usbconfigで該当デバイス(ugenX.Y)をresetするとureドライバでも動くというものです。
ureドライバで使うと900Mbps近く出ます(うちは1Gbpsのネットワークなので、1000basetでの動作)がcdceドライバでは数十Mbpsしかでません。しかもcdceドライバはmedia/mediaoptが動作しないのでcdceドライバは使い物になりません。ureドライバではちゃんとした速度で動作するのですが、resetしなければならないのがネックで、更にwindows11からrebootしてFreeBSDにするとresetしても駄目で、一度マシンの電源を落とす必要が生じたりするのでちょっと扱いが面倒です。(ubuntuやwindows11では普通に使えるので、FreeBSDの問題です。)
ってことで、FreeBSDの起動processの途中で、/usr/local/etc/rc.d/wait_ue0というlaggのためにiwmとue0が起動するまで待つ大昔に作ったscriptに手を加えてusbconfig resetするようにしました。これでwindows11からrebootで来た時の問題以外は自動で回避するようにして現在実験中です。すぐにkernel panicするだろうと予想していたのですが、今の所、全く快調に動いています。NICが非常に熱をもつので壊れないか心配ではありますが、1Gbpsはやはり100Mbpsよりもずっと快適です。なお、ureドライバはRTL8156対応が必要なため、FreeBSD 13.0stableか14.0currentでないと駄目です。
 
その2へ戻る その4へ続く