Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Plamo Linux の野良パッケージ作成(その46): ARM 用の aarch64 kernel を作ってみた

ぼちぼちと Plamo のソース一式を修正して,野良パッケージ (野良ディストリビューション?) を作成.

いつまで続くのか.

いじってる野良パッケージのビルドスクリプトhttps://github.com/t-matsuki/Plamo-mysrc,バイナリは https://circle2.org/pub/ にあります.

久しぶりに ARM 環境をいじってみてる.

なんとなく ARM の 64bit 対応をしてみようかなと思い立って,手始めに今あるラズパイ用 Plamo の野良環境に aarch64 用 kernel を入れてみました.

面倒だったので AMD デスクトップにインストールしてる debian のクロス環境を使ってカーネルバイナリを作成しました.手順としてはこんな感じかな.

apt-get install gcc-6-aarch64-linux-gnu gcc-aarch64-linux-gnu
git clone --depth 1 --branch rpi-4.14.y https://github.com/raspberrypi/linux
cd linux
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make bcmrpi3_defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j4
cd ..

で,必要なファイルを取り出してまとめ作業.

mkdir -p work/boot
cp linux/arch/arm64/boot/Image work/boot/kernel8.img
cp linux/arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dtb work/boot
cd linux/
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make modules_install INSTALL_MOD_PATH=../work
cd ../work
tar cvf ../kernel8.tar .

出来上がった kernel8.tar をラズパイに持って行って

tar xvf kernel8.tar -C /

で展開したあとに再起動.無事,64bit kernel で立ち上がったみたい.

$ uname -a
Linux rasp 4.14.32-v8+ #1 SMP PREEMPT Sat Apr 7 10:31:43 JST 2018 aarch64 GNU/Linux

カーネルだけ 64bit で他が 32bit 環境ね.けど,firmware

[ 1140.833923] raspberrypi-firmware soc:firmware: Request 0x00030046 returned status 0x80000001
[ 1142.881937] raspberrypi-firmware soc:firmware: Request 0x00030046 returned status 0x80000001
[ 1144.929929] raspberrypi-firmware soc:firmware: Request 0x00030046 returned status 0x80000001
[ 1146.977921] raspberrypi-firmware soc:firmware: Request 0x00030046 returned status 0x80000001

なエラーをはいてるな.firmware も git から最新を取ってきて差し替えた方が良いかも.

あとは,gcc などの開発ツール一式をそろえて徐々にパッケージのビルドをしていけば 64bit 環境が出来上がるかなぁと思っていたり.

それにしても,なんか全然違うことばかりやってて,以前からやらないといけないって言ってる全体のまとめ作業をしていないですね....

どうしても色々なことを試す方が楽しいのでそっちばかりやってしまうんですよね.まぁ,まとめ作業もぼちぼちやっていきます.はい.

そんな感じです.

Raspberry Pi3 コンプリートスターターキット (Standard 16G)
TechShare
TechShare