みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

Giant BoardをDebian GNU/Linux 9 (stretch)で動かす

Giant Boardが届いた。

このボードにはCortext-A5コアのATSAMA5D27-D1G-CUが搭載されている。

MICROCHIPによると、こういうものらしい。

The SAMA5 series are high-performance, ultra-low power ARM Cortex-A5 core based MPU devices. They support multiple memories, including DDR3, LPDDR3, and QSPI Flash.

ATSAMA5D27MPU System in Packages (SiPs)というもので、パッケージの中にDDRも入っている。 なので、他にメモリを配置する必要がないためボードがかなり小さい。

Cortex-AなのでLinuxも動く。というか標準サポートのOSがDebianとなっている。

How to build custom Giant Board device images.を参考にOSをビルドしてみた。

作業環境はUbuntu 18.04

依存パッケージのインストール

device tree compilerをインストールする。18.04のaptでインストールできるバージョンは古いので下記から取ってくる。

$ cd /tmp
$ wget http://mirrors.edge.kernel.org/ubuntu/pool/main/d/device-tree-compiler/libfdt1_1.5.1-1_amd64.deb
$ wget http://mirrors.edge.kernel.org/ubuntu/pool/main/d/device-tree-compiler/device-tree-compiler_1.5.1-1_amd64.deb
$ sudo gdebi libfdt1_1.5.1-1_amd64.deb
$ sudo gdebi device-tree-compiler_1.5.1-1_amd64.deb

ツールのセットアップ

ビルド用のスクリプトを使用する。

$ git clone https://github.com/Groboards/giantboard-tools.git
$ cd giantboard-tools
$ chmod +x build_menu.sh
$ ./build_menu.sh

メニューを起動する。

Build Options:
1: Setup Build Environment.(Run on first setup.)
2: Build at91bootstrap
3: Build u-boot
4: Build kernel/clean
5: Rebuild kernel
6: Build debian rootfs
7: Chroot into rootfs
8: Build device overlays
9: Make bootable device image
Enter selection [1-7] > 

初回実行時は1: Setup Build Environment.(Run on first setup.)を選択する。

それ以降は必要に応じて実行することになるが、まっさらな状態では次の順序で実行することになる。

| 2: Build at91bootstrap | 3: Build u-boot | 4: Build kernel/clean | 6: Build debian rootfs | 8: Build device overlays | 9: Make bootable device image

Build device overlaysで下記の様なエラーが出力されるが、特に問題はなさそう?

<stdin>:20.22-29.6: Warning (spi_bus_reg): /fragment@1/__overlay__/ethernet@1: SPI bus unit address format error, expected "0"
done building..

Make bootable device imagegiantboard.imgが生成される。

これをddコマンドなどでSDに書き込んで起動する。

$ sudo dd if=giantboard.img of=/dev/sdX bs=100M

/dev/sdXは環境によって適宜読み替える必要がある。

起動

ピンヘッダに出ているTX,RX,GNDをUSB-シリアル変換ケーブルでPCに接続し、minicomでログインする。

アカウントは次の通り。

item value
user root
passwd root

次のようになればOK。

Debian GNU/Linux 9 giantboard ttyS0

Login incorrect
giantboard login: root
Password:
Linux giantboard 5.0.0+ #1 Mon Feb 17 19:03:20 JST 2020 armv7l
   _____ _             _     ____                      _
  / ____(_)           | |   |  _ \                    | |
 | |  __ _  __ _ _ __ | |_  | |_) | ___   __ _ _ __ __| |
 | | |_ | |/ _` | '_ \| __| |  _ < / _ \ / _` | '__/ _` |
 | |__| | | (_| | | | | |_  | |_) | (_) | (_| | | | (_| |
  \_____|_|\__,_|_| |_|\__| |____/ \___/ \__,_|_|  \__,_|


root@giantboard:~# uname -a
Linux giantboard 5.0.0+ #1 Mon Feb 17 19:03:20 JST 2020 armv7l GNU/Linux
root@giantboard:~#

まとめ

giantboardが動いた。カーネルのージョンはもともと4.14とされていたのだが、意外にも5.0.0だった。

電源については少し不安定な様で、ボードのUSBポートへVBUSで給電するよりも、USB-シリアル変換の5VをボードのVBATに入れるのが安定しているように見えた。

素人ながら回路図を確認した感じだと、VBATは入ってすぐにMIC5247-2.0に入るので、 VBATは5V入れても問題なさそう。(わからんけど)

今のところは元気に動いているが、ちょっと電力を使うようなものを動かすとリブート祭りになる。