blog:2014:2014-11-30

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
blog:2014:2014-11-30 [2014-11-30 14:50]
Decomo
blog:2014:2014-11-30 [2015-01-06 11:51] (現在)
行 1: 行 1:
-====== Intel NUC DN2820FYKHでNAS4Freeが動かない ======+====== Intel NUC DN2820FYKHでNAS4Freeが動かない→解決 ======
  
-実家にNASを設置しようと思い、7月頃にDN2820FYKHを買ったまま延々放置してた。+実家にNASを設置しようと思い、7月頃にDN2820FYKHを買ったものの延々放置してた。
  
 ようやく昨日から手を付けだし、使い慣れたNAS4FreeをUSBメモリに書き込んでお手軽NASゲットだぜ!!と思いきや、ブートシーケンスでカーネルパニック起こしやんの。これはBIOSを最新にしたら直ったが、今度はNICを認識してねぇ! ようやく昨日から手を付けだし、使い慣れたNAS4FreeをUSBメモリに書き込んでお手軽NASゲットだぜ!!と思いきや、ブートシーケンスでカーネルパニック起こしやんの。これはBIOSを最新にしたら直ったが、今度はNICを認識してねぇ!
  
-dmesgを見るとre0を生やそうとしてるが「re0: Unknown H/W revision: 0x4c000000」というエラーで蹴られるっぽい。DN2820FYKHのNICはRTL8111<fc #FF0000>**G**</fc>で、エラーメッセージの通りRTL8111のリビジョン違いらしく、NAS4Free 9.2.0.1──というかFreeBSD 9.2-RELEASEではサポートされていない模様。9.2Rのリリース直後、[[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=183620|2013年11月頭にパッチが投下]]されているので、9.3-RELEASEには取り込まれていると思われる。+dmesgを見るとre0を生やそうとしてるが「re0: Unknown H/W revision: 0x4c000000」というエラーで蹴られるっぽい。DN2820FYKHのNICはRTL8111<fc #FF0000>**G**</fc>で、エラーメッセージの通りRTL8111のリビジョン違いらしく、NAS4Free 9.2.0.1というかFreeBSD 9.2-RELEASEではサポートされていない模様。9.2Rのリリース直後、[[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=183620|2013年11月頭にパッチが投下]]されているので、9.3-RELEASEには取り込まれていると思われる。 
 + 
 +早いところ、NAS4Freeが9.3Rベースになってくれれば良いんだけどなー。とりあえず、自分でパッチを当ててNAS4Freeをビルドするか、if_re.koを作るかするしかないか…。 
 + 
 + 
 +===== 自前if_re.koのインストール ===== 
 + 
 +**(2014-12-01 追記)** 
 + 
 +if_re.koを自分で作ったら上手く動いたので、以下、手順。 
 + 
 +==== if_re.koのビルド ==== 
 + 
 +FreeBSD 9.2-RELEASE環境が必要。うちは家鯖が丁度9.2だったが、環境がなければ仮想マシンで仕立てるのが手っ取り早いかと。その場合はカーネルソースも忘れずにインストールの事。 
 + 
 +  - Realtekからドライバのソースを落とす。「FreeBSD 7.x and 8.0」となっているが、9.0系でも使える。 
 +  - 展開 
 +    * <code bash>tar xvzf rtl_bsd_drv_v188.tgz 
 +cd rtl_bsd_drv_v188 
 +</code> 
 +  - ソース修正 
 +    * そのままではコンパイルが通らないので、if_re.cの75行目らへんを修正。<code c> 
 +#include <dev/re/if_rereg.h> 
 +↓ 
 +#include "if_rereg.h" 
 +</code> 
 +  - make 
 + 
 +問題なければカレントディレクトリにif_re.koが出来てるハズ。システム標準のものに比べると、サイズがやたらデカイのが少々気掛かり。 
 + 
 +==== NAS4Freeに組み込む ==== 
 + 
 +出来上がったif_re.koをFATなUSBメモリにコピーし、DN2820FYKHのNAS4Freeが起動したら挿す。USB周りでエラーっぽいメッセージが出るかもしれないが、まぁ気にしない。以下、挿したUSBはda1として話を進める。 
 + 
 +  - NAS4Freeのコンソールメニューからシェルに落ちる(確か6番)。 
 +  - USBをマウント 
 +    * <code bash> 
 +mkdir /tmp/usb 
 +mount_msdosfs /dev/da1s1 /tmp/usb # da1s1は適宜読み替えの事 
 +</code> 
 +  - if_re.koが読み込めるかテストする。読み込めなければ作成に失敗してると思われる。 
 +    * <code bash>kldload usb/if_re.ko</code>  
 +  - if_re.ko.gzの作成 
 +    * <code bash> 
 +cd /tmp 
 +cp usb/if_re.ko /tmp 
 +gzip -9 if_re.ko 
 +</code> 
 +  - NAS4Freeの起動USBをマウントし直す。 
 +    * NAS4Freeの起動ディスクは読込み専用でマウントされているので、書き込み出来るようにマウントし直す必要がある。<code bash> 
 +umount /cf 
 +mkdir cf 
 +mount /dev/da0s1a /tmp/cf 
 +</code> 
 +  - if_re.ko.gzをコピー 
 +    * <code bash>cp if_re.ko.gz cf/boot/kernel</code> 
 +  - loader.conf.localを編集 
 +    * if_re.koを読み込むように設定。<code bash> echo 'if_re_ko = "YES"' >> cf/boot/loader.conf.local</code> 
 +  - 再起動 
 +    * <code bash>reboot</code> 
 + 
 +これでNAS4Free 9.2.0.1でRTL8111Gが使えるようになる。
  
-早いところ、NAS4Freeが9.3Rベースになってくれれば良いんだけどなー。とりあえず、自分でパッチを当ててNAS4Freeをビルドするか、if_reを作るかするしかないか…。 
  • blog/2014/2014-11-30.1417326605.txt.gz
  • 最終更新: 2014-11-30 14:50
  • by Decomo