Nano Piをいじる（その５）

# Armbian Build
Nano Pi R6S向けArmbianのBuildの話である。どちらか言うと、Armbian Buildのためのメモである。

## Armbian
Armbianはシングルボードコンピュータ（SBC）向けのOS（Debian/Ubuntuベースのディストリビューション）と言える。名前のとおり、ARMベースのSBCがターゲット。本家サイトは下記となる。
- [armbian  Linux for ARM development boards](https://www.armbian.com/)

## Build
Buildのための環境は、[github上のこちら](https://github.com/armbian/build)にある。引用すると下記となる。
- x86_64 / aarch64 machine
- at least 2GB of memory and ~35GB of disk space for VM, container or bare metal installation
- Armbian / Ubuntu Jammy 22.04.x for native building or any Docker capable Linux for containerised
- Windows 10/11 with WSL2 subsystem running Ubuntu Jammy 22.04.x
- Superuser rights (configured sudo or root access).
- Make sure your system is up-to-date! Outdated Docker binaries, for example, can cause trouble.

```
$ ./compile.sh
```
にて、Buildできる。が、Buildできない状況が続出。ここでは、あえて、NGとなった状況も記載。

### Ubuntu Jammy 22.04.x （小生の環境ではNG）
```
$ cat /etc/issue
Ubuntu 22.04.4 LTS \n \l

$ uname -a
Linux lyon 6.5.0-27-generic #28~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 15 10:51:06 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
```
この環境では下記エラーとなった。
```
Error: invalid --security-opt 1: "apparmor:unconfined"
[💥] -------------Docker run failed after 65s-------------------------- [ 🐳 failed ]
[💥] Docker Log file for this run [ not found ]
```

### WSL on Windows10 （小生の環境ではNG）
```
$ cat /etc/issue
Ubuntu 22.04.3 LTS \n \l

$ uname -a
Linux Landvetter 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
```
この環境では下記エラーとなった。
```
[💲|💥] Error 1 occurred in main shell [ at /home/undeux3/proj/armbian/build/lib/functions/logging/runners.sh:211
    run_host_command_logged_raw() --> lib/functions/logging/runners.sh:211
        run_host_command_logged() --> lib/functions/logging/runners.sh:193
    docker_cli_build_dockerfile() --> lib/functions/host/docker.sh:360
                do_with_logging() --> lib/functions/logging/section-logging.sh:81
                 cli_docker_run() --> lib/functions/cli/cli-docker.sh:54
        armbian_cli_run_command() --> lib/functions/cli/utils-cli.sh:136
                 cli_entrypoint() --> lib/functions/cli/entrypoint.sh:176
                           main() --> ./compile.sh:50
 ]
[💲|💥] Cleaning up [ please wait for cleanups to finish ]
[💲|🌿] ANSI log file built; inspect it by running: [ less -RS output/logs/log-docker-b74fb50e-2b49-4909-88d0-229c3ade5c83.log.ans ]
[💲|🌿] Share log manually (or SHARE_LOG=yes): [ curl --data-binary @output/logs/log-docker-b74fb50e-2b49-4909-88d0-229c3ade5c83.log.ans https://paste.armbian.com/log ]
```

### その他のNG
- docker
- Apple M2（対象外）
- Fedora（対象外）

### Debian（OK）
DebianではBuildすることができたので、以降、Buildの状況を記す。
```
$ cat /etc/issue
Debian GNU/Linux 12 \n \l

$ uname -a
Linux zagreb 6.1.0-20-arm64 #1 SMP Debian 6.1.85-1 (2024-04-11) aarch64 GNU/Linux

$ ./compile.sh
```
上記を起動すると、下記が表示される。
![1 ShowKernelConfiguration.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/3a2d309f-88d3-e64d-206d-a477c275952d.png)
"Show a kernel configuration ..."を選択。

![2 ShowCSC.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/c297f53e-f7bf-f078-d44b-a505a7bdc2ca.png)
"Show CSC..."を選択。

![3 Iunderstand.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/db59aa6c-ca56-ec11-5156-88742ce66f7b.png)
"I understand and agree"クリック。

![4 selectNanoPiR6S.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/fba3f77b-4532-8161-2e19-4db4be82384b.png)
所持するNano Piである「nanopi-r6s」を選択。

![5 LegacyKernel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/1056310c-340c-3f11-820e-f2732818a7d1.png)
"Legacy"選択。

![6 SelectJammy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/94ed1b65-9ca9-cc05-4939-8643d063c292.png)
サポート対象（？）となっている"Ubuntu jammy"選択。

![7 SelectImage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/75f37c33-c5b2-8f14-a212-c199d6d891ba.png)
"Image with desktop environment"選択。

![8 SelectXfce.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/56e887d9-94d6-0ccc-4fa1-64bbd8ce5d72.png)
"Xfce"選択。

![9 SelectConfig.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/27d638d5-f80c-2e31-9099-274f5f462952.png)
"Config.base"でOK。

![10 NoSelect.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/5b24eb18-f0b1-71c4-09b7-989704bba9b2.png)
追加ソフトウェアは選択しない。

![11 KernelConfiguration.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/8dc569ab-1c97-8b75-550f-43b1a5df224e.png)
Kernel Configurationでも、何も追加せず、"Exit"。

この後、実際のBuildが始まる。終了すると、イメージできあがる。
```
$ ls ./output/images/
Armbian-unofficial_24.5.0-trunk_Nanopi-r6s_jammy_legacy_5.10.160_xfce_desktop.img
Armbian-unofficial_24.5.0-trunk_Nanopi-r6s_jammy_legacy_5.10.160_xfce_desktop.img.sha
Armbian-unofficial_24.5.0-trunk_Nanopi-r6s_jammy_legacy_5.10.160_xfce_desktop.img.txt
```
上記txtファイルの内容（一部）は下記となっている。
```
Vendor:         Armbian-unofficial
Revision:       24.5.0-trunk
Board:          Nanopi-r6s
Kernel:         Linux 5.10.160 (legacy)
Build date:     20.04.2024
Sources:        https://github.com/armbian/build
Sources rev:    4df3bddd6
```

## Armbian起動
作成されたイメージをSDカードに書き込み、Nano PI R6SにSDカードを挿入して、起動後の状況は下記となる。
```
$ cat /etc/issue
Armbian-unofficial 24.5.0-trunk Jammy \l 

$ uname -a
Linux nanopi-r6s 5.10.160-legacy-rk35xx #1 SMP Sat Apr 20 09:56:38 JST 2024 aarch64 aarch64 aarch64 GNU/Linux
```
前述のtxtファイルの記載内容と一致。

EOF