ubuntuに有線LAN（Ethernet controller: Intel Corporation Device 15fa (rev 11) ）のドライバをインストールする

新しいPCを買ったら有線LANが繋がらず焦った。ひとまずUSB Wifiを繋いで以下の準備をして無事に繋ぐことができた。

新しいPCはFRONTINERで購入した以下の構成のもの

> Windows(R) 10 Home 64bit版 [正規版]
インテル Core i5-10400F プロセッサー　(2.90GHz [最大4.30GHz] / 6コア / 12スレッド / 12MBキャッシュ / TDP 65W)
16GB(16GB×1) PC4-25600(DDR4-3200) DDR4 SDRAM
【NVMe SSD】1TB SSD
NVIDIA(R) GeForce RTX(TM) 3060 12GB【HDMI2.1 x1 / DisplayPort1.4a x3】
インテル B560 チップセット搭載マザーボード
600W ATX電源 80PLUS BRONZE (日本製コンデンサ仕様)

ほとんど以下を参考にさせて頂いた。

> [Ubuntu 18.04 で NIC（有線）が認識しない](https://qiita.com/matsuo7005/items/b0037b6450d752378316)

まず以下をインストール

```
$ sudo apt install gcc make -y
```

Ethernetの種類を確認して、ドライバをダウンロードする。

```
$ lspci | grep Ethernet
00:1f.6 Ethernet controller: Intel Corporation Device 15fa (rev 11)
```

> [CONFIG_E1000E: Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support](https://cateee.net/lkddb/web-lkddb/E1000E.html)
> vendor: 8086 ("Intel Corporation"), device: 15fa ("Ethernet Connection (14) I219-V")


ダウンロードサイトや、ビルドも参考サイト（[Ubuntu 18.04 で NIC（有線）が認識しない](https://qiita.com/matsuo7005/items/b0037b6450d752378316)）を参照する

> 以下のサイトからドライバをダウンロード。（WiFiを使うか、他のPCを使ってください） https://downloadcenter.intel.com/download/15817/Intel-Network-Adapter-Driver-for-PCIe-Intel-Gigabit-Ethernet-Network-Connections-Under-Linux-

>$ tar zxvf e1000e-3.8.4.tar.gz
$ cd e1000e-3.8.4/src/

> ここで、大事なことのですが、このままビルドしても、Checksum エラーで引っかかります。ソースコード ./e1000e-3.8.4/src/nvm.c を一部修正しました。before / after で掲載します。

> ビルドします。
$ sudo make install
カーネルモジュール追加。うまくいっていれば、ここでNICがリンクするはずです。
>
$ sudo modprobe -r e1000e
$ sudo modprobe e1000e


以下の通りになれば有線LANが繋がっているみたいだった

```
$ dmesg | grep e1000
[    2.277378] e1000e: loading out-of-tree module taints kernel.
[    2.277467] e1000e: module verification failed: signature and/or required key missing - tainting kernel
[    2.277979] e1000e: Intel(R) PRO/1000 Network Driver - 3.8.4-NAPI
[    2.277979] e1000e: Copyright(c) 1999 - 2020 Intel Corporation.
[    2.278002] e1000e 0000:00:1f.6: enabling device (0000 -> 0002)
[    2.278241] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[    2.566224] e1000e 0000:00:1f.6 0000:00:1f.6 (uninitialized): registered PHC clock
[    2.652151] e1000e 0000:00:1f.6 eth0: (PCI Express:2.5GT/s:Width x1) a8:a1:59:7a:1d:b3
[    2.652152] e1000e 0000:00:1f.6 eth0: Intel(R) PRO/1000 Network Connection
[    2.652237] e1000e 0000:00:1f.6 eth0: MAC: 13, PHY: 12, PBA No: FFFFFF-0FF
[    2.657658] e1000e 0000:00:1f.6 enp0s31f6: renamed from eth0
[    7.854206] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
```

ここで繋がって気をぬかずに以下を実行しておく

```
#今のモジュールを次回起動時に使用するように
sudo update-initramfs -u
```

## error対策

modprobeの際に以下のエラーが出た。セキュアブートがenableになっている事が原因っぽい。

```
$ sudo modprobe -r e1000e
$ sudo modprobe e1000e
modprobe: ERROR: could not insert 'e1000e': Operation not permitted
$ dmesg | grep -i secure
[    0.000000] secureboot: Secure boot enabled
```

UEFIからセキュアブートをdisableにしたらOKだった

```
$ dmesg | grep -i secure
[    0.000000] secureboot: Secure boot disabled
```

> [セキュアブートの変更方法、無効にする方法](https://freesoft.tvbok.com/tips/efi_installation/about_secure_boot.html#:~:text=UEFI%E7%94%BB%E9%9D%A2%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%9F,%E9%A0%85%E7%9B%AE%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%99%E3%80%82&text=%E3%80%8C%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%83%96%E3%83%BC%E3%83%88%E3%80%8D%E3%81%AF%E3%80%8C%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%80%8D%E3%82%BF%E3%83%96%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82&text=%E9%80%9A%E5%B8%B8%E3%81%AE%E3%83%9E%E3%82%B6%E3%83%BC%E3%81%AE%E5%A0%B4%E5%90%88,%E8%BF%B7%E3%81%86%E3%81%A8%E3%81%93%E3%82%8D%E3%81%AF%E7%89%B9%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82)

## `sudo modprobe e1000e`した場合に`e1000e: probe of 0000:00:1f.6 failed with error -5` error

```
[   84.561629] e1000e: Intel(R) PRO/1000 Network Driver - 3.8.4-NAPI
[   84.561629] e1000e: Copyright(c) 1999 - 2020 Intel Corporation.
[   84.561940] e1000e: probe of 0000:00:1f.6 failed with error -5
```

~~未解決~~ 以下記事を見つけてドライババージョンを改めて3.8.7にしたら解決した、、よかった。

>[オンボードのEthernetコントローラ(I219-V)がUbuntuで動かない時の対処](https://blog.spiralray.net/archives/474)
>[Intel Ethernet Drivers and Utilities](https://sourceforge.net/projects/e1000/files/e1000e%20historic%20archive/)

```
[ 1177.858085] e1000e: Intel(R) PRO/1000 Network Driver - 3.8.7-NAPI
[ 1177.858086] e1000e: Copyright(c) 1999 - 2020 Intel Corporation.
[ 1177.858330] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 1178.149658] e1000e 0000:00:1f.6 0000:00:1f.6 (uninitialized): registered PHC clock
[ 1178.235991] e1000e 0000:00:1f.6 eth0: (PCI Express:2.5GT/s:Width x1) a8:a1:59:7a:1d:b3
[ 1178.235993] e1000e 0000:00:1f.6 eth0: Intel(R) PRO/1000 Network Connection
[ 1178.236141] e1000e 0000:00:1f.6 eth0: MAC: 13, PHY: 12, PBA No: FFFFFF-0FF
[ 1178.237738] e1000e 0000:00:1f.6 enp0s31f6: renamed from eth0
```

# 参考
[ネットワークデバイスドライバを一からビルドしてインストールした](https://a-kawashiro.hatenablog.com/entry/2018/09/28/094450)
[Ubuntu 18.04 で NIC（有線）が認識しない](https://qiita.com/matsuo7005/items/b0037b6450d752378316)
[CONFIG_E1000E: Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support](https://cateee.net/lkddb/web-lkddb/E1000E.html)
[セキュアブートの変更方法、無効にする方法](https://freesoft.tvbok.com/tips/efi_installation/about_secure_boot.html#:~:text=UEFI%E7%94%BB%E9%9D%A2%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%9F,%E9%A0%85%E7%9B%AE%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%99%E3%80%82&text=%E3%80%8C%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%83%96%E3%83%BC%E3%83%88%E3%80%8D%E3%81%AF%E3%80%8C%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%80%8D%E3%82%BF%E3%83%96%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82&text=%E9%80%9A%E5%B8%B8%E3%81%AE%E3%83%9E%E3%82%B6%E3%83%BC%E3%81%AE%E5%A0%B4%E5%90%88,%E8%BF%B7%E3%81%86%E3%81%A8%E3%81%93%E3%82%8D%E3%81%AF%E7%89%B9%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82)
[オンボードのEthernetコントローラ(I219-V)がUbuntuで動かない時の対処](https://blog.spiralray.net/archives/474)
[Intel Ethernet Drivers and Utilities](https://sourceforge.net/projects/e1000/files/e1000e%20historic%20archive/)