LoginSignup
0
0

More than 3 years have passed since last update.

MacBookAir向けLinuxカーネルBuild

Posted at

LinuxカーネルBuild

MacにてLinuxカーネルBuildにトライ。できるだけ軽量かつ最低限の機能は搭載することを意図する。

用いたマシン

MacBook Air 11 inch
2GHz Intel Core i7
(購入時のマザーボードは故障して交換したため、スペックアップ)
8GB RAM

準備

マルチブート

MacOSとのマルーチブートを実現したかったため、rEFIndをインストール(Mac OS High Sierra(10.13.6)経由)。Windows10もインストールしているため、トリプルブートとなっている。

Lubuntuダウンロード

ここから、最新LTSである20.04をダウンロードしてインストールする。

Build

LinuxカーネルBuildについて検索すると多数の情報が見つかるが、このサイトをベースにすすめた。

カーネルソースコード

本家サイトからソースコードをダウンロード。用いたバージョンは、5.10.32。

$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.32.tar.xz

必要なパッケージのインストール

$ sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

Configuration

起動中Linuxのバージョンの情報を使って、「.config」をカスタマイズする。

$ cd linux-5.10.32
$ cp /boot/config-$(uname -r) .config

軽量化するために、このサイトを参考にした。下記順にmakeを実行。

$ make allnoconfig
$ make defconfig
$ make menuconfig

「allnoconfig」で最小化、「defconfig」でアーキテクチャ依存のデフォルト化を行う。「menuconfig」では、カーネル名の文字列追加("_may1")のみを実施。

MacBookAir(Mac?)固有のConfiguration

上記だけでは不十分であろうと判断して、「.config」中のApple関連をすべて有効化した(オリジナルの「.config」を参考に)。

CONFIG_APPLE_PROPERTIES=y
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_HID_APPLE=y
CONFIG_HID_APPLEIR=m
CONFIG_USB_APPLEDISPLAY=m
CONFIG_APPLE_MFI_FASTCHARGE=m
CONFIG_APPLE_GMUX=m

これでBuildしてトライしたが、タッチパッドおよびWiFiが使えず。調べたところ、次の有効化が必要であった。

CONFIG_MOUSE_BCM5974=m
CONFIG_BRCMSMAC=m

前者がタッチパッド、後者がWiFi用のConfiguration。

make

$ make -j 4

おおよそ45分くらい要した。ちなみに、単に/bootディレクトリからコピーしてきた「.config」を使ってBuildしたときには、4時間以上かかった。当然であるが、軽量化すれば、Build時間も減る。

$ sudo make install_module
$ sudo make install

によりインストール。/bootディレクトリにBuildされたカーネルがコピーされる。

起動

rEFIndによるOS選択画面は次にようになり、デフォルトでは最後にBuildしたカーネル(末尾に追加した文字列「_may1」)で起動する。
IMG_20210502_103403.jpg

ここでF2を押すと、
IMG_20210502_103338.jpg
となり、他のカーネルを選択できる。

作成したカーネルの状況をunameコマンドで確認。(小さくてごめんなさい。MacBookAirを見せたかったので。)
IMG_20210503_132847.jpg

成功。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0