組み込みLinux学習にオススメのSBC、NanoPi NEO
組み込みLinux学習に適した環境といえば、なんといっても情報量の多いRaspberry Piですが、2023年4月現在で引き続き手困難が続いている様です。そんな中、個人的に組み込みLinux学習に最適だなと感じたSBCがあるので紹介します。
Friendly NanoPi NEO
より高性能な上位機種もありますが、学習用としてはこれで充分かと思います。RAM容量が256MBのものと512MBのものがありますが、価格差が小さいので512MBを選んでおくのが無難です。
Amazonでは複数の出品があるようですので、信頼できそうなところから入手しましょう。筆者はヒートシンク込で4000円前後で購入しました(2023年4月現在の情報)。
Xsdjasd NanoPi NEO用開発ボード + ヒートシンク + メタルケースキット Allwinner H3 クアッドコア 512MB RAM Openwrt/LEDE コンプリート マシン
13% オフPenkeef NanoPi NEO オープン ソース H3 開発ボード + ヒートシンク DDR3 RAM 512MB クアッドコア -A7 Openwrt Armbian
¥3,229 (2024年12月5日 14:42 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)lucka NanoPi NEO用開発ボード + ヒートシンク + メタルケースキット Allwinner H3 クアッドコア 512MB RAM Openwrt/LEDE コンプリート マシン
¥4,660 (2024年12月5日 14:42 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)※2023年4月現在 秋月電子通商でも入手可能です
Allwinner H3(クアッドコア Cortex-A7 @1.2GHz)採用のSBCです。今となっては高性能とは云い難いですが、必要最小限の外部インタフェースでHDMIは装備しておらずCLI(Command Line Interface)での操作がメインとなります。組み込みLinux開発の学習ならその方が実践に即していますし、比較的入手し易く小型・軽量・シンプルで取っ付きやすいかと思います。
使用するにあたって必要なものは以下の通りです。
- 母艦となるPC (Micro SDカードを読み書きできる必要があります) & インターネット接続環境
- NanoPi NEO 本体 & ヒートシンク (安定的運用の為にはあったほうが良いでしょう)
- Micro SDカード (おすすめ容量は32GB or 64GB)
- USB Micro-Bケーブル (データ通信可能なものを選びましょう)
以下ネットワーク接続用に必要なもの
- Ethenetケーブル、もしくはUSB WiFiアダプタ
Ethernetケーブルで有線接続でも良いですが、筆者はWiFi接続で使用することとしました。実は事前にWiFiドングルを接続した状態でNanoPi NEOを初回起動するとWiFiセッティング画面が自動的に表示されて合わせてセッティングできてしまいます。
WiFiアダプタはメジャーなものなら使用可能と思われますが、どんなものでも使用できるというわけではありません。今回筆者が使用したものを紹介しておきます。
KIOXIA(キオクシア) 旧東芝メモリ microSD 64GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA064G
15% オフエレコム エコ USBケーブル スマートフォン対応 2.0 A-microB 1.2m U2C-JAMB12BK
58% オフTP-Link WIFI 無線LAN 子機 11n/11g/b デュアルモード対応モデル 英語パッケージ TL-WN725N(EU)
16% オフ電源はMicro-B USB端子で供給します。定格5V2Aですが、外部に電力消費の激しいUSB機器を接続するなどしなければ、通常は母艦PCとのUSBでの電源供給で問題ないかと思います。
Armbianのイメージ取得~起動
Linuxソフト環境としては、純正公式の「FriendlyCore」もありますが、今回は「Armbian」を使用します。FriendlyCoreは別途コンソール接続のためのシリアルケーブルをDebug UARTピンに接続する必要がありますが、Armbianは電源供給とシリアルコンソール接続をUSB接続で行うことができる様になっているため、ピンを空けることができます。
非常にシンプルな手順で起動までいけます。
- イメージ書き込みソフトを入手
- イメージファイルをダウンロード
- イメージ書き込みソフトでイメージファイルをMicro SDカードに書き込み
イメージ書き込みソフトを入手&インストール
フリーのイメージ書き込みツールはいろいろありますが、筆者は「Raspberry Pi Imager」を利用しています。以下からダウンロードできます。
イメージファイルをダウンロード
以下からNanoPi NEO用のArmbianイメージをダウンロードします。
DebianベースのものとUbuntuベースのもの、更には夫々のMinimal版が提供されていますので好みのものを選びましょう。今回、筆者はDebianベースの「Armbian 23.02 Bullseye」を選んでみました。
イメージファイルをSDカードに書き込み
PCにSDカードを接続し「Raspberry Pi Imager」を起動、「OSを選ぶ」を選び「カスタムイメージを使う」を選びます。
次に、「ストレージを選ぶ」から書き込むSDカードを選択します。
複数のストレージがある場合、上記画像のように複数のドライブがリスト表示されますので、書き込むべきSDカードを選択します。ここは絶対に間違えてはいけないところですので注意して選択してください。
書き込むSDカードを選択したら、「書き込む」を選択します。書き込みが開始されますので書き込み完了まで待ちましょう。
「書き込みが正常に終了しました」のポップアップが表示されたら完了です。SDカードをPCから取り外し、NanoPi NEOに装着します。
ここまでできたら、USBケーブルでPCと接続することで電源が供給されて数十秒程度でArmbianが起動するはずです(WiFi接続する場合はUSB WiFiアダプタを接続しておきましょう)。USBのドライバはPC側の環境次第の面もありますが、接続時におそらく自動インストール&認識されるかと思います。
PC側からターミナルソフトにてシリアル接続します。ターミナルソフトですが、筆者は定番の「Tera Term」を使用しています。
COMポートの番号は各自環境によって異なります。
ボーレートはデフォルトの9600bpsでも接続可能ですが115200bpsにしておきます。
そのまま暫く待つと・・・起動しました!
rootパスワード、デフォルトのcommand shell選択、usernameなどを促されるままに入力します。
基本的な使用法はDebianやUbuntu同様です。最低限のLinux知識がある方なら特に迷うことはないかと思います。Armbian公式のドキュメントは以下にあります。
USB WiFiアダプタによるWiFi接続
NanoPi NEOはEthernetポートを備えているため有線で接続してもいいのですが、前述の通り、後付のUSB WifiアタプタでWiFi接続してみます。使用可能なWiFiアダプタがどれなのかは調べようと思えば調べられると思いますが、色々知識が必要ですので、まずはネットで実績ありそうなアダプタを調べてみるのが無難です。手元に余っているWiFiアダプタがあるなら接続してみて認識されるか確認するのが手っ取り早いです。最新規格のものより少し前の枯れた製品のほうがオススメです。
筆者が今回使用して接続実績あるWiFiアダプタを改めて紹介します。
TP-Link WIFI 無線LAN 子機 11n/11g/b デュアルモード対応モデル 英語パッケージ TL-WN725N(EU)
16% オフ前述の通り、WiFiアダプタを接続した状態で起動すると、userアカウント、userパスワード、username入力後に引き続いてWiFi設定画面が表示されます。
最初に接続先を選択します。
接続先を選択したら接続パスワード入力画面が表示されますので入力します。
接続に成功したら、Quitを選んでWiFi設定画面を抜けます。
引き続き言語環境について確認されますので好みで選んでください。
これで初回起動時の初期設定は完了です。うーん、なんて簡単!
インターネット接続によるソフトウェア更新
一旦、rebootコマンドでLinuxを再起動します。
# reboot
ターミナルソフトを一旦終了し、NanoPi NEOが再起動するまで数十秒程度待ってからターミナルを再接続します。Enterキーを入力するとloginプロンプトが表示されるので初回起動時に設定したuserアカウントでログインしましょう。
インターネット接続できている場合、ソフトウェアを更新しておきます。
$ sudo apt update
$ sudo apt upgrade
SSH接続
そのままシリアルコンソールで操作しても良いですが、ネットワークに接続したならSSH接続で使用するのがオススメです。スクリーンサイズを調整できますし、複数セッションで接続できるのも便利です。
SSHサーバーはデフォルトでインストールされていましたので、NanoPi NEOに割り当てられたIPアドレスを調べてSSH接続可能なPC側ターミナルソフト(我らがTera TermでOKです)から接続するのみです。
まず、ipコマンドでIPアドレスを調べます。環境によって異なりますが「inet XXX.XXX.XXX.XXX」のような形で表示されます。
$ ip address
IPアドレスがわかったらターミナルソフトからIPアドレスで接続し、userアカウントでログインします。
※IPアドレスやユーザー名は筆者の環境のものですので実際と異なります。
次回予告
基本的な環境構築としては以上となります。次回は定番のLチカしてみたいと思います。
コメント