Linux
centos7
e1000e
z370

ASRock Z370 Pro4 に CentOS-7 をインストール

新しいデスクトップPCを購入しました。

マザーボード: ASRock Z370 Pro4
CPU: Intel Core i7-8700k
メモリ: 32GB

さっそく CentOS-7 をインストールしましたが、ネットワークカードを認識しませんでした。
結論としては、ドライバ e1000e の新しいバージョンを組み込む必要がありました。

カーネルに最初から組み込まれているモジュール

$ sudo lsinitrd /boot/initramfs-3.10.0-693.11.1.el7.x86_64.img | grep e1000e
-rw-r--r--   1 root     root            7 Nov 17 17:17 etc/modules-load.d/e1000e.conf
drwxr-xr-x   2 root     root            0 Dec 15 10:36 usr/lib/modules/3.10.0-693.11.1.el7.x86_64/kernel/drivers/net/ethernet/intel/e1000e
-rw-r--r--   1 root     root        92972 Dec  5 09:43 usr/lib/modules/3.10.0-693.11.1.el7.x86_64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko.xz

新しくモジュールをコンパイルしてインストールした後

$ sudo lsinitrd /boot/initramfs-3.10.0-693.11.1.el7.x86_64.img | grep e1000e
-rw-r--r--   1 root     root            7 Nov 17 17:17 etc/modules-load.d/e1000e.conf
drwxr-xr-x   2 root     root            0 Dec 15 14:44 usr/lib/modules/3.10.0-693.11.1.el7.x86_64/updates/drivers/net/ethernet/intel/e1000e
-rw-r--r--   1 root     root       404584 Dec 15 14:44 usr/lib/modules/3.10.0-693.11.1.el7.x86_64/updates/drivers/net/ethernet/intel/e1000e/e1000e.ko

インストール手順

$ tar zxf e1000e-3.3.6.tar.gz
$ cd e1000e-3.3.6/
$ cd src/
$ vi nvm.c
nvm.c
/**
 *  e1000e_validate_nvm_checksum_generic - Validate EEPROM checksum
 *  @hw: pointer to the HW structure
 *
 *  Calculates the EEPROM checksum by reading/adding each word of the EEPROM
 *  and then verifies that the sum of the EEPROM is equal to 0xBABA.
 **/
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
        return 0;
}
$ make
$ sudo make install
$ sudo rmmod e1000e
$ sudo modprobe e1000e
$ sudo depmod -a
$ sudo dracut -f -v

最後、dracut でイメージも更新しておくことで、次回マシン起動時にも新しいほうのドライバが読み込まれます。