みかんのゆるふわ技術ブログ

Raspberry PiやIoT関係のことを書き残していきます

Raspberry Piより小さなLinuxマシン~Nano Pi NEO

少し前の記事でRaspberry Piが手に入らないという話をしましたが、 Raspberry Piの代わりになるかもしれない?Linuxマシンを試してみました。 中国の南の方にある広州市のFriendlyElecという会社の、Nano Pi NEOというものです。

www.friendlyelec.com

SoCにAllwinner H3を搭載し、RAMが256MBと512MBが選べます。私は512MBモデルを買ってみました。 1台18米ドルとリーズナブルな値段になっています。256MBモデルはさらに安く16米ドルです。

WiFiもHDMIもないですが、安くてLinuxが動くので簡単なサーバー用途や電子工作にピッタリです😊

friendlyelec.comのページではNanoPi NEO-LTSという名前になっておりLTSがついていますが、 たぶん長期供給するよという意味で、中身はたぶん無印と同じなのでしょう。 マイナーチェンジがあったと思われ、現在のハードウェアリビジョンはv1.4のようです。

Amazon.co.jpのマーケットプレイスでも売られているようです。

が、2022年9月現在では、国内のお店だと秋月電子通商の方が送料を加えても安いです。

上記friendlyelec.comの直販であれば、専用ヒートシンクやケースなど各種オプションも一緒に買えますので、直販で買うのも良いでしょう。 ただし、中国から発送なので送料が結構かかります。私はFriendlyElecの直販でヒートシンクやケースと一緒に買いました。

届いた実物はこちらです。

今回はこれを動かしてみましたので、その紹介です。

スペックは?

SoCは中国Allwinner製のAllwinner H3。CPUとしてCortex-A7が4コア入っています。

Raspberry Pi 4のCortex-A72よりはだいぶ性能は低いですが、Raspberry Pi ZeroのARM11より新しい世代のアーキテクチャです。 しかも4コアということで、Raspberry Pi Zeroよりは高性能が期待そうです。

メモリも512MB搭載で、Raspberry Pi Zero並みとなっています。

メモリが少ないしHDMIなどの映像出力もないので、パソコンのように使うというよりも、サーバー用途や電子工作に向いています。

一方で、WiFiなどの無線通信機能は搭載されていません。 これは技適を心配しなくてよいので逆に便利かもしれません。 通信はEthernetが使えるほか、USB-WiFiを使えばWiFi通信もできます。

何よりLinuxが動くのがうれしいですね😊

NanoPi NEO Raspberry Pi 4 Raspberry Pi Zero WH
SoC Allwinner H3 Broadcom BCM2711 Broadcom BCM2835
CPU 4コア Cortex-A7 (ARMv7-A) 1.2GHz 4コア Cortex-A72 (ARMv8-A) 1.5GHz 1コア ARM1176JZF-S(ARMv6)1GHz
RAM 256MB/512MB 1GB/2GB/4GB/8GB 512MB
起動ディスク microSDカード microSDカード microSDカード
ネットワーク Ethernet (100Mbps) Ethernet (1Gbps), WiFi (2.4GHz/5GHz), Bluetooth5.0 WiFi (2.4GHz), Bluetooth4.2
USB USB2.0 x1 USB3.0 x2, USB2.0 x2 USB2.0 (OTG)
映像 なし microHDMI x2, CSI, DSI miniHDMI x1, CSI
電源 USB 5V(microUSB) USB 5V (USB-C) USB 5V (microUSB)

Raspberry PiみたいにGPIOピンが基板上に出ており、I2C, SPIなど各種インターフェースが使えます。

出典: friendlyelec.com

Raspberry Pi 4、Raspberry Pi Zero WHと並べてみるとこのようになります。

Raspberry Pi 4に比べてだいぶコンパクトです。Raspberry Pi Zero WHと違い、NanoPi NEOは正方形(4cm x 4cm)なので、横幅はありますが長辺が長くコンパクトな感じがします。 スペースを取らなくて便利ですね。

スポンサーリンク

対応OSは?

公式にはFriendlyCoreというUbuntuベースのOSイメージが提供されています。 2022年9月現在の最新はUbuntu 20.04LTSベースとなっています。

ほかにARM系シングルボードコンピュータに多く移植されているArmbianも対応しています。こちらはDebianベースとUbuntuベースの2種類が選べます。 2022年9月現在の最新は、

  • Armbian 22.08 Bullseye - Debian 11 Bullseyeベース
  • Armbian 22.08 Jammy - Ubuntu 22.04 LTS (Jammy Jellyfish)ベース

となっていて、こちらの方が新しそうです。

また、ルーターを自作するのに便利なOpenWRTも対応しています。

Armbianを使ってみよう

起動マイクロSDカードイメージ ダウンロード

試しにUbuntuベースのArmbian 22.08 JammyをNanoPi NEOで動かしてみました。

まず、イメージファイルをこちらのページからダウンロードしましょう。

www.armbian.com

私が試したところ、Armbian_22.08.1_Nanopineo_jammy_current_5.15.63.img.xzというファイルがダウンロードできました。 xz形式のファイルは7-Zipで展開できます。展開すると、1.2GBほどのSDカードイメージファイル(.img)が出てきました。

起動マイクロSDカードへの書き込み

ダウンロードした.imgファイルをbalenaEtcherなどの書き込みソフトでマイクロSDカードに書き込みます。

www.balena.io

balenaEtcherなら、ファイル選択→書き込み先選択→Flash!の3ステップだけで書き込みできて便利です。

これでFlash!を押すと書き込みできました。これで起動マイクロSDカードの準備が完了です。

スポンサーリンク

起動

NanoPi NeoにマイクロSDカードを挿して、マイクロUSBコネクタから給電すれば電源が入ります。

NanoPi Neoには画面がありませんが、コンソールにアクセスするには2通りの方法があります。

  • USBシリアル機能を利用する
  • LANにつなげてSSHでアクセスする

便利なことに、NanoPi NEOのマイクロUSB端子は電源になるとともに、USBシリアルコンソールにもなります。 USB電源アダプタでも電源は入りますが、パソコンのUSBにつなげば給電しつつシリアルコンソールにもアクセスできて便利です。

もちろんデフォルトでSSHが有効になっていますので、LANケーブルを繋げばそちらからログインもできます。

今回は試しにパソコンにつないで、USBシリアルコンソールを使ってみました。 なお、SSHでアクセスした場合でも同じ流れになりますのでご安心ください。

パソコンのUSBポートにつなぐとNanoPi Neoに電源が入るとともに、COMポートとして認識してくれます。 COMポートにはTeraTermなどのターミナルソフトウェアを使ってアクセスできます。

ja.osdn.net

認識したCOMポートに接続して起動を待ちましょう。ちなみに設定は115200bps、データ8bit、パリティなし、ストップビット1bit、フロー制御なしです。 パソコンにつないでから1分くらい待つと、NanoPi NEOが起動して、次のようなメッセージが出てきます。

ここまでくれば、あとは初期設定さえすれば待ちに待ったプロンプトにたどり着けます。

基板上にLEDがありますが、電源投入後数秒間点灯したのち、消灯するようです。消灯していてもちゃんと動いていました。

初期設定

初回起動の場合、まず初期設定をするようになっています。 次のようなことを聞かれますので、あらかじめ準備しておくと良いでしょう。

まずはユーザーの設定です。

メッセージ 説明
Create root password: rootのパスワードを設定
Choose default system command shell: デフォルトのシェルを指定。bashかzshが選べる
Creating a new user account. Press <Ctrl-C> to abort 一般ユーザー作成。作らないなら<Ctrl-C>
Please provide a username (eg. your first name): 一般ユーザーのアカウント名
Create user (username) password: 上記ユーザーのパスワード
Repeat user (username) password: 上記ユーザーのパスワードをもう1回入力
Please provide your real name: 上記ユーザーの表示名

ちなみにここで作成した一般ユーザーは自動でsudo権限が付与されます。 普段からrootを使うのは色々危険なので、ここで一般ユーザーを作ってこちらを使いましょう。

続いて、システムの言語やタイムゾーンを設定します。

メッセージ 説明
Set user language based on your location? [Y/n] インターネットに接続していれば自動で場所に合った言語を認識してくれる
At your location, more locales are possible: インターネットに接続していない場合はリストが出てくるので手動選択。英語がよければ 54) en_US.UTF-8、日本語なら 101) ja_JP.UTF-8
Please identify a location so that time zone rules can be set correctly. タイムゾーン設定のためリストの中から地域を選択 4) Asia → 20) Japan で日本になる

これで設定が終わり、ついにプロンプトが現れます!

おめでとうございます! ここから先はふつうのUbuntuマシンのように使えます。こんなに小さいのに素晴らしいですね✨

スポンサーリンク

さらに便利にしよう

rootログイン禁止

まず、rootでログインできるのはセキュリティ的に何なので、rootログインを禁止したくなりますよね。 rootでログインしている場合はexitでいったんログアウトし、初期設定で一般ユーザーでログインしなおしてください。

rootでのログインを禁止するには、以下のコマンドを実行します。

$ sudo passwd -d root

これでrootのパスワードが削除され、どんなパスワードでもログインできなくなります。

各種設定ユーティリティ

Armbianにはarmbian-configという設定ツールが付属しています。

$ sudo armbian-config

で起動できます。

こちらの画面のように、メニュー形式で様々な設定ができます。 ホスト名の設定(デフォルトはnanopineo)などもこちらでできますので、メニューをたどってみてください。

※私の設定が悪いのか、armbian-configのメニュー選択でEnterが使えないことがたまにありました。その場合でもスペースキーは使えましたので、スペースキーも試してみましょう。

WiFi接続

NanoPi NEOにはWiFiがないのでLANケーブルでインターネットにつなぐ必要がありますが、WiFiが使いたいという方もいるでしょう。

そういう場合でも、USB-WiFiを使えば接続できます。 私が持っていた以下のUSB-WiFiは、ドライバの追加インストール等必要なく、デフォルトで使えました(Armbian 22.08 Jammy および Bullseyeで確認)。

このUSB-WiFiを挿すだけで、自動的に認識してくれます。

$ sudo ip a

で、wlxで始まるインターフェースが見えていたら認識できています。

アクセスポイントへの接続は、

$ sudo armbian-config

の設定画面からNetworkWiFiでできます。周囲のアクセスポイントをスキャンして表示してくれますので、選択してパスワードを入力してください。

このUSB-WiFiはもちろん技適を通っているため、安心して使えます。

user@nanopineo3:~$ sudo iw reg get
global
country JP: DFS-JP
        (2402 - 2482 @ 40), (N/A, 20), (N/A)
        (2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM
        (4910 - 4990 @ 40), (N/A, 23), (N/A)
        (5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW
        (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
        (5490 - 5710 @ 160), (N/A, 23), (0 ms), DFS
        (57000 - 66000 @ 2160), (N/A, 10), (N/A)

phy#0
country 99: DFS-UNSET
        (2402 - 2472 @ 40), (N/A, 20), (N/A)
        (2457 - 2482 @ 40), (N/A, 20), (N/A), PASSIVE-SCAN
        (2474 - 2494 @ 40), (N/A, 20), (N/A), NO-OFDM, PASSIVE-SCAN
        (5140 - 5860 @ 80), (N/A, 30), (N/A), PASSIVE-SCAN

このとおり日本向け設定になっている…はず。

感想

いろいろいじってみましたが、少なくともRaspberry Pi Zero WHよりはサクサク動きます。 安定性についてはまだわかりませんが、今のところ困ったことはありません。

HDMIがなかったり、USBポートが1つしかなかったりと割り切った仕様ではありますが、 ちょっとしたサーバー用途や電子工作のお供にはとても向いていると思いました。 何よりコンパクトなのが素晴らしいです。

デメリットはRaspberry Piに比べてマイナーなので、困った時に頼れる情報が少ないということがあります。初心者だと不安があるかもしれません😥

とはいえRaspberry Piが手に入りにくい今、選択肢の1つとしておススメです!

2022/9/10追記 NanoPi NEOにI2Cセンサーをつないでみました

www.mikan-tech.net