Debian 10でLinux kernel をアップグレードする(4.19=>5.4)

0,目次

  1. はじめに
  2. Linux Kernelのアップデート
    1. カーネルのダウンロード
    2. カーネルの導入
  3. 私見
  4. 参考文献

1,はじめに

Debian 10(buster)はLinux Kernel 4.19が使用されている。

root@VAIO-S-SB-Debian:~# uname -a
 Linux VAIO-S-SB-Debian 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux

しかし、Linux Kernel 5.1以上でないと動作しないハードウェアを買ってしまった。

そこで、Debian 10にて、Linux Kernel 5.4 (LTS)を導入する。

なお、安全なカーネル更新のやり方として、apt-get経由の方法がある。

apt-cache search linux-image

普通に上記コマンドで出てくるものについては、apt-getで導入ができる。

しかし、4.19までしか現時点(2020/02/22)では提供されていない。

そこで、5.1以上のカーネルを導入するべく裏技(Ubuntuのを使う)を使用する。

ドライバ周りで苦戦したので、実力がない人はやらないほうがいいです。。。

1-1,追記

henrich(@henrich)様から、Debianはbackportsにて最新のパッケージが取得できる旨、ご教示いただきました。

こちらを使用することで、本稿で実施しているような、Debianのカーネルのアップグレードなのに、Ubuntuのリポジトリからkernelを持ってくるような変なことをする必要はなくなります。

Debian Backportsの使い方につき、公式サイトの下記をご参照下さい。

 Debian Backports Instructions

2,Linux Kernelのアップデート

(1)カーネルのダウンロード

下記コマンドを実行する。

(A)カーネルヘッダー

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.21/linux-headers-5.4.21-050421_5.4.21-050421.202002191431_all.deb

(B)カーネル

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.21/linux-headers-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb

(C)カーネルイメージ

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.21/linux-image-unsigned-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb

(D)各種モジュール

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.21/linux-modules-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb

(2)カーネルの導入

導入を行う。

(A)ファイル確認

まず、ファイルを全て揃えているかの確認を行う。

ls -lha
root@VAIO-S-SB-Debian:~/workspace/linux-5.4# ls -lha
 合計 69M
 drwxr-xr-x 2 root root 4.0K  2月 23 10:35 .
 drwxr-xr-x 4 root root   37  2月 22 18:46 ..
 -rw-r--r-- 1 root root 7.6K  2月 20 06:26 CHECKSUMS
 -rw-r--r-- 1 root root 1.2M  2月 20 04:53 linux-headers-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb
 -rw-r--r-- 1 root root  11M  2月 20 04:35 linux-headers-5.4.21-050421_5.4.21-050421.202002191431_all.deb
 -rw-r--r-- 1 root root 8.4M  2月 20 04:52 linux-image-unsigned-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb
 -rw-r--r-- 1 root root  49M  2月 20 04:53 linux-modules-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb

上記のように、ヘッダー、ヘッダー的ななにか、カーネルイメージ、モジュールの4つのdebファイルがあれば良い。

(B)導入開始

dpkg -i *.deb

実行結果としては、下記の通りである。

root@VAIO-S-SB-Debian:~/workspace/linux-5.4# dpkg -i *.deb
 以前に未選択のパッケージ linux-headers-5.4.21-050421-generic を選択しています。
 (データベースを読み込んでいます … 現在 252405 個のファイルとディレクトリがインストールされています。)
 linux-headers-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb を展開する準備をしています …
 linux-headers-5.4.21-050421-generic (5.4.21-050421.202002191431) を展開しています…
 以前に未選択のパッケージ linux-headers-5.4.21-050421 を選択しています。
 linux-headers-5.4.21-050421_5.4.21-050421.202002191431_all.deb を展開する準備をしています …
 linux-headers-5.4.21-050421 (5.4.21-050421.202002191431) を展開しています…
 以前に未選択のパッケージ linux-image-unsigned-5.4.21-050421-generic を選択しています。
 linux-image-unsigned-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb を展開する準備をしています …
 linux-image-unsigned-5.4.21-050421-generic (5.4.21-050421.202002191431) を展開しています…
 以前に未選択のパッケージ linux-modules-5.4.21-050421-generic を選択しています。
 linux-modules-5.4.21-050421-generic_5.4.21-050421.202002191431_amd64.deb を展開する準備をしています …
 linux-modules-5.4.21-050421-generic (5.4.21-050421.202002191431) を展開しています…
 linux-headers-5.4.21-050421 (5.4.21-050421.202002191431) を設定しています …
 linux-modules-5.4.21-050421-generic (5.4.21-050421.202002191431) を設定しています …
 linux-headers-5.4.21-050421-generic (5.4.21-050421.202002191431) を設定しています …
 linux-image-unsigned-5.4.21-050421-generic (5.4.21-050421.202002191431) を設定しています …
 I: /vmlinuz.old is now a symlink to boot/vmlinuz-4.19.0-8-amd64
 I: /initrd.img.old is now a symlink to boot/initrd.img-4.19.0-8-amd64
 I: /vmlinuz is now a symlink to boot/vmlinuz-5.4.21-050421-generic
 I: /initrd.img is now a symlink to boot/initrd.img-5.4.21-050421-generic
 linux-image-unsigned-5.4.21-050421-generic (5.4.21-050421.202002191431) のトリガを処理しています …
 /etc/kernel/postinst.d/initramfs-tools:
 update-initramfs: Generating /boot/initrd.img-5.4.21-050421-generic
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8125a-3.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8107e-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8107e-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168h-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168h-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-3.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8402-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
 W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169
 W: Possible missing firmware /lib/firmware/nvidia/gp107/sec2/sig-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp107/sec2/image-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp107/sec2/desc-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp106/sec2/sig-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp106/sec2/image-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp106/sec2/desc-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp104/sec2/sig-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp104/sec2/image-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp104/sec2/desc-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp102/sec2/sig-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp102/sec2/image-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gp102/sec2/desc-1.bin for module nouveau
 W: Possible missing firmware /lib/firmware/nvidia/gv100/acr/ucode_load.bin for module nouveau
 /etc/kernel/postinst.d/zz-update-grub:
 Generating grub configuration file …
 Found background image: /usr/share/images/desktop-base/desktop-grub.png
 Linux イメージを見つけました: /boot/vmlinuz-5.4.21-050421-generic
 Found initrd image: /boot/initrd.img-5.4.21-050421-generic
 Linux イメージを見つけました: /boot/vmlinuz-4.19.0-8-amd64
 Found initrd image: /boot/initrd.img-4.19.0-8-amd64
 Linux イメージを見つけました: /boot/vmlinuz-4.9.0-12-amd64
 Found initrd image: /boot/initrd.img-4.9.0-12-amd64
 Linux イメージを見つけました: /boot/vmlinuz-4.9.0-11-amd64
 Found initrd image: /boot/initrd.img-4.9.0-11-amd64
 Linux イメージを見つけました: /boot/vmlinuz-4.9.0-9-amd64
 Found initrd image: /boot/initrd.img-4.9.0-9-amd64
 完了
root@VAIO-S-SB-Debian:~/workspace/linux-5.4# 

(C)再起動

reboot

(D)更新確認

Linuxカーネルが更新されたことを確認します。

jskny@VAIO-S-SB-Debian:~$ uname -r
 5.4.21-050421-generic

3,私見

公式が提供していないLinuxカーネルにアップデートするとなると、カーネルコンパイルだとおもっていた。

だが、DebianはUbuntuのLinuxカーネルイメージを流用できるらしく(怪しい)、それを今回試した。

一応、なんとか、動いた。

だが、NVIDIAのドライバが動かなくなり、解決に手間取ったことなどを考えると、下手にLinuxカーネルのアップデートとかは行わないほうが良いと考える。

4,参考文献

  1. How to install the latest/stable version of Linux kernel on Ubuntu Linux using apt-get – nixCraft

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA