前回では Bluetooth Mesh サポートの Bluez をインストールしました。このままでは暗号化サポートを meshctl で利用できないため実行時にエラーで終了します。今回は暗号化サポートを meshctl で利用できるようにカーネル内に暗号化関係のモジュールを組み込むようカーネルの再構築を行います。また、現時点(2019-01-29)で最新のカーネルにリフレッシュします。
前回に引き続き Bluetooth公式ブログ (ココ)を参考にしています。
最新カーネルの取得
1 2 |
cd ~/bluez-work git clone --depth=1 https://github.com/raspberrypi/linux |
現状のconfig情報を取得
1 2 |
sudp modprobe configs zcat /proc/config.gz > ~/bluez-work/linux/.config |
暗号化サポート追加
1 2 |
cd linux make menuconfig |
Cryptgraphic API を選択
CMAC support を有効化
User-space interface for hash algorithms を有効化
User-space interface for symmetric key cipher algorithms を有効化
User-space interface for random number generator algorithms を有効化
User-space interface for AEAD cipher algorithms を有効化
kernel ビルド
1 |
make zImage modules dtbs |
現状の kernel などを待避
1 2 3 4 5 |
sudo mkdir /boot/kernel-backup sudo cp /boot/*.dtb /boot/kernel-backup/ sudo cp -r /boot/overlays /boot/kernel-backup/ sudo cp /boot/kernel.img /boot/kernel-backup/ sudo cp /boot/kernel7.img /boot/kernel-backup/ |
kernel インストール
1 2 3 4 5 |
sudo modules_install sudo cp arch/arm/boot/dts/*.dtb /boot/ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/ sudo cp arch/arm/boot/dts/README /boot/overlays/ sudo cp arch/arm/boot/zImage /boot/kernel.img |
以上で meshctl に必要なモジュールを組み込んだカーネルができました。問題なく再起動が完了すればカーネルの再構築は終了です。次回は meshctl の設定を行い使ってみます。