WSL2のLinuxカーネルを、コンフィグ設定してビルド・使用します。
環境は前回と同じです。
前回のビルド環境をそのまま使う場合は、下記の手順3から始めてください。
●ビルド手順
手順1:カーネルソースをダウンロード
カーネルのソースコードはGitHubのMicrosoft公式のものを使用します。
$ curl -OL https://github.com/microsoft/WSL2-Linux-Kernel/archive/linux-msft-5.4.72.tar.gz
→ linux-msft-5.4.72.tar.gz ファイルができる
解凍します。
$ tar -zxf linux-msft-5.4.72.tar.gz
→ WSL2-Linux-Kernel-linux-msft-5.4.72 ディレクトリができる
手順2:カーネルのビルドに必要なソフトをインストール
カーネルソース内の README-Microsoft.WSL2 ファイルの2に書かれているツールをインストールします。
ただし、これaptでインストールするのに、sudo とinstall の間に apt が抜けているので、aptを追記して実行すること(昔から抜けてる。いいかげん直しなよ。。。)
$ sudo apt install build-essential flex bison libssl-dev libelf-dev
手順3:.configファイルの準備
ソースのディレクトリへ入り、Microsoft/config-wsl ファイルをコピーする
$ cd WSL2-Linux-Kernel-linux-msft-5.4.72 $ cp Microsoft/config-wsl .config
手順4:.configファイルを編集
方法はいくつかありますが、今回はmenuconfigを使ってGUIで編集します。
事前にmenuconfig用ツールのインストールが必要
$ sudo apt install libncurses-dev
今回は、カーネルの名前を変えることとします。
以下の項目を設定します。
General setup --->
Local version - append to kernel release
WSL2のデフォルトは「-microsoft-standard-WSL2」なので、この名前を適当に変えます。
今回は例として「-microsoft-standard-WSL2-custom」とします。
この設定は、「uname -r」 で表示される名前が変ります。
書き換え出来たら、セーブして終了します。
手順5:カーネルをビルド
$ make
→ vmlinuxファイルができる
前回はコンフィグファイルを指定しましたが、今回は先ほど作った .config を使います。
手順6:vmlinuxファイルをWindows側へコピー
コピー先は任意の場所を使用できるが、Windowsの領域へコピーする。
今回の例では、Windowsの%USERPROFILE%ディレクトリの下にwsl2/5.4.72-microsoft-standard-WSL2-customディレクトリを作って、そこへコピーすることにします。
※(Windowsのユーザー名)は各環境で変えること
※%USERPROFILE%ディレクトリ = c:\Users\(Windowsのユーザー名) のディレクトリ
$ mkdir -p /mnt/c/Users/(Windowsのユーザー名)/wsl2/5.4.72-microsoft-standard-WSL2-custom $ cp vmlinux /mnt/c/Users/(Windowsのユーザー名)/wsl2/5.4.72-microsoft-standard-WSL2-custom
手順7:.wslconfigファイルで使用するlinuxカーネルを指定する
%USERPROFILE%ディレクトリの直下に .wslconfigファイルを、以下の内容で作る。
※"\"はエスケープシーケンスになるので2つ続けること
[wsl2] kernel = c:\\Users\\(Windowsのユーザー名)\\wsl2\\5.4.72-microsoft-standard-WSL2-custom\\vmlinux
手順8:wslをシャットダウンする
PowerShellで、wslをシャットダウンする。
PS > wsl --shutdown
手順9:wslを起動し、unameでバージョンを確認する
$ uname -a Linux earth 5.4.72-microsoft-standard-WSL2-custom #1 SMP Wed Mar 21 15:20:57 JST 2021 x86_64 x86_64 x86_64 GNU/Linux
ビルド日時などから、今作ったカーネルで起動できていることを確認する。
以上で、カーネルのカスタムビルドから起動するまででした。
次回は、Linuxカーネルの仮想CAN通信を有効にします。
0 件のコメント:
コメントを投稿