ユーザ用ツール

サイト用ツール


raspberry_pi_4の再セットアップ

**文書の過去の版を表示しています。**

ラズベリーパイ4の再セットアップ

2022/5/25実施。 Ubuntu Server 21.10から、GUIを入れてセットアップしたもの(raspi4-01)を用いて、カーネルビルド環境を再構築する。

$ sudo apt update
$ sudo apt upgrade

impishが21.10、jammyが22.04。なのに、gitで取って来てmake bcm2711_defconfigした時の.configの先頭に現れるコメントが、impishが5.13.19、jammyが5.13.14、となっているのはなぜ?

ちなみに、git clone先は、以下の通り。

git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/impish
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/jammy

両方 git cloneして調べてみよう。 あれ、今回は、jammyの下でmake bcm2711defconfigすると、5.15.30という数字になった。 impishの下で改めてmake bcm2711defconfigすると、、、5.13.19のまま。

raspi4-02 (8GB RAM版の方、Ubuntu Desktop 22.04でセットアップしたもの)で、make cleanしてmake bcm2711_defconfigしなおしてみると、、5.13.14となる。なぜ? git cloneからやりなおしてみると、、5.13.30になった。jammyとして小さい数字から上げて行っているのかな?そして、バージョンが古かったから、例えば、GUIでフリーズするなどの問題がある、などということはあるのだろうか?

新しくgitから取り直した環境、5.13.30の環境で、また、ビルドしてみる。 LOCALVERSIONをv8-custom2としてビルド。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install git bc bison flex libssl-dev make
$ git clone --depth=1 git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/jammy
$ cd jammy
$ export KERNEL=kernel8
$ make bcm2711_defconfig
$ vi .config // CONFIG_LOCALVERSION="-v8-CUSTOM" と指定する→5.13.14-v8-CUSTOMというのがフルのバージョン番号

CPUクロックを1000MHzに制限する。

$ sudo apt install cpufrequtils
$ sudo vi /etc/default/cpufrequtils # ファイルを作成
ENABLE="true"
GOVERNOR="userspace"
MAX_SPEED=1000000
MIN_SPEED=1000000
$ sudo reboot

cpufrequtilsが効いているかどうかは以下のコマンドで確認できる。

$ cpufreq-info

クロック周波数を制限した上で、以下を実施。

$ make -j4 Image.gz modules dtbs
$ sudo make modules_install
$ sudo cp .config /boot/config-5.13.14-v8-custom
$ sudo cp System.map /boot/System.map-5.13.14-v8-custom
$ sudo chmod 600 /boot/System.map-5.13.14-v8-custom
$ sudo cp arch/arm64/boot/Image.gz /boot/vmlinuz-5.13.14-v8-custom
$ sudo chmod 600 /boot/vmlinuz-5.13.14-v8-custom
$ sudo mkdir /boot/dtbs/5.13.14-v8-custom
$ sudo mkdir /lib/firmware/5.15.30-v8-custom2
$ sudo mkdir /lib/firmware/5.15.30-v8-custom2/device-tree
$ sudo cp arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb /lib/firmware/5.15.30-v8-custom2/device-tree/
$ sudo chmod 755 /lib/firmware/5.15.30-v8-custom2/device-tree/bcm2711-rpi-4-b.dtb 

多分、/lib/firmware/の下に置いておけば、update-initramfsで、DTBも/boot/にコピーされるのではないか。 その上で、initrd.imgが生成されたのだと推測。

$ sudo update-initramfs -c -k 5.15.30-v8-custom2
update-initramfs: Generating /boot/initrd.img-5.15.30-v8-custom2
Using DTB: bcm2711-rpi-4-b.dtb
Installing /lib/firmware/5.15.30-v8-custom2/device-tree/bcm2711-rpi-4-b.dtb into /boot/dtbs/5.15.30-v8-custom2/./bcm2711-rpi-4-b.dtb
Taking backup of bcm2711-rpi-4-b.dtb.
Installing new bcm2711-rpi-4-b.dtb.
Ignoring old or unknown version 5.15.30-v8-custom2 (latest is 5.15.0-1008-raspi)

先にDTBをコピーしてたから、最後のメッセージが出たのだろう。

$ cd /boot
$ sudo rm initrd.img.old
$ sudo ln -s initrd.img-5.15.0-1006-raspi initrd.img.old
$ sudo rm initrd.img
$ sudo ln -s initrd.img-5.13.14-v8-custom initrd.img
$ sudo rm vmlinuz.old 
$ sudo ln -s vmlinuz-5.15.0-1006-raspi vmlinuz.old
$ sudo rm vmlinuz
$ sudo ln -s vmlinuz-5.13.14-v8-custom vmlinuz
$ sudo rm dtb
$ sudo ln -s dtbs/5.13.14-v8-custom/./bcm2711-rpi-4-b.dtb dtb-5.13.14-v8-custom
$ sudo ln -s dtb-5.13.14-v8-custom dtb
$ cd firmware
$ sudo cp ../vmlinuz-5.13.14-v8-custom vmlinuz
$ sudo cp ../dtbs/5.13.14-v8-custom/./bcm2711-rpi-4-b.dtb bcm2711-rpi-4-b.dtb
$ sudo cp ../initrd.img-5.13.14-v8-custom initrd.img

CUIで確認するとログインでき、uname -aで、自分でビルドしたカーネルで起動したことが確認できた。 GUIでログインできないのは、元のバージョンからそうだったので、その問題が発症したものと推測。

raspberry_pi_4の再セットアップ.1653482400.txt.gz · 最終更新: 2022/05/25 21:40 by makotoa67