« ORCA 登録情報変更への対応 | トップページ | ベンチマーク »

2019年5月30日 (木)

サーバの CPU アップグレード

Img_0540 前回サーバの 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) なる機能を発見した。これを使うと,カーネルのアップグレードの際に自動的にドライバをコンパイルして更新してくれるようになる。

  • I219-V のドライバのソースをダウンロード
  • 動いている ubunbu マシンで,インストーラのカーネルバージョンに合わせて make し,e1000e.ko を作る。
    $ LANG=C BUILD_KERNEL=4.4.0-142-generic make
    
  • インストーラでインストール開始。なお,UNetbootin だと CD-ROM 検出のところでエラーが出て進めなくなってしまう。
    Img_0445
  • 言語選択画面でおもむろに option-F2 を押してコンソールに入る。
  • e1000e.ko を入れた USB をマウントしてドライバをロードする。ptp が依存しているので先に modprobe する必要あり。(modinfo e1000e.ko | grep ^depends で確認)
    # modprobe ptp
    # insmod /mnt/e1000e-3.4.2.1/src/e1000e.ko
    # umount /mnt
    
  • option-F1 でインストーラに戻ってインストールを続ける。

インストール完了後,恒常的に e1000e ドライバが読み込まれるように設定する。

  • ドライバを home directory に持ってくる。
  • build-essential が必要なので,とりあえずつながるようにしてからインストールする。
    $ 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
    
  • インストールされたので,modprobe でドライバが有効になる。
    $ 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 でカーネルアップグレード後に自動的にドライバがインストールされるようにする。

  • dkms をインストール,/usr/src にドライバのソースをコピーする。
    $ sudo apt-get install dkms
    $ sudo cp -r ~/e1000e-3.4.2.1 /usr/src/
    
  • /usr/src/e1000e3.4.2.1/dkms.conf の作成。/lib/modules/${kernelver}/updates/dkms/ にドライバがセットされる。
    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
    
  • ドライバを dkms に登録,ビルド,インストールする手順。
    $ 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 のインストール

  • xen-hypervisor-amd64 のインストールで bridge-utils,xen-utils もインストールされる。
    $ sudo aptitude install xen-hypervisor-amd64
    
  • balooning の設定

« ORCA 登録情報変更への対応 | トップページ | ベンチマーク »

サーバ」カテゴリの記事