XPS 13用のLinuxカーネル5.3を作る

DellのXPS 13 2 in 1に5.4-rc1をビルドして入れたものの、APIのインターフェースが変わったりで、動かないものがあり、ちょっと使えなそうなので、5.3系に転がっているパッチを当てつつ、Ubuntu 18.04でしばらく利用していこうかと思う。

それをするためには、ソース管理もきちんとしておかないと厳しそうなので、githubにlinux-5.3-xps_13_2in1としておいた。とりあえず、パッチ用ブランチとか作って、しばらく使って大丈夫そうだったら、マージしていこうと思う。

XPS 13 2 in 1は性能とかサイズ感とかもいい感じのマシンだと思うが、Ubuntuで使いたい人がどれだけいるかは謎だが、とりあえず、普通の人並みのUbuntu環境として使えるようにはしておきたいところ…。

現時点ではブート時にオプション無しでも起動できるようになった。今後は、Thunderboltあたりを何とかしたいところ…。

Ubuntu 18.04で最新カーネルをビルドして使う

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などで確認すれば完了。

Ubuntu 18.04のSlackアプリで日本語が使えない

Ubuntu 18.04で

$ sudo snap install slack --classic

で入れたアプリだと日本語入力ができない…。その場合は一旦削除して、公式サイトからダウンロードしてインストールする。

$ sudo dpkg -i slack-desktop-4.0.2-amd64.deb

とすると、日本語入力ができるようになる。