ポータブック用カスタムカーネルのビルド手順【Ubuntu18.04版】

 eMMCが32GBしかないためWindows10での運用がきついので、キングジムのポータブックXMC10にUbuntu18.04をインストールしてみました。そのままでは動かない部分があるので、カーネルにパッチを適用する必要があります。
 パッチの当て方がわからないという方向けに手順を紹介します。

 もくじ

注意事項

 ポータブック専用のパッチですが、個人的に作成・公開しているもので、メーカーとは一切関係ありません。
 ポータブックはLinuxは公式サポートしていないのでメーカー保証も受けられなくなります。自己責任でお願いいたします。

カーネルパッチについて

 パッチは下記のGithubで公開しています。4.19も公開しましたが、サスペンドすると復帰時に固まります。4.15を推奨します。

 https://github.com/mongonta0716/portabook/

cd ~
git clone https://github.com/mongonta0716/portabook

ビルドするPC

 ビルドするPCはポータブックである必要はありません。Ubuntu18.04(amd64)が動作していれば大丈夫です。
 ポータブックだとeMMCが32GBしかないためカーネルをビルドすると空き容量が無くなります。また、microSD上でビルドするとビルドに4時間以上かかります。

 以下、ポータブック上での作業は【XMC】、母艦のPCで作業する項目には【母艦】と付けます。

 母艦でのカーネルビルド環境は構築できているとします。(後日別記事で解説します。)

【XMC】【母艦】ソースの準備

 カーネルをビルドする前にソースの準備をします。

【XMC】①ソースパッケージのインストール

sudo apt install linux-source

【母艦】②scp等で母艦にコピー

cd ~
mkdir src
cd src
scp xmc10:/usr/src/linux-source-4.15.0.tar.bz2 .
tar xvf linux-source-4.15.0.tar.bz2

【母艦】③.configファイルのコピー

 カーネルをゼロからconfigしようとすると大変なので/bootからコピーします。

cd linux-source-4.15.0
scp xmc10:/boot/config-4.15.0-42-generic ./.config

【母艦】パッチの適用

  portabook_kernel4.15.patchを適用します。

patch -u -p 1 < ~/portabook/patch/portabook_kernel.4.15.patch

 ソースを開いてパッチが当たっているか確認してください。

【母艦】ビルド

【母艦】①make oldconfig

HID_KINGJIMという設定が増えています。make oldconfigを実行すると、、、

make oldconfig

下記のように聞かれるので「m」と答えてください。

Kingjim (HID_KINGJIM) [N/m/?] (NEW)

【母艦】②ビルド開始

  ビルドを開始します。sudo -sを忘れずに。Ubuntu18.04の場合、LANG=Cを入れないと後述のエラーが出ます。

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

make-kpkgのオプションについて

 環境によって変わるので下記のパラメータは自分で決めてください。()は私がWebで調べてしっくりきた値です。

  • CONCURRENCY_LEVEL(物理コア数×2+1)
  • -j (CONCURRENCY_LEVEL×2)
  • --append_to_version (自分で分かりやすいものを付ける。)
  • --revision (リビジョンを管理したい時に使用)

LANG=Cを忘れると出るエラー

./scripts/ubuntu-retpoline-extract-one: 134 行: printf: 0x十六進数ダンプ:: 無効な十六進数です
symbolmap: 00000000: invalid section

ビルド時間について

 カーネルビルドは時間がかかりますがビルド環境が良ければもっと短くなると思います。CPUとストレージの速さに依存する気がします。

●ビルド時間の参考値

  • ポータブックのmicroSD上でビルド ==> 4時間
  • Core i7-920+SSD ==> 1時間

【補足】ビルドに必要なパッケージ

ビルドするPCでは下記のパッケージが必要です。あらかじめインストールしてください。

  • build-essential
  • libncurses-dev
  • fakeroot
  • kernel-package
  • linux-source
  • libssl-dev

●コマンド

sudo apt-get -y install build-essential libncurses-dev fakeroot kernel-package linux-source libssl-dev

カーネル4.16以降で必要なパッケージ

bisonとflexが必要になりました。

sudo apt-get -y bison flex

最後に

 Ubuntu化したポータブックは、個人的にはLibretto20やEeePC901につづく名機(迷機?)だと思っています。壊れるまで活用していきたいと思います。液晶さえ(ry

 カーネル以外の変更手順は別記事にて紹介します。

コメントを残す

メールアドレスが公開されることはありません。

six − one =