Debian stretch を入れようとすると、nic を認識しなかった。
110 と同じ I219-V だと書いてあるのに、すんなり入れられた 110 と何が違うのかしばらく苦戦。
そのうちこういうのを発見。
110のNIC(i219v)はデバイスIDが0x15b8なんだけど、310のi219vは0x15bcに変わってる
ドライバはこれを見て何を入れるか決めるので、対応してないと知らないデバイスとみなされる (https://egg.5ch.net/test/read.cgi/jisaku/1510658082/)
Intel の e1000e のページ から ダウンロードセンター に行って 3.4.0.2 をダウンロード。
新しい 3.4.0.2 と元の 3.3.6 とで src/hw.h を比べると以下が追加されている。0x15BC がある。
#define E1000_DEV_ID_PCH_CNP_I219_LM6 0x15BD #define E1000_DEV_ID_PCH_CNP_I219_V6 0x15BE #define E1000_DEV_ID_PCH_CNP_I219_LM7 0x15BB #define E1000_DEV_ID_PCH_CNP_I219_V7 0x15BC
make するにはまず
sudo apt-get install make gcc sudo apt-get install linux-headers-`uname -r`
ソースをそのままで make するとエラーになるので Makefile の
の次の行にEXTRA_CFLAGS += $(CFLAGS_EXTRA)
を追加してから make。EXTRA_CFLAGS += -fno-pie
これでできた e1000e.ko を使うと無事に認識。
実際には適当な USB-LAN を使ってインストールしてから e1000e を
したけど、別のマシンで make しておいてインストール時の nic 認識のときに読み込ませればよさそう。make sudo make install
で認識したので、あとはいけそう。modprobe ptp (依存している module) insmod /SOME-PATH/e1000e.ko