概要
windows 10
がinstallされていたPCにUbuntu18.04
をusbからboot installした時に発生した問題。画面上部にネットワークのアイコンがない上に、settings
の中身にも、なぜかwired settings
という項目がありませんでした。
原因
ネットワークアダプタに適合するドライバーがないこと。
前提
まずは、インターネット環境を手に入れます。(後述のmake等のinstallのため)
USBネットワークアダプタ(有線でも無線でも)を使って一時的にネットワークを使えるようにし、"apt install" で make, gcc などのコンパイル環境を整えてから、Intel ドライバーをコンパイル、インストールする必要があります。
USB型の無線ルーターがあるので、それを入手します。
例 TP-Link WIFI 無線LAN 子機 11n/11g/b デュアルモード対応モデル TL-WN725N
こちらを通すことで、WiFi環境を得ることができました。
本題の有線環境の設定は次の通りです。
確認
$ lspci |grep Ethernet
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V
$ dmesg |grep -i NVM
[ 1.380867] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid
[ 322.633661] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid
今回は、このエラーのせいで有線ネットワークがうまく機能していませんでした。
対処法
sudo apt update
sudo apt install make build-essential
ドライバーを以下のIntel公式HPよりダウンロードし解凍する。
Linux * での PCIe * Intel®ギガビット・イーサネット・ネットワーク接続向けインテル®ネットワーク・アダプター・ドライバー
tar -zxvf e1000e-3.6.0.tar.gz
cd e1000e-3.6.0/src
nvm.cの関数s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
の中身でreturn以外の部分をコメントアウトします。
sudo vi nvm.c
// ・・・
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
// s32 ret_val;
// u16 checksum = 0;
// u16 i, nvm_data;
//
// for (i = 0; i < (NVM_CHECKSUM_REG + 1); i++) {
// ret_val = e1000_read_nvm(hw, i, 1, &nvm_data);
// if (ret_val) {
// e_dbg("NVM Read Error\n");
// return ret_val;
// }
// checksum += nvm_data;
// }
//
// if (checksum != (u16)NVM_SUM) {
// e_dbg("NVM Checksum Invalid\n");
// return -E1000_ERR_NVM;
// }
return 0;
}
// ・・・
ドライバーをインストールして、ネットワーク設定を再起動します。
sudo make install
sudo modprobe -r e1000e
sudo modprobe e1000e
sudo service network-manager restart