SSブログ

re0 watchdog timeout その1(FreeBSD 13.1R、2022/07/05) [FreeBSD]

ベアメタルのFreeBSDでファイルサーバを立てて楽しんでいる訳ですが、大量のファイルをsamba上で移動させていた際に急に音信不通になりました。ssh、sambaのセッションは切断され、pingすら通らない状況です。
いよいよマザーボードクラッシュかと思い、J5040-ITXのマザーボードを買い直したらいくらになるだろう?などと調べていました。

とりあえず手探りで電源ボタンを押しても何も起こらず。数分待ってもpingすら通りません。状況を把握するために、VGAケーブルと液晶ディスプレイをつないで再度電源ON。

あれ、普通に起動した。

システムログを確認してみると「MyFreeBSD kernel: re0: watchdog timeout」の文字列が。おおお、これか…という感じです。簡単に言うと、ハードウェアの相性やソフトウェア・ドライバの品質で発生する「よろしくない状態」です。しかも一般に解決は不可能か、困難を極めます。
昔、NetBSDをいじっていたときに同様の状況になり、その時はNetBSDの使用を諦めました。

遊び倒そうと思っていたFreeBSD機でこれが発生してしまうのは、ちょっと絶望を感じます。蟹チップでないNICを探してきて、新たに搭載するのも一つですが…Intelチップかなぁ。高いけど。

とは言っても、類似事象があるかもしれないので、一応ググっておきます。と思ったらあっさりと類似事象が見つかりました。しかも解決できる希有なケースです。
http://kawabata.jippg.org/wp/freebsd/434/

簡単に言うと、
・FreeBSD標準搭載のドライバが粗悪(不具合持ち)
・Realtek社がFreeBSD向けの最新ドライバ(ソースコード)を提供している
とのことで、入れ替えれば解決するとのことです。ソースコードはFreeBSD 7.x and 8.0向けとありますが、実際にダウンロードして中身を開いてみると、最新のFreeBSD13系にまで対応していることが分かります。

しかしまあ、導入にはシステム全体のmake worldが必要なんですね。10年振りでしょうか。make worldなんてやったら、freebsd-updateコマンドでお手軽アップデートできなくなるのでは?とちょっと心配です。

■インストールの流れ
標準インストール状態で、蟹チップ向けドライバ「re」がカーネルに組み込まれてしまっているので、
1)インストール構成から不具合持ちreドライバを除去(conf/GENERICの修正)
2)その状態でmake world && make installし、一度不具合持ちreドライバがない環境を作る
 ※代替NICがない場合、ネットワークは不通になります
3)再起動後にreドライバ向けソースコードをメーカー最新のものに入れ替え、
 新reドライバを個別にコンパイル&インストール
 ※添付のReadme.txtにはmake installが抜けています(66行目あたり)

基本的には添付のReadme.txtにしっかり書いてありますので、その通り実施すれば大丈夫です。
久々にHackしたなぁ~(大したことしてないけど)

蟹チップで不安な人は、watchdog timeoutの不具合が出ていなくても、この対策は実施しておいた方が良いかもしれません。




nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。