« 2019年4月 | トップページ | 2019年6月 »
前回サーバの CPU を i7-3770K に更新してから既に6年以上経っていたことに気付いてしまい,気付いた以上仕方がないので 6年ぶりに CPU をアップグレードすることにした。今回 CPU は大分安くなってきた i9-9900K@3.6GHz,マザーボードは ASRock Z390M Pro4 (安心な日本語説明入り) を買ってきた。そして,前回と同じくそのままではネットワークが使えないことが判明した。orz
マザーボードの ether チップ (I219-V) が ubuntu 16.04 の e1000e ドライバ 3.2.6 だと対応していないのが原因で,最新の 3.4.2.1 に更新すると使えるようになる。前回の時もドライバ更新して対応はできたのだが,カーネルのアップグレードの度にドライバをコンパイルして更新するという面倒くさいことになってしまったため,on board LAN をあきらめてネットワークカードを買ってきたという経緯があった。
しかし,今回 web 検索で DKMS (Dynamic Kernel Module Support) なる機能を発見した。これを使うと,カーネルのアップグレードの際に自動的にドライバをコンパイルして更新してくれるようになる。
$ LANG=C BUILD_KERNEL=4.4.0-142-generic make
# modprobe ptp # insmod /mnt/e1000e-3.4.2.1/src/e1000e.ko # umount /mnt
インストール完了後,恒常的に e1000e ドライバが読み込まれるように設定する。
$ sudo modprobe ptp $ sudo insmod ~/e1000e-3.4.2.1/src/e1000e.ko $ sudo apt-get build-essential
$ sudo rmmod e1000e
$ cd ~/e1000e-3.4.2.1/src $ make $ sudo make install
$ sudo modprobe e1000e
$ sudo modinfo e1000e filename: /lib/modules/4.4.0-142-generic/updates/drivers/net/ethernet/intel/e1000e/e1000e.ko version: 3.4.2.1-NAPI :
dkms でカーネルアップグレード後に自動的にドライバがインストールされるようにする。
$ sudo apt-get install dkms $ sudo cp -r ~/e1000e-3.4.2.1 /usr/src/
PACKAGE_NAME="e1000e" PACKAGE_VERSION="3.4.2.1" BUILT_MODULE_LOCATION=src BUILT_MODULE_NAME[0]="e1000e" DEST_MODULE_LOCATION[0]="/updates" AUTOINSTALL="yes" MAKE[0]="BUILD_KERNEL=${kernelver} make -C src CFLAGS_EXTRA=-DDISABLE_PM" CLEAN[0]="make -C src clean" REMAKE_INITRD=yes
$ sudo dkms -m e1000e -v 3.4.2.1 add $ sudo dkms -m e1000e -v 3.4.2.1 build $ sudo dkms -m e1000e -v 3.4.2.1 install
xen のインストール
$ sudo aptitude install xen-hypervisor-amd64