ポータブック用カーネルパッチの準備

ポータブック用のカーネルパッチを作るまでの手順
※例は4.19.8です。バージョンが変更になるとファイル構成が変わる可能性あり。

最新カーネルを取得

カーネルソースをダウンロード

https://www.kernel.orgからカーネルソースをダウンロード

mkdir kernel419
cd kernel419
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.8.tar.xz

解凍する

tar xvf linux-4.19.8.tar.xz

configファイルの取得

カーネルのメジャーリリースの場合は、configが大幅に変更されているため、対話形式で設定するのは面倒である。従って、開発PCにgeneric版のdebパッケージをインストールしてからgeneric版のconfigファイルを利用すると楽。

debパッケージの取得

 http://kernel.ubuntu.com/~kernel-ppa/mainline/からダウンロード。
・linux-headers…deb
・linux-headers…-generic…deb
・linux-image-unsigned…generic…deb
・linux-modules-…generic…deb

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19.8/linux-headers-4.19.8-041908_4.19.8-041908.201812080831_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19.8/linux-headers-4.19.8-041908-generic_4.19.8-041908.201812080831_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19.8/linux-image-unsigned-4.19.8-041908-generic_4.19.8-041908.201812080831_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19.8/linux-modules-4.19.8-041908-generic_4.19.8-041908.201812080831_amd64.deb

debパッケージのインストール

sudo dpkg -i *.deb

configファイルのコピー

cp /boot/config-4.19.8-019108-generic ./linux-4.19.8/.config

configファイルのmake

cd linux-4.19.8
make oldconfig

gitの準備

差分を取るためにgitで初期化を行う。ベースラインのcommitメッセージは適当に。

git init
git add .
git commit -m "master of kernel.org"

ctags

ctags用のファイルを作る。

ctags -R

ソースの編集

変更点を確認しつつソースを解析して編集する。

カーネルビルド

変更が終わったらカーネルをビルドする。sudo -sが必要。
下記のパラメータは環境に合わせて変更
・CONCURRENCY_LEVEL(CPUコア数+1)
・-j(CPUスレッド数×2)
・–append_to_version (わかりやすい名前を付ける。)
・–revision (リビジョンを管理したい時に使用する。)

sudo -s
time CONCURRENCY_LEVEL=9 make-kpkg -j 18 --rootcmd fakeroot --initrd --append_to_version=-xmc10-custom-20181213001 --revision=001 kernel_image kernel_headers

 ※ commitしていないのでこの時点でビルドされるカーネルバージョンには「+」というsuffixが付加される。

動作確認

ビルドが正常に完了すると親ディレクトリにdebファイルが作成される。実行端末にコピーしてインストールしてから動作確認を行う。

コメントを残す

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