| tags:raspberry pi categories:server

パイ・カーネル64

頑なにこだわり続けてた64bit化。 Archを試したり、公式に64bitをサポートしているopenSuseやDebian.Buster PREVIEW版を試したり、busterで作ったカーネルをラズビアンに入れてみたりと、 色々チャレンジしました。

自分の場合、ブルートゥースがマストなので、鬼門になる。自分でカーネルをビルドするも機能しない、カーネル・オプションの設定も間違いはないように思えるが、まぁ、色々試すもうまくいかず。 ハード的に少しトリッキーでもあると書いてあるところもあったし、ちょっと他の調整もひつようなのかもしれん。。ブルートゥースが問題なく使えるのは、ラズビアンとダイエットパイのみ(32bit)でした。

最後の方で見つけた、Pi3.64用のGentooをインストールしようかとも思ったけれど、、、この、ディストリビューションの存在は相当前から知っていはいるが、癖のあるディストリビューションなので未だインストールもしたことなし。手をつけてませんでした。で、そんな中、そのGentooで使われているカーネルを拝借する方法が出てました。

https://www.raspberrypi.org/forums/viewtopic.php?p=1424256#p1424113

投稿記事の真ん中あたりです。投稿者は sakakiさん 、日本の方なのかな、PiB3をGentooで動かしてます。 しかも、ブルートゥースも動くと書いてあったので、試してみたところ、うまくいきました。

作業手順は丁寧に説明をされています。ほぼ、出ているままです。

Download

ここでは4.19.30.20190326/bcmrpi3-kernel-bis-4.19.30.20190326.tar.xzをダウンロードしてますが、ていき的にアップデートされているようです。https://github.com/sakaki-/bcmrpi3-kernel-bis#installation

pi@raspberrypi:~ $ wget -c https://github.com/sakaki-/bcmrpi3-kernel-bis/releases/download/4.19.30.20190326/bcmrpi3-kernel-bis-4.19.30.20190326.tar.xz

作業

まず、レポジトリーにあるカーネルをaptでアップデートされないように、保留にします。

pi@raspberrypi:~ $ sudo apt-mark hold raspberrypi-kernel

以前の32bit環境の設定などを、バックアップします

pi@raspberrypi:~ $ sudo mkdir -pv /boot/r32-dtbs
pi@raspberrypi:~ $ sudo mv -v /boot/*.dtb /boot/r32-dtbs/

インストール作業

落としたカーネルファイル一気に展開します。

pi@raspberrypi:~ $ sudo tar --exclude='COPYING.linux' -xJf bcmrpi3-kernel-bis-4.19.30.20190326.tar.xz -C /
pi@raspberrypi:~ $ sync

新しい、デバイストリーなどを整理します。プートパーティションの中は以下のようになります。

pi@raspberrypi:~ $ sudo mkdir -pv /boot/r64-dtbs
pi@raspberrypi:~ $ sudo cp -v /boot/*.dtb /boot/r64-dtbs/
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ ls -a /boot/
.           ._config.txt      System.map                bcm2837-rpi-3-b.dtb  config.txt    fixup_x.dat  kernel8.img  start.elf
..          COPYING.linux     bcm2710-rpi-3-b-plus.dtb  bootcode.bin         fixup.dat     issue.txt    overlays     start_cd.elf
.Trashes    LICENCE.broadcom  bcm2710-rpi-3-b.dtb       cmdline.txt          fixup_cd.dat  kernel.img   r32-dtbs     start_db.elf
._.Trashes  LICENSE.oracle    bcm2710-rpi-cm3.dtb       config               fixup_db.dat  kernel7.img  r64-dtbs     start_x.elf
pi@raspberrypi:~ $

そして、再起動します。

pi@raspberrypi:~ $ sudo reboot

64bit Kernel

そして、ブルートゥースも、cpufreqも動きましたぁ。。

!!イイェイ!!!

BT Running

あぁ〜〜〜〜〜、長い道のりだったでよ。。。

さて、これのユーザーランドは32bit環境なので、さて、もう一丁最後の仕上げと行くか、、どうするか、、

で、ちょっと試してみるも、、、まぁ、ちょっとよくわからない。。で、当分はこのままの形で運用していきます。 6月頃には少し、落ちつていればな、、と期待しつつ。

See Also

comments powered by Disqus