xfinder

RaspberryPi and other embedded board computer finder tool

xfinder

RaspberryPi はヘッドレス状態 (モニタ、キーボードを接続しない状態) ではIPアドレスなどを知る術がないため初期設定を行うのは少々困難です。 最初にモニタとキーボードを接続して、ホスト名を設定し前述のようにAvahi経由でIPアドレスをホスト名から知ることも可能ですが、全く設定していないRaspberryPiについてはこの方法も使えません。

xfinder とは

xfinder はRaspberryPiやBeagleBoneなどのCPUボードに搭載されているEthernetインターフェースのMAC (Media Access Control) アドレスからIPアドレスを割出しログインするためのツールです。

Ethernetのインターフェースには48ビットの固有のアドレス(MAC (Media Access Control) アドレス)が割り振られており、その上位24ビットはベンダ(ネットワーク機器を開発する企業など)の固有のアドレスとなっています。Ethernetではパケットの送受信をするために相互にMACアドレスを知る必要があり、IPアドレスからMACアドレスを調べるためのARP(Address Resolution Protocol)と呼ばれるプロトコルが利用できます。 xfinderでは、ネットワーク上に接続されている特定のMACアドレスのパターンを見つけることにより、RaspberryPiなどのヘッドレスシステムのIPアドレスを調べ、ssh等でログインし設定・開発を容易に行えるようにサポートします。

xfinderでRaspberryPiを見つける

xfinderは一つの実行ファイルでコマンドラインツール (CUI モード) とグラフィカルユーザインターフェースツール (GUI モード) の2通りとして利用することができます。 ここでは、GUIモードのxfinderの使い方について説明します。

xfinderの動作条件

xfinderは以下の環境で動作します。

OS Python Terminal ソフトウェア
Windows 10 Python3 Tera Term, PuTTY, Poderosa
MacOS X Python3 Terminal.app, iTerm.app
Linux (Ubuntu18.04,20.04で動作確認) Python3 gnome-terminal, xterm, kterm

なお、単一バイナリ形式 (WindowsのEXE, MacOSのapp、Linuxの単一事項ファイル)ではPython3のインストールは不要です。

xfinderのダウンロード

xfinder 以下の場所からダウンロードできます。

'’xfinderバイナリ’’ https://github.com/n-ando/xfinder/releases
'’Windows’’ https://github.com/n-ando/xfinder/releases/download/1.1/xfinder.exe]
'’MacOS X’’ https://github.com/n-ando/xfinder/releases/download/1.1/xfinder_v1.1.dmg
'’Linux’’ (Ubuntu18.04, 20.04で動作確認) https://github.com/n-ando/xfinder/releases/download/1.1/xfinder
'’xfinderソースコード’’ https://github.com/n-ando/xfinder
ダウンロードした xfinder

xfinder (GUIモード) を使う

xfinderの使い方は以下の3ステップです。

  1. ネットワークをスキャンしてRaspberryPi等を見つける
  2. スキャンして見つかったRaspberryPiを確認する
  3. TeraTerm等ターミナルソフトウエアでログインして作業をする

xfinder の起動

xfinder.exeを起動すると、以下の様な画面が表示されます。

xfinder の GUI画面

まず、①左上のペインにてスキャンする条件(インターフェース、ボード、MACアドレスパターン等)を指定しスキャンを開始、②次にスキャンして見つかったRaspberryPi等のリストが表示されるので選択、③の左下のペインにてログイン条件を指定してターミナルアプリケーションを起動します。 ターミナルアプリケーションが起動後は、対象となるRaspberryPiにログインして設定やプログラムの開発などを行うことができます。

なお、右のペインに表示されたボードのリストをダブルクリックすることでターミナルアプリケーションの起動とログインを行うことも可能です。

Scan settings

左上の ‘‘Scan settings’’ では、ネットワークをスキャンするための条件を設定します。

Interface address

現在のPCのどのネットワークインターフェースからRaspberryPiを探すかを選択します。複数のネットワークインターフェースがある場合、複数のIPアドレスが表示されるので、どのネットワーク(例えば、一つはグローバル側、もう一つがプライベート側のネットワークにつながっており、プライベート側のネットワークにあるRaspberryPiを探したい場合はここでプライベートアドレスを選択します。)をスキャンするかを選択します。

Interface addressでスキャンするネットワークインターフェースのIPアドレスを指定する

全てのネットワークインターフェースに対してスキャンを行う場合は’‘ALL’‘を選択してください。 どのIPアドレスがどのネットワークインターフェースと対応しているかわからない場合は、’‘コントロールパネル’‘→’‘ネットワークとインターネット’‘→’‘ネットワークと共有センター’‘→’‘アダプターの設定の変更’‘からアダプタのアイコンをクリックしてどのようなIPアドレスが割り当てられているか確認してください。

また、コマンドプロンプトを開いて ‘‘ipconfig’’ コマンドを実行しインターフェースと割り当てられているIPアドレスを確認することもできます。

Board type

どのボードを探すかコンボボックスから選択します。RaspberryPiかBeagleBoneを選択でき、デフォルトではRaspberryPiが選択されています。

スキャンするボードタイプを指定する

この一覧に探したいボードがない場合は、該当するボードのネットワークインターフェースのMACアドレスの上6ケタを調べ、次のMatch Patternのテキストボックスに入力しスキャンする必要があります。

RaspberryPiにUSB無線LANアダプタを付け、無線LANのみで接続している場合はここでRaspberryPiを選択しても探すことはできません。 無線LANアダプタのMACアドレスのMACアドレスの上6ケタ (例えば Buffaroの場合10:6f:3f) をMatch Patternに入力して探します。

Match pattern

RaspberryPiやBeagleBone以外のボードを探す場合、ここに探したいMACアドレスのパターンを入力します。

#ref(xfinder_select_pattern.png,80%,center) CENTER: ‘‘スキャンするMACアドレスのパターンを指定する’’

またRaspberryPiに無線LANアダプタなどを装着している場合も、メーカー固有のMACアドレス上6ケタを入力することで探し出すことが可能です。 ただし、メジャーなメーカーの無線LANアダプタなどはスキャンすると多数発見されることもあります。

Scanボタン/Abortボタン

'’Scan’’ ボタンはスキャンを実行する際に押します。スキャン中は押すことができません。 ‘‘Abort’‘ボタンはスキャン実行中に途中でやめたい場合に押します。スキャン実行中のみ押すことができます。 ボタンの下のプログレスバーはスキャンの進捗状況を表示します。

スキャン実行時

Found nodes

右側の ‘‘Found nodes’’ のペインはスキャンして見つかったボードのIPアドレス、MACアドレスおよびホスト名を表示します。

なお、ここに表示されたリストをダブルクリックすると、左の ‘‘Terminal launcher’’ の設定に従ってターミナルアプリケーションが起動しログインできます。

Found nodesから直接ターミナルアプリケーションを起動する

Terminal launcher

左側の ‘‘Terminal launcher’’ のペインは見つかったホストに対してターミナルアプリケーションを利用してログインする際に使用します。

ボードタイプ User name Password
RaspberryPi pi raspberry
BeagleBone root (パスワード無し)
Loginボタンを押してターミナルアプリケーションを起動する
起動したターミナルアプリケーション (TeraTerm Pro)

Terminalの利用

TerminalペインのTerminalプルダウンには、インストールされているTerminalソフトウェアを自動的に判別して表示します。 したがって、Terminalソフトウェアを使ってRaspberryPi などにログインしたい場合は、必要なTerminalソフトウェアをインストールしてください。 利用可能なTerminalソフトウェアは、以下の表に示すとおりOSごとに決まっています。もし、追加してほしいTerminalソフトウェアがある場合は、GitHubのissueで要望してください。

OS Python Terminal ソフトウェア
Windows 10 Python3 Tera Term, PuTTY, Poderosa
MacOS X Python3 Terminal.app, iTerm.app
Linux (Ubuntu18.04,20.04で動作確認) Python3 gnome-terminal, xterm, kterm

Terminal ソフトウェアの入手先

利用可能なTerminalソフトウェアは、以下の表に示すとおりOSごとに決まっています。もし、追加してほしいTerminalソフトウェアがある場合は、GitHubのissueで要望してください。ソフトウェア 利用可能なTerminalソフトウェアは、以下の表に示すとおりOSごとに決まっています。もし、追加してほしいTerminalソフトウェアがある場合は、GitHubのissueで要望してください。