NanoPi Neo4 でeMMCからOSをbootする

# はじめに
[NanoPI NEO4](https://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=241)は[FriendlyArm](https://www.friendlyarm.com/)が製造販売するARM SBC (Single Board Computer)です。60x45mm の小型のPCB上にLinux DeskTopに必要なものすべてと、eMMCインターフェースを含みます。
このeMMCはbootableでここに述べる方法によりmicroSD / HDD / USB Memを別につけることなく、eMMCからbootしFilesystemとしてMountし運用できます。

# 中文摘要
NanoPI NEO4是由FriendlyArm制造和销售的ARM SBC（单板计算机）。 包括Linux DeskTop和小型60x45mm PCB上的eMMC接口所需的一切。
该eMMC可从eMMC启动并可启动，并作为文件系统安装，无需通过此处描述的方法单独连接microSD / HDD / USB Mem。

# 仕様
NanoPi NEO4の仕様を記します。

- CPU:	Model: Rockchip RK3399； Number of Cores: big.LITTLE, 64-bit Dual Core Cortex-A72 + Quad Core Cortex-A53； 
- Frequency: Cortex-A72(up to 2.0GHz), Cortex-A53(up to 1.5GHz)
- GPU:	Mali-T864 GPU，supports OpenGL ES1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11, and AFBC
- VPU	4K VP9 and 4K 10bits H265/H264 60fps decoding, Dual VOP, etc
- DDR3 RAM:	1GB DDR3-1866
- Storage:	eMMC: no Onboard eMMC, but has a eMMC socket
- USB Host:	USB 3.0*1: USB 3.0 Type-A ports； USB Type-C*1: Supports USB2.0 OTG and Power input； USB 2.0*2: USB 2.0 Host, one is Type-A, the other is 2.54mm header
- WiFi:	802.11 b/g/n, Bluetooth 4.0 combo module
Antenna Interface:	Antenna*1: IPX Connector
Audio input/output Port	Video Input: one 4-Lane MIPI-CSI, up to 13MPix/s； Video Output: HDMI*1: HDMI 2.0a, supports 4K@60Hz，HDCP 1.4/2.
- microSD Slot:	MicroSD*1 for external storage up to 128GB
- LED:	Power LED(Red)*1；GPIO Controlled LED(Green)*1
- PCB Dimension:	8 Layer；60*45mm
- Power:	DC 5V/3A

# 購入
今のところ[直接通信販売](https://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=241)で求める以外方法がないようです。本体、放熱器、eMMCは必須です。電源ケーブルと電源も持ってなければ買いましょう。16GiB / 32GiB eMMCがありますがアプリケーションの容量で決めてください。microSDは最終的に外しますがbootable eMMCを製作するのに使います。eMMCと同容量が良いです。eMMCに入っているImageをSaveしたければeMMCの容量以上のUSB Memも用意してください。

# 組立
荷物が届いたら破損と員数を確認します。
問題なければ、早速組みたてましょう。

1. 放熱器に同梱されているM2.5 (今回はバインド小ネジです)ビスと、青紫の伝熱シールを取り出します。
2. 伝熱シールの両面についている透明シートをはがし基板裏側のCPUに貼り付けます。
3. ネジ穴を目印に基板を放熱器に乗せネジを締めます。対角線を描く順序で締めると均等になります。
4. eMMCを取り出し、基板上のソケットに挿します。(ネジが付属してますが使いません)
5. HDMIケーブルを挿します。
6. Keyboard, MouseをUSBに挿します。

[完了]
microSDは挿しません。

# First Boot
この状態のまま電源を入れてみましょう。
私の入手したものはeMMCにAndroid OSが入っていました。
普通に使えるようになります。

# LinuxをmicroSDから立ち上げる
次はmicroSDからLinuxを立ててみましょう。Armbian (Ubuntu) とFriendlyArm純正Debian Bionicがありますが手順は全く同じです。
その前に、[7zip](https://sevenzip.osdn.jp/download.html) と [Etcher](https://www.balena.io/etcher/)をdownloadしinstallしておいてください。

1. PCにLinux Image を[download](http://download.friendlyarm.com/nanopineo4)します。eflasher付きのものをお願いします。
2. 7zip で圧縮されているImage fileを解凍します。img, zipはそのままで結構です。
3. PCにmicroSDカードを挿しEtcher を起動します。
4. 今解凍したFileをEtcherに指定してmicroSDに焼きます。
5. microSDを外し、Neo4に挿します。
6. 一息入れて電源を入れます。
7. ubuntuとeflasherの選択になるのでubuntuを選択します。

立ち上がりましたか？

# First Login

1. Linuxが立った状態でUSBにUSB Memを挿します。
2. root passwd '1234'で入ります。
3. パスワードの変更を促すので変えます。
4. 一般ユーザーの入力になるのでユーザーとパスワードを入れます。

# Android OS ImageのSave
必要に応じて行ってください。Android OSは使わない方や自力でDLしてeMMCに入れられる人はよけなくて結構です。

1. 電源を入れます。
2. eflasher/ubuntuの選択でeflasherを選択します。
3. USB MemをNeo4に挿します。USBがいっぱいならHUBを挿して増設してください。
4. eMMCをUSBに避けるオペレーションを選択してください。

# eMMCにLinux Imageを入れます

1. 電源を入れます。
2. eflasher/ubuntuの選択でeflasherを選びます。
3. TFからeMMCへのStoreを選択します。

以上です。
電源を切り、microSDを抜いて電源を再投入してください。

# 初期イメージの復帰
復帰法は以下の通りです。

1. eflasher/ubuntuのmicroSDを挿します。
2. imageをSaveしたUSBを挿します。
3. 電源を入れます。
4. eflasher/ubuntuの選択でeflashを選択します。
5. USB memのimageをeMMCにrestareします。

# 結論

1. NanoPi Neo4は簡単にeMMCにLinuxを導入できます。
2. eMMCの多くはMLC NANDであり多くがTLCのmicroSDより丈夫で長持ちです。
3. eMMCは高速で高信頼性があります。

# 謝辞
査読くださった皆さんに感謝します。
[NanoPIの部屋](https://www.facebook.com/groups/131561651024605/)の皆さん、いつも「いいね」をありがとう。
[FriendlyArm](https://www.friendlyarm.com/)のみなさん、素晴らしいSBCの提供に感謝します。このレポートはFA社より無償提供されたハードウエアで実験し作成しました。