LoginSignup
1
1

More than 1 year has passed since last update.

ODROID GO ADVANCEのカーネルをビルドする

Last updated at Posted at 2021-11-24

基本的なやり方は公式の通り。

上記を参考に、というかそのまんまを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
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1