基本的なやり方は公式の通り。
上記を参考に、というかそのまんまをMac上のParallelsにインストールしたUbuntu20.04.2にて下記を行う。
必要なパッケージをインストール
$ sudo apt-get update
$ sudo apt-get install -y git lzop build-essential gcc bc libncurses5-dev libc6-i386 lib32stdc++6 zlib1g:i386
公式にはないが、openssl-devが無かったので下記でインストール。
$ sudo apt-get install -y libssl-dev
Toolchainのインストール
$ cd ~
$ sudo mkdir -p /opt/toolchains
$ wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz
$ sudo tar Jxvf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz -C /opt/toolchains
ホームディレクトリの.bashrc
に下記を追記。
~/.bashrc
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export PATH=/opt/toolchains/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/:$PATH
反映させる。
$ source ~/.bashrc
バージョンを確認。
$ aarch64-linux-gnu-gcc -v
...
COLLECT_LTO_WRAPPER=/opt/toolchains/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/6.3.1/lto-wrapper
...
gcc version 6.3.1 20170109 (Linaro GCC 6.3-2017.02)
カーネルのソースを入手
$ git clone https://github.com/hardkernel/linux.git -b odroidgoA-4.4.y
結構時間かかる。
カーネルをビルド
$ cd linux
$ make odroidgoa_defconfig
$ make -j2
-j2の部分はUbuntuが走ってる仮想マシンのCPUコア数(とメモリのサイズ)による。ビルドできたら下記の様に確認。
pythonが見つからない、というエラーが出た場合。
$ ls arch/arm64/boot/Image
arch/arm64/boot/Image
$ ls arch/arm64/boot/dts/rockchip/rk3326-odroidgo*.dtb
arch/arm64/boot/dts/rockchip/rk3326-odroidgo2-linux.dtb
arch/arm64/boot/dts/rockchip/rk3326-odroidgo2-linux-v11.dtb
arch/arm64/boot/dts/rockchip/rk3326-odroidgo3-linux.dtb
インストール
ODROID GO ADVANCEで使っているmicro SDカードをMacに挿して、Ubuntuに接続。自動で2つのパーティションがマウントされているはず。bootパーティションはおそらく/media/parallels/BOOT。
$ sudo cp arch/arm64/boot/Image /media/parallels/BOOT/
$ sudo cp arch/arm64/boot/dts/rockchip/rk3326-odroidgo2-linux*.dtb /media/parallels/BOOT/
$ sudo make modules_install ARCH=arm64 INSTALL_MOD_PATH=/media/parallels/root
micro SDカードをイジェクトしてMacから抜き、ODROID GO ADVANCEに挿して起動したらOK。
リアルタイムカーネルの導入
まだ途中。。。
Linux公式。
ODROID C2用の公式の説明。
アールテクニカ小出さんのraspberry pi用のブログ記事。
その他こちらのブログ記事。
$ cd ~/linux
$ wget https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.277-rt224.patch.gz
リアルタイムカーネルのためのアプリケーション側の設定。
Ubuntu-esでEmulationStationを無効にする、削除する
無効
$ sudo systemctl disable emulationstation
$ sudo systemctl enable getty@tty1
削除
$ sudo apt remove emulationstation-go2 emulators-64bit-go2 emulators-32bit-go2