XPS 13でいろいろとデバイス上の問題が多発するので、ここは素直にカーネルのビルドにチャレンジする。昔はカーネルビルドは普通にやっていたけど、今はビルドしなくても特に問題が起こることもないし、平和な日々を送ってこれたが、XPSのせいで一変してしまった…。
というわけで、ビルド。ビルドの前に下準備が必要。この辺を参考にして、以下のものを入れておく。build-depをする前に/etc/apt/source.listは変更が必要。
$ sudo apt install kernel-package $ sudo apt install git ccache fakeroot libncurses5-dev $ sudo apt build-dep linux
準備ができたら、適当なディレクトリにカーネルのソースコードを持ってくる。www.kernel.orgを参照する。今回は5.3.1を入れてみる。
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.3.1.tar.xz $ tar Jxvf linux-5.3.1.tar.xz $ cd linux-5.3.1 $ cp /boot/config-`uname -r` .config $ make oldconfig
make oldconfigをすると、差分のオプションを次々と聞かれる。Enterを押し続ければ、とりあえず、デフォルトで設定される。まぁ、ビルド後、うまくいかないものがあれば、make menuconfigして、変更すれば良いはず。
コア数が8の環境だと、CONCURRENCY_LEVELを+1にして、-jを2倍くらいにしておけば良いっぽい。(追記:ここによるとCONCURRENCY_LEVELは不要らしい)
$ sudo -s # export CONCURRENCY_LEVEL=9 # make-kpkg -j 16 --rootcmd fakeroot --initrd --append_to_version=-codelibs --revision=001 kernel_image kernel_headers
–append_to_versionと–revisionは適当に設定する。あとは、しばらく待つ。速いマシンだと1時間くらいで終わるかも。
1階層上にdebパッケージができるので
# cd .. # dpkg -i linux-headers-5.3.1-codelibs_001_amd64.deb linux-image-5.3.1-codelibs_001_amd64.deb
という感じで、インストールして、あとはrebootして、カーネルが更新されているかをuname -rなどで確認すれば完了。