ARMv8な基板に手を出してみる時期かなと思いまして、OrangePi One Plusを発注してみました。近所の郵便局までは来ているようですので、明日受け取れれば良いのですが…という訳で、とりあえずU-bootのビルドを試みてみます。
いつもならOpenBSD上で試すのですが、toolchainの都合によりDebianで試します。apt-get install gcc-aarch64-linux-gnuとして、
wget ftp://ftp.denx.de/pub/u-boot/u-boot-2019.07.tar.bz2
tar xpf u-boot-2019.07.tar.bz2
cd u-boot-2019.07
make CROSS_COMPILE=aarch64-linux-gnu- orangepi_one_plus_defconfig
make CROSS_COMPILE=aarch64-linux-gnu-
|
これでおしまい。なお、bison, flex, swig, python-devも忘れずにapt-get installしておく必要があります。
linux-sunxi.orgのBootable SD cardに書かれている手順、得られたu-boot-sunxi-with-spl.binをSDカードの8kByte目から書き込む方法がARMv8の時代でも通用するかどうかは今のところ分かりません。届いてから試すことになります。
Using OpenBSD 6.5 arm64 (aarch64) on QEMUという記事があったので、リンクだけ張っておきます。時間があったらこれも試してみたいです。58.60kg(22:15)
04-Sep-2019補足:届いたので早速試してみましたが、上記の手順では不足しています。詳細はU-bootのboard/sunxi/README.sunxi64を見てほしいのですが、ATF(ARM Trusted Firmware)を以下の手順でビルドし、得られたbl31.binの所在をexport BL31=/path/to/bl31.binで設定してからU-bootのconfig/makeを行う必要があります。
git clone https://github.com/ARM-software/arm-trusted-firmware.git
cd arm-trusted-firmware
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_h6 bl31
|
bl31.binはbuild/sun50i_h6/release/bl31.binに生成されますが、ATFのmake時にDEBUG=1を追加しているとbuild/sun50i_h6/debug/bl31.binになります。
SDカードの作成についてはARMv7なAllwinnerと変わりません。OrangePi One Plusで起動したU-bootのログを置いときます。