DeskMini 310 に Debian stretch

2018/8/4
2018/8/6

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)
の次の行に
  EXTRA_CFLAGS += -fno-pie
を追加してから make。

これでできた e1000e.ko を使うと無事に認識。

実際には適当な USB-LAN を使ってインストールしてから e1000e を

make
sudo make install
したけど、別のマシンで make しておいてインストール時の nic 認識のときに読み込ませればよさそう。
インストール USB に e1000e.ko を入れておいて、
modprobe ptp (依存している module)
insmod /SOME-PATH/e1000e.ko
で認識したので、あとはいけそう。