Zynqberryを入手したら最初に行う10のステップ(前編)

Raspberry Piと同じ形状でZYNQを搭載したZynqberry(ジンクベリー)というボードがドイツのトレンツエレクトニック社から発売されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/85e1cdc8-38b9-e0da-e043-13ca041355f6.png)

XC7Z010にUSBホストやLAN、HDMI、512MBのRAMなどが搭載され、組み込みシステムやIoTとしてすぐに使える形になっています。ZYBOよりもレベルアップしたい方にお勧めのボードです。

このボード用のLinuxを構築するにはPetaLinuxを使ってU-BootからカーネルからDebianまで全部自分でビルドしなければならないのですが、それには途方もないハードディスク容量と時間がかかり、Linuxを理解していても軽く一週間はかかる作業になります。Linuxの構築に慣れていない人にとっては現実的には不可能です。

そこで、日本の代理店が下記のページで製品を紹介し、
https://www.trenz.jp/aboutzynqberry.html
下記のLinuxが動作するSDカードイメージを配布しています。
https://www.trenz.jp/download.html

これを使ってZynqberryを快適なLinuxサーバにする方法を紹介しまｓ。

# OSが起動するまでのセットアップ
## ダウンロードとインストール

必要なものは以下の2点です。

- [boot.bin ](http://www.tokudenkairo.co.jp/login2/getfile.php?target=ZBBOOTBIN) (2.1MByte)
- [Ubuntu 18.04 SDカードイメージ](http://trenz.jp/zynqberry_ubuntu18_complete.img.gz) (1.3GByte)

### boot.bin

日本の代理店が [Zynqberryスタータキット](https://www.trenz.jp//product.php/TE0726-STARTER-KIT/?prodname=TE0726-STARTER-KIT/) というのを出しているので、これを購入すればオンボードROMへの書き込みがされているため、boot.binをダウンロードする必要はありません。
そうでない場合（つまりZynqberryのボード本体のみを入手した場合）には、何とか自分でboot.binを作って書き込まなければなりません。

### SDカードイメージ

SDカードイメージは、2019年12月以降に出荷された分についてはUbuntu 18.04が書き込まれていますが、それ以前に出荷された分については14.04が書き込まれているので、最新の機能を使うにはダウンロードする必要があります。
これは1.3GByteほどありますが、スタータキットを購入していない人でも誰でもダウンロードできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/8c5cce7c-0d7f-480d-57e9-7ac819351ed4.png)

ダウンロードして解凍するとzynqberry_ubuntu18_complete.imgというファイルが出てくるので、Win32DiskImagerを使って書き込みます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/b9bd5d72-1f8f-9346-92bd-0acbe7f7e07a.png)


SDカードは2つのパーティションが切られています。最初のパーティションはWindowsからも読める300MBのFAT32、2番目のパーティションはUbuntuのrootが入っているext4となっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/03de89a9-0658-61d4-5f60-71f2038e6f69.png)

SDカードをZynqberryに挿して起動すると、初回起動時に2番目のパーティションが自動的に拡張され、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/1540d96a-ea8a-834c-6ea7-3eccf19a248c.png)
SDカードの容量いっぱいまで拡張されますが、16GBのSDカードでも、32GBのSDカードでも使い切ることができます。書き込むのは最小のサイズのイメージファイルでよく、書き込み時間が短縮できます。利用可能な最小のSDカードは4GBです。

## 最初の起動
最初はUSBを使ってホストPCと接続します。オンボードのUSB-UARTによりCOMポートが出現しますので、TeraTermなどを使って接続します。
最初に起動したときに、パーティションの拡張が行われ、16GBのSDカードすべてが使えるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/decebfb8-474d-ee61-173f-1ca740ed1365.png)

## 追加のインストール
OS本体はインストールされましたが、無線LANを使うためのファームウェアというファイルや、lib/modules 以下に含まれるカーネルモジュールのためのファイルが入っていません。
それらは、
https://trenz.jp/files/zbs/zynqberry-4.9.0-include.tgz
https://trenz.jp/files/zbs/zynqberry-4.9.0-modules.tgz
https://trenz.jp/files/zbs/8188eu.ko
https://trenz.jp/files/zbs/rtl8188eufw.bin
にあるのですが、ダウンロードしてインストールするスクリプトが用意されているので、以下のようにしてインストールします。
スクリプトの中身が気になる方は、http://trenz.jp/files/zbs/update_zbs を覗いてみてください。

```
wget http://trenz.jp/files/zbs/update_zbs --no-check-certificate
chmod 755 update_zbs
./update_zbs
```

これで完全なインストールが行われ、insmodで追加のカーネルモジュールも利用できるようになります。

## aptの更新
`apt-update`と`apt-upgrade`はやっておきましょう。

```bash:
$ sudo apt update
$ sudo apt upgrade
```
USB COMポートのコンソールから入ればsudoは不要ですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/1dde0727-46ae-eec2-fb00-dda1f4a26dd2.png)


## .emacsファイルの編集
皆様はVim使いですか？
私はemacs派です。

デフォルトでは、emacsでBackSpaceを押すと変なヘルプが出るので、.emacsファイルを作成します。/rootと/home/zynqberryの2か所です。

```:.emacs
(keyboard-translate ?\C-h ?\C-?)
(global-set-key (kbd "C-h") 'delete-backward-char)
```

[後編](https://qiita.com/nahitafu/items/a3b61ff49243611f5777)に続く