メインコンテンツまでスキップ

reComputer Industrial R22xx を構成する

概要

本 Wiki では、デバイスを取り付けた後に reComputer Industrial R22xx シリーズ上のハードウェアコンポーネントを構成およびテストする方法を説明します。GPIO マッピング、USER LED テスト、SPI 通信、Wi-Fi および Bluetooth スキャン、LoRa®、4G、5G、Mini-PCIe 経由の Zigbee、RS485、RS232、CAN、DI/DO テスト、安全なシャットダウンのための UPS などを扱います。

GPIO マッピングとオフセットの確認

GPIO マッピングとオフセットを確認するには、次の手順に従います。

  1. 次のコマンドをコピー&ペーストして GPIO マッピングを確認します。
cat /sys/kernel/debug/gpio

このコマンドは GPIO マッピングとオフセットを表示し、GPIO ピンのデバッグや設定に必要な情報を提供します。

USER LED テスト

ユーザーが使用できるように、赤・青・緑の 3 色の LED を用意しています。/sys/class/leds/ ディレクトリに入って確認できます:

1. LED ディレクトリへ移動する

cd /sys/class/leds/
ls

対応する色の LED を点灯させるには、次のコマンドを使用します。

sudo su
echo 1 > /sys/class/leds/led-red//brightness
echo 1 > /sys/class/leds/led-blue/brightness
echo 1 > /sys/class/leds/led-green/brightness

これにより、対応する LED が点灯します。

3. LED を消灯する(任意)
特定の LED を消灯するには、次を使用します。

sudo su
echo 0 > /sys/class/leds/led-red/brightness
echo 0 > /sys/class/leds/led-blue/brightness
echo 0 > /sys/class/leds/led-green/brightness

SPI 通信のテスト

TPM モジュールの MISO と MOSI ピンをショートさせて SPI 通信をテストするには、次の手順に従います。

  1. spidev-test リポジトリをクローンします。
# Don't forget to connect to network before running command
git clone https://github.com/rm-hull/spidev-test.git
  1. spidev-test ディレクトリに移動します。
cd spidev-test
  1. spidev_test.c ファイルをコンパイルします。
gcc spidev_test.c -o spidev_test
  1. 次のコマンドで spidev_test プログラムを実行します。
./spidev_test -D /dev/spidev10.0 -v -p hello

このコマンドは、指定した SPI デバイス(/dev/spidev10.0)上で詳細出力( -v )を有効にし、メッセージ "hello"(-p hello)を送信して SPI 通信をテストします。 TPM モジュールの MISO と MOSI ピンをショートさせることで、MOSI から送信されたデータが MISO で受信されるループバック状態を作り出します。この構成により、実際のデバイスを接続しなくても SPI 通信をテストできます。

Wi-Fi スキャン

利用可能な Wi-Fi ネットワークとその詳細を一覧表示するには、次を実行します。

sudo iwlist wlan0 scan
  • このコマンドは周辺のすべての Wi-Fi ネットワークをスキャンし、その SSID、信号強度、暗号化方式を表示します。

Bluetooth スキャン

Bluetooth デバイスをスキャンするには、次の手順に従います。

Bluetooth 制御インターフェースを開く:

sudo bluetoothctl

このコマンドで Bluetooth 制御インターフェースが開きます。そこから、周辺の Bluetooth デバイスをスキャンするための追加コマンドを実行できます。

スキャンを有効にする:

scan on

このコマンドで周辺の Bluetooth デバイスのスキャンが開始されます。その後、bluetoothctl インターフェース内で、ペアリングや接続など Bluetooth デバイスとやり取りするための他のコマンドを使用できます。

Mini-PCIe 経由の LoRa®

LoRa® SPI 設定

LoRa® SPI を Mini-PCIe スロット 2 に取り付けた後、次の手順で LoRa® SPI を設定できます。

  1. SX1302_HAL リポジトリをクローンします。
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
  1. クローンしたディレクトリに移動します。
cd sx1302_hal
  1. 設定ファイルを編集します。

I2C デバイスの設定ファイルを開きます。

sudo nano ./libloragw/inc/loragw_i2c.h

次の行を変更します。

#define I2C_DEVICE "/dev/i2c-1"

次のように変更します。

#define I2C_DEVICE "/dev/i2c-2"

#define I2C_DEVICE "/dev/i2c-1"#define I2C_DEVICE "/dev/i2c-2" に変更します。 ctrl+x を押して終了し、y を押して変更を保存し、その後 Enter を押してコマンドライン画面に戻ります。

  1. packet_forwarder/reset_lgw.sh ファイルを追加します。
sudo nano packet_forwarder/reset_lgw.sh

実行コードを追加します。

SX1302_RESET_PIN=632     # SX1302 reset
SX1302_POWER_EN_PIN=633 # SX1302 power enable
SX1261_RESET_PIN=634 # SX1261 reset (LBT / Spectral Scan)
# AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)

ファームウェアは標準で SPI モデル WM1302-SPI-US915-M をサポートしています。他のモデルを使用したい場合は、対応する RESET_PIN の定義を確認し、以下のコマンドを参考に RESET_PIN を変更できます。

cat /sys/kernel/debug/gpio

ctrl+x を押して終了し、y を押して変更を保存し、その後 Enter を押してコマンドライン画面に戻ります。

  1. 設定コードを修正します。
cp ./tools/reset_lgw.sh ./packet_forwarder
  1. 18、29、35、42、53、54 行目をそれぞれコメントアウトします。
nano ./packet_forwarder/global_conf.json.sx1250.US915

"com_path": "/dev/spidev0.0" を "com_path": "/dev/spidev2.0" に変更します。

 cd ./packet_forwarder
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.US915

LoRa® USB 設定

LoRa® USB の場合、前述のコマンドは LoRa® SPI と同じですが、最後のコマンドのみ次のように変更する必要があります。

cho  632  >  /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio632/direction
echo "1" > /sys/class/gpio/gpio632/value

sudo ./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

このコマンドは、LoRa® USB 用に使用する設定ファイルを指定します。

M.2 B-KEY 経由の 5G セルラー

minicom を介して AT コマンドで 5G/4G モジュールとやり取りするには、次の手順に従います。

  1. 新しい power_5g.sh ファイルを作成します:
nano power_5g.sh

sudo nano で開き、次のコマンドを入力してから ctrl+x を押して保存して終了します。

#!/bin/bash

RESET_PIN=655
POWER_PIN=660

if [ ! -d "/sys/class/gpio/gpio$RESET_PIN" ]; then
echo $RESET_PIN > /sys/class/gpio/export
fi

if [ ! -d "/sys/class/gpio/gpio$POWER_PIN" ]; then
echo $POWER_PIN > /sys/class/gpio/export
fi

echo "out" > /sys/class/gpio/gpio$RESET_PIN/direction
echo "out" > /sys/class/gpio/gpio$POWER_PIN/direction

echo 1 > /sys/class/gpio/gpio$RESET_PIN/value
echo 1 > /sys/class/gpio/gpio$POWER_PIN/value

echo "Start to reboot 5g module"

echo 0 > /sys/class/gpio/gpio$RESET_PIN/value
sleep 0.05
echo 0 > /sys/class/gpio/gpio$POWER_PIN/value

echo "5g module reboot completed"
  1. ファイルを実行します。
sudo ./power_5g.sh

10〜15 秒後(モジュールの電源投入と USB の列挙に時間がかかります)、デバイスノードが現れるか確認します。

ls /dev/ttyUSB*

/dev/ttyUSB0 などが出力されます。

適切なシリアルポートとボーレートで minicom を開きます。

sudo apt update
sudo apt install minicom
sudo minicom -D /dev/ttyUSB2 -b 115200

このコマンドは、指定したシリアルポート(/dev/ttyUSB2)をボーレート 115200 で開いて minicom を起動します。

  1. minicom を開いたら、4G モジュールに AT コマンドを送信し始めることができます。例えば:
AT

このコマンドはモジュールが応答しているかどうかを確認します。モジュールが正常に動作していれば、"OK" という応答が返ってくるはずです。

  1. 4G モジュールを使用して電話番号に発信するには、ATD コマンドの後に電話番号を続けて使用します。
ATD<phone_number>;

phone_number を、発信したい電話番号に置き換えてください。 コマンドの末尾には、電話番号の終わりを示すためにセミコロン ; を必ず付けてください。

Mini-PCIe 経由の 4G セルラー

新しい power_4g.sh ファイルを作成します。

sudo nano power_4g.sh

sudo nano で開き、次のコマンドを入力してから ctrl+x を押して保存して終了します。

# SIM_MUX_SEL
echo 655 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio655/direction
echo 0 > /sys/class/gpio/gpio655/value
echo 660 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio660/direction
echo 1 > /sys/class/gpio/gpio660/value

ファイルを実行します。

sudo ./power_4g.sh

minicom に入り、コマンドを送信します。

sudo apt install minicom -y
sudo minicom -D /dev/ttyUSB2 -b 115200

Ctrl+A、Z、E の順に押します。まず AT を送信して接続されているかテストします。OK が表示されれば接続は成功です。

次のコマンドを実行すると、モジュールは自動的に再起動します。minicom を終了していなければ、対応する設定情報を確認できます。 ECM ダイヤルアップによるインターネット接続:

AT+QCFG="usbnet",1

最後の行に OK と表示されれば成功です。

Note デバイスはしばらく待つ必要があり、その後 ifconfig で usb0 の IP アドレスを確認できます。

ネットワーク状態と通信をテストします:

# Check network status
ifconfig
# Test communication
ping www.baidu.com -I usb0

Mini-PCIe 経由の Zigbee

2 つの Zigbee モジュール間で Zigbee 通信 をテストするには、次の手順に従います。

  1. 利用可能なシリアルポートを確認する

次のコマンドを使用して、利用可能なシリアルポートを確認します。

cat /dev/ttyUSB*

シリアル通信ツールをインストールする

  1. シリアル通信ツールをインストールします。
sudo apt-get install cutecom
  1. コーディネータ用にシリアルポートを開く(1 つ目の Zigbee モジュール):
  • cutecom ツールを開き、最初のシリアルポート用に設定します。
  • ボーレート: 115200
  • インターフェース下部の "Hex output" オプションにチェックを入れます。
  • 次の手順に従って、1 つ目の Zigbee モジュールを設定します。
  • コーディネータとして設定: コマンド ‘55 04 00 05 00 05’ を送信し、応答 ‘55 04 00 05 00 05’ を期待します。
  • デバイスをリセット: リセットボタンを押すか、コマンド ‘55 07 00 04 00 FF FF 00 04’ を送信します。
  • ネットワーク形成: コマンド ‘55 03 00 02 02’ を送信します。
  1. ルータ用にシリアルポートを開く(2 つ目の Zigbee モジュール): 別の cutecom インスタンスを開き、同じ設定で 2 つ目のシリアルポート用に構成します。 次の手順に従って、2 つ目の Zigbee モジュールを設定します。
  • ルータとして設定: コマンド ‘55 04 00 05 01 04’ を送信し、応答 ‘55 04 00 05 00 05’ を期待します。
  • デバイスをリセット: リセットボタンを押すか、コマンド ‘55 07 00 04 00 FF FF 00 04’ を送信します。
  • ネットワーク形成: コマンド ‘55 03 00 02 02’ を送信します。
  1. デバイスステータスを確認する: デバイスステータスを確認するには、コマンド ‘55 03 00 00 00’ を送信します。‘55 2a 00 00 00 01 XX XX XX XX’ のような応答が返ってくるはずで、‘XX’ はデバイス情報を表します。
  2. 透過モードに入る: ネットワーク形成が成功したら、コマンド 55 07 00 11 00 03 00 01 13 を送信して透過モードに入ります。両方のモジュールが直接通信するには、透過モードになっている必要があります。透過モードを終了するには "+++" を送信します。
  3. 追加の注意事項:
  • ルータの設定に失敗する場合、そのデバイスはすでにコーディネータになっている可能性があります。コマンド '55 07 00 04 02 xx xx xx' を使用してネットワークから離脱してください。
  • 送信電力をテストするには、'55 04 0D 00 00 0D'(クエリ)および '55 04 0D 01 XX XX'(設定)のコマンドを使用します。 各 Zigbee モジュールに対して、/dev/ttyUSB を正しいシリアルポートに置き換えてください。これらの手順に注意深く従うことで、2 つのモジュール間の Zigbee 通信を正常にテストできます。

RS485 テスト

reComputer Industrial R21xx には 2 つの RS485 ポート が含まれています。以下は、それぞれに対応する COM ポートデバイスファイル です。

RS485 ポート数COM ポートシルク印刷ラベルデバイスファイル
RS485-2COM2A2/B2/GND3/dev/ttyACM1
RS485-3COM3A3/B3/GND4/dev/ttyACM2

RS485 機能をテストするには、以下の手順に従うことができます(RS485_1 と RS485_2 を例とします)。

  1. RS485_1 と RS485_2 の A と B を接続してください。
  2. 2 つのターミナルウィンドウで、それぞれ minicom を開きます。
sudo minicom -D /dev/ttyACM1
sudo minicom -D /dev/ttyACM2
注記

拡張ボードがある場合、番号を 1 つ後ろにずらす必要があります。例えば /dev/ttyAcM2/dev/ttyAcM3 のようになります。

  1. 開いた両方の ACM で、次の操作を行う必要があります。
  • Ctrl+A を押し、次に Z を押すと、Minicom Command Summary インターフェースが表示されます。

  • もう一度 O を押して設定を開き、Serial port setup を選択して Enter を押します。すべての RS485 関連インターフェースを開き、H/I/J/K/L を順番に押して有効にします。

  • すべてが "YES" と表示されたら、Enter を押して戻り、その後 Exit を選択して終了します。

注記

ACM2 と ACM3 を例にします。 ACM2 から ACM3 に送信したい場合、ACM2 を再度設定する必要があります。ctrl+A を押し、次に Z、続いて E を押してから、シリアルポート書き込みコマンドを開始します。このとき、ACM2 で任意の文字列を出力でき、同時に ACM3 で ACM2 の内容を確認できます。 逆に、ACM3 から ACM2 に送信したい場合は、ACM3 を再度設定する必要があります。ctrl+A を押し、次に Z、続いて E を押してから、シリアルポート書き込みコマンドを開始します。このとき、ACM3 で任意の文字列を出力でき、同時に ACM2 で ACM3 の内容を確認できます。図のようになります。

RS232 テスト

reComputer Industrial R21xx には 2 つの RS232 ポートが含まれており、それぞれに対応する COM ポートデバイスファイル は次のとおりです。

RS232 ポート数COM ポートシルク印刷ラベルデバイスファイル
RS232-1COM1RX1/TX1/GND1/dev/ttyACM0
RS232-2COM2RX2/TX2/GND2/dev/ttyACM1

RS232 は全二重通信であるため、RS232 の TX と RX を直接短絡させてループバックテストを実行します。

2 つのターミナルを開く必要があります。拡張ボードが接続されている場合は ACM1、接続されていない場合は ACM2 を使用します。 ターミナル 1:*

sudo minicom -D /dev/ttyACM1 -b 9600

拡張ボードが接続されていない場合は、/dev/ttyACM1/dev/ttyACM0 に変更する必要があります。

ターミナル 2:

printf "hello seeed\r\n" > /dev/ttyACM1

ターミナル 1 には、ターミナル 2 から出力要求された内容が表示されます。

DI(デジタル入力)テスト

reComputer Industrial R21xx には 4 つの DI ポートが含まれており、ユーザーは実際のニーズに応じてこれらのポートを設定できます。

ポート数DI ポート対応する拡張 GPIO
4DI1GPIO588
DI2GPIO589
DI3GPIO590
DI4GPIO595

DI ポートの入力タイプは PNP です。5VDC〜24VDC の入力電圧をサポートし、電流は 1000mA です。 DI の機能をテストするには、次の手順に従ってテストできます。

  1. reComputer Industrial R21xx の DI ポートと外部負荷との接続が完了していることを確認します。
  2. 次のコマンドを入力して GPIO のステータスを取得します。
echo 588 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio588/direction
cat /sys/class/gpio/gpio588/value
  1. 外部レベルが High のとき、/sys/class/gpio/gpio588/value の値は 0 です。外部レベルが Low のとき、/sys/class/gpio/gpio588/value の値は 1 です。

DO(デジタル出力)

reComputer Industrial R21xx には 4 つの DO ポートが含まれており、ユーザーは実際のニーズに応じてこれらのポートを設定できます。

ポート数DI ポート対応する拡張 GPIO
4DO1GPIO638
DO2GPIO637
DO3GPIO590
DO4GPIO636
DO5GPIO635

DO ポートの出力タイプはトランジスタです。60 VDC 未満の出力電圧をサポートし、電流容量は 500 mA です。 DO の機能をテストするには、次の手順に従ってテストできます。

  1. reComputer Industrial R21xx の DO ポートと外部負荷との接続が完了していることを確認します。
  2. 出力を High レベルまたは Low レベルに設定するには、次のコマンドを入力します。
echo 638 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio638/direction
echo 1 > /sys/class/gpio/gpio638/value
echo 0 > /sys/class/gpio/gpio638/value
  1. 外部レベルが High のとき、/sys/class/gpio/gpio638/value の値は 0 です。外部レベルが Low のとき、/sys/class/gpio/gpio638/value の値は 1 です。

CAN テスト

ループバックテスト

ポート数DI ポート対応する拡張 GPIO
2CAN_H/CAN_Lcan0

reComputer Industiral R22xx は単一の CAN インターフェースのみを備えているため、単体でのループバックテストは実行できません。その通信機能を検証するには、外部の対向デバイスまたは USB-to-CAN アダプタが必要です。このテストでは、デュアル CAN インターフェースを備えた reComputer Industiral R21xx を対向ノードとして使用し、reComputer Industiral R22xx と接続を確立します。具体的な接続方式および設定手順については、次のチュートリアルを参照してください。

  1. 2 本のデュポン線を使用して can0 と can1 の H-H および L-L を短絡させ、最小ループテストを構成します。
CAN_H─────●───── CAN-H
CAN_L─────●───── CAN-L
G_CAN_H─────●───── G_CAN
  1. ドライバがロードされていないことを防ぐために、2 つのネットワークインターフェース can0 と can1 がシステム上に実際に存在することを確認します:
# should print can0 can1
ls /sys/class/net | grep can
# should see "successfully initialized"
dmesg | grep -i can
  1. 2 つの CAN インターフェースを 500 kbit/s に設定してオンラインにし、データの送受信を行えるようにします(安全のため Low レベルに設定します): R22xx:
sudo ip link set can0 down
sudo ip link set can0 up type can bitrate 500000

R21xx:

sudo ip link set can1 down
sudo ip link set can1 up type can bitrate 500000
  1. 通信テスト(片方向) can-utils を使用してデータを送受信します。

ステップ A: R21xx(CAN1)送信 → R22xx(CAN0)受信

  • R22xx: candump can0

  • R21xx: cansend can1 123#DE.AD.BE.EF.CA.FE.00.11

ステップ B: R22xx(CAN0)送信 → R21xx(CAN1)受信

  • R21xx: candump can1

  • R22xx: cansend can0 555#1122334455667788

USB ハブのテスト

USB ハブをテストするには、次の手順を実行します:

  1. lsusb コマンドを実行して USB ハブが検出されているか確認します。このコマンドは、ハブを含む接続されているすべての USB デバイスを一覧表示します。
lsusb

このコマンドを実行すると、システムに接続されている USB デバイスに関する情報が表示され、その中に存在する USB ハブも含まれます。 USB ハブが正常に動作している場合、lsusb コマンドの出力にその詳細が表示されます。表示されない場合は、ハブまたはシステムへの接続に問題がある可能性があります。そのような場合は、USB ハブまたはその接続をトラブルシューティングする必要があります。

RTC(リアルタイムクロック)のテスト

リアルタイムクロック(RTC)の機能をテストするには、次の手順に従います:

  1. 自動時刻同期を無効にします:
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
  1. 時刻を設定します: RTC に特定の日付と時刻を設定します:
sudo hwclock --set --date "2025-10-23 16:00:00"
  1. RTC 時刻をシステムに同期 システム時刻を RTC 時刻と一致するように更新します:
sudo hwclock --hctosys
  1. RTC 時刻を確認します:
sudo hwclock -r

このコマンドは、RTC に保存されている時刻を読み取り表示します。

  1. RTC から電源を切り離し、数分待ってから再接続し、RTC 時刻を再度確認して正しい時刻が保持されているか確認します。

ウォッチドッグタイマーのテスト

ウォッチドッグテストを実行するには、次の手順に従います:

  1. ウォッチドッグソフトウェアをインストールします:
sudo apt install watchdog
  1. ウォッチドッグの設定ファイルを編集します:
# make sure you install vim already, if haven't, can install by the command below
sudo apt-get install vim
sudo vim /etc/watchdog.conf

設定を次のように変更します:

watchdog-device = /dev/watchdog
# Uncomment and edit this line for hardware timeout values that differ
# from the default of one minute.
watchdog-timeout = 120
# If your watchdog trips by itself when the first timeout interval
# elapses then try uncommenting the line below and changing the
# value to 'yes'.
#watchdog-refresh-use-settimeout = auto
# If you have a buggy watchdog device (e.g. some IPMI implementations)
# try uncommenting this line and setting it to 'yes'.
#watchdog-refresh-ignore-errors = no
# ====================== Other system settings ========================
#
# Interval between tests. Should be a couple of seconds shorter than
# the hardware time-out value.
interval = 15
max-load-1 = 24
#max-load-5 = 18
#max-load-15 = 12
realtime = yes
priority = 1

必要に応じて他の設定を調整できます。

  1. ウォッチドッグサービスが実行中であることを確認します:
sudo systemctl start watchdog
  1. ウォッチドッグ機能をテストするには、次のコマンドを実行してシステムハングをシミュレートします:
sudo su

echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger

このコマンドはカーネルクラッシュをトリガーし、ウォッチドッグによってシステムが再起動されるはずです。

  1. 指定したタイムアウト時間後にシステムが再起動することを確認するため、システムを監視します。 これらの手順により、システム上のウォッチドッグタイマーの機能をテストし、確認することができます。

GPIO によるブザー制御

ブザーに対応する GPIO は gpio627 です。ブザーをオン/オフするには、次のスクリプトを入力します:

  1. ブザーをオンにする:
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 1 > /sys/class/gpio/gpio627/value
  1. ブザーをオフにする:ブザーをオフにする:
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 0 > /sys/class/gpio/gpio627/value

TPM 2.0

TPM 2.0 モジュールをデバイスに接続している場合、次のコードで TPM 接続を確認できます。

ls /dev | grep tpm

出力の解釈:

出力に tpm0tpmrm0 が表示されていれば、TPM(Trusted Platform Module)デバイスが検出され、システム上で利用可能であることを意味します。これは TPM ハードウェアが認識されアクセス可能であることを示しており、良好な状態です。TPM 関連の機能やアプリケーションを、デバイスが存在しアクセス可能であることを前提に進めることができます。

ATECC608A

ATECC608A デバイスとやり取りしてランダムなシリアル番号を生成するには、次の手順に従います:

  1. atecc-util リポジトリをクローンします:
curl -LJO https://github.com/wirenboard/atecc-util/releases/download/v0.4.12/atecc-util_0.4.12_arm64.deb
  1. .deb パッケージの内容を現在のディレクトリに展開します:
dpkg -x ./atecc-util_0.4.12_arm64.deb .
  1. atecc ディレクトリに移動します:
cd usr/bin
  1. ランダムなシリアル番号を生成します:
./atecc -b 10 -s 192 -c 'serial'

このコマンドは、ATECC ユーティリティにスロット 10(-b 10)を使用し、シリアル番号サイズを 192 ビット (-s 192) に設定し、ランダムなシリアル番号 (-c 'serial') を生成するよう指示します。出力は "01235595d3d621f0ee" のような生成されたシリアル番号になります。 このプロセスにより、ATECC608A デバイスとやり取りし、ランダムなシリアル番号の生成など、さまざまな操作を実行できます。

EEPROM とのやり取り

EEPROM(Electrically Erasable Programmable Read-Only Memory)とやり取りするためのコマンドは次のとおりです:

  1. EEPROM デバイスファイルに対して、読み取り・書き込み・実行のフルパーミッションを付与します:
 sudo chmod 777 /sys/bus/i2c/devices/10-0050/eeprom
  1. 文字列 "This is a test string" を EEPROM デバイスに書き込みます:
echo "This is a test string" > /sys/bus/i2c/devices/10-0050/eeprom
  1. EEPROM デバイスの内容を読み取り、hexdump ユーティリティを使用して 16 進数 形式で表示します:
cat /sys/bus/i2c/devices/6-0050/eeprom | hexdump -C

SSD 検出の確認

SSD を含むディスクを一覧表示するには、fdisk -l コマンドを使用できます。方法は次のとおりです:

sudo fdisk -l

このコマンドは、システムに接続されているすべてのディスクの一覧を表示し、適切に検出されていれば SSD も含まれます。SSD を表すエントリを探してください。通常、/dev/sd に続いて文字(例:/dev/sda, /dev/sdb, など)が付いた形式になります。 SSD に対応するエントリを特定したら、必要に応じてパーティション作成やフォーマットを進めることができます。

安全なシャットダウンのための UPS

CPU と DC 電源入力の間の GPIO6 は、電源が落ちたときに CPU に警告するために使用されます。その後、CPU はスーパーキャパシタのエネルギーが尽きる前にスクリプト内で緊急処理を行い、"$ shutdown" を実行する必要があります。 この機能を使用する別の方法は、GPIO ピンの変化をトリガとしてシャットダウンを開始することです。指定された GPIO ピンは KEY_POWER イベントを生成する入力キーとして設定されます。このイベントは systemd-logind によって処理され、シャットダウンが開始されます。

  1. ハードウェア接続。

UPS デバイスの 'CM5_UPS_DET' ピンが R21xx デバイスの GPIO16 ピンに接続されていることを確認してください。

  1. 設定ファイルを変更します。
  • ターミナルを開きます。
  • 次のコマンドを実行して設定ファイルを編集します:
sudo nano /boot/firmware/config.txt
  1. ファイルの末尾に次の内容を追加します:
dtoverlay=gpio-shutdown,gpio_pin=GPIO16,active_low=1

エディタを保存して終了します(Ctrl+O で保存し、Enter で確定、Ctrl+X で終了)。

  1. Python スクリプトを準備します
  • 新しい Python スクリプトファイルを作成します:
cd ~
sudo nano ups_shutdown.py
  • 次のコードをファイルにコピー&ペーストします:
import RPi.GPIO as GPIO
import time, os

num = 0

GPIO.setmode(GPIO.BCM)

# Set GPIO16 to input mode
# Add 500ms anti-shake time to stabilize the software
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(16, GPIO.FALLING, bouncetime=500)

while True:
if GPIO.event_detected(16):
print("...External power off...")
print("")

# Sync data to disk
os.system('sync')
print("...Data saving...")
print("")

# Sleep for 3 seconds
time.sleep(3)

# Synchronize data again
os.system('sync')

# Countdown 5 seconds
while num < 5:
print('----------')
s = 5 - num
print('---' + str(s) + '---')
num = num + 1
time.sleep(1)
print('----------')

# Execute shutdown command
os.system('sudo shutdown -h now')

エディタを保存して終了します(Ctrl+O で保存し、Enter で確定し、Ctrl+X で終了します)。

  1. スクリプトを実行します。
  • ターミナルを開きます。
  • 次のコマンドを実行してスクリプトを起動します:
sudo python3 ups_shutdown.py
注記

sudo を使用して、スクリプトがシャットダウンコマンドを実行するのに十分な権限を持つようにします。

  1. 電源断テストのシミュレーション
  • 外部電源を遮断します。
  • システムが自動的にデータを保存してシャットダウンするかどうかを確認します。
  1. 結果の確認
  • 電源を再接続します。
  • システムデータが完全で、正常に起動するかどうかを確認します。
注記
  1. UPS 機能については、詳細情報を入手するためにお問い合わせください。
  2. アラーム信号はアクティブ Low です。

AI アクセラレータ

reComputer Industrial R21xx の M.2 M-KEY 2240 スロットは、PCIE M.2 AI アクセラレータを搭載できるように設計されています。また、R21xx-12 シリーズには最大 26TOPS の Hailo-8 M.2 AI アクセラレーションがプリインストールされています。 R21xx-10 シリーズ製品を購入した場合は、AI 機能を有効にするために Hailo の NPU モジュールを別途購入する必要があります。 本製品には Hailo アクセラレータドライバがプリインストールされているため、そのまま使用してテストケースを実行できます:

  1. テストケースディレクトリへ移動
cd /mnt/hailo-rpi5-examples/
  1. 仮想環境を起動
source ./setup_env.sh
  1. シンプルな検出サンプルを実行
python basic_pipelines/detection_simple.py

アプリケーションを終了するには、Ctrl+C を押します。 これは検出サンプルの軽量版であり、CPU 負荷を最小限に抑えつつ Hailo の性能を示すことに主眼を置いています。内部の GStreamer ビデオ処理パイプラインは、ビデオ処理タスクを最小限にすることで簡略化されており、YOLOv6 Nano モデルが使用されています。

注記

購入した reComputer に Hailo-8 が含まれておらず、統合用に Hailo デバイスの購入を検討している場合は、公式の Hailo ドキュメント(https://github.com/hailo-ai)を参照してファームウェアと環境を構成し、サンプルを実行してデバイスが正常に使用できることを確認してください。

PoE IP カメラ

reComputer Industrial R22xx シリーズは、高密度 IP ビデオストリームおよび産業オートメーション向けに設計されています。最大帯域幅と安定性を確保するために、ハイブリッドバスアーキテクチャを採用した 5 つの物理ギガビットイーサネットポート を備えています。

内部バス配分:

  • eth0(ネイティブ):SoC に直接接続されています。レイテンシが最も低く、プライマリアップリンク(WAN) または 管理ポート として使用することを推奨します。
  • eth1(USB 拡張):ネイティブポートの隣にある単独のポートです。USB 3.0 バス を介して拡張され、PoE 出力 をサポートします。
  • eth2, eth3, eth4(PCIe 拡張):連続する 3 つのポートです。これらは PCIe バス を介して拡張され、PoE 出力 をサポートします。
  1. 技術仕様
カテゴリ仕様備考
総ポート数1(ネイティブ)+ 4(拡張)5x RJ45 ギガビットイーサネット
PoE モードAlternative A(モード A)データペア(1/2, 3/6)経由で給電
ポートあたりの PoE 出力12W(最大)標準的な IP カメラ向けに最適化
並列 PoE 出力4 ポートすべてが同時に 12W をサポートシステム電源入力が十分であることが必要
電源入力範囲9V - 36V DC内部昇圧回路により PoE 用に 48V へ昇圧
安全機能過電流・低電圧保護ホットプラグは禁止されています
  1. 重要な安全ガイドライン
  • ホットプラグ禁止:

    警告: PoE 電源が有効(GPIO High)な状態でイーサネットケーブルを抜き差しすると、過渡サージが発生し、LAN7800 や PCIe ブリッジチップを損傷する可能性があります。必ず「先に接続、後で給電(Connect First, Power Second)」の原則に従ってください。

  • 電源の推奨事項:

    本製品は 9V 入力をサポートしていますが、4 つの PoE ポートすべてがフルロード(4 × 12W)で動作する際の高い変換効率を確保するため、少なくとも 72W(3A)容量の 24V 産業用電源の使用を推奨します。

  1. 設定手順
  • ステップ 1: 競合するサービスを無効化 デスクトップ向けネットワークマネージャが産業用の静的 IP 設定を上書きしないように、NetworkManager を無効にします。
# Switch to systemd-networkd
sudo systemctl disable --now NetworkManager
sudo systemctl mask NetworkManager
sudo systemctl enable --now systemd-networkd
  • ステップ 2: PoE の自動給電(GPIO)を有効化 起動時に PoE 電源が有効になるように、exit 0 行の前に次のコマンドを /etc/rc.local に追加します。
# Export and set PoE Enable Pin (Example: GPIO 532)
echo 652 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio652/direction
echo 1 > /sys/class/gpio/gpio652/value
  • ステップ 3: マルチインターフェース IP 展開 各ポートに独立したサブネットを割り当て、RouteMetric を使用して eth0 がインターネットアクセス用のデフォルトゲートウェイとして維持されるようにします。
# Configure eth0 (WAN/DHCP) - Highest Priority
sudo bash -c 'cat > /etc/systemd/network/10-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
[DHCPv4]
RouteMetric=10
EOF'

# Configure eth1-eth4 (Static IP Segments)
for i in {1..4}; do
sudo bash -c "cat > /etc/systemd/network/20-eth$i.network <<EOF
[Match]
Name=eth$i
[Network]
Address=10.0.$((i+2)).10/24
[IPv4]
RouteMetric=$((100+i))
EOF"
done
  1. 検証とトラブルシューティング
  • バス接続の確認 lspcilsusb を使用して、すべてのコントローラがシステムに認識されていることを確認します:
  • PCIe 拡張ポート(eth2-4): lspci | grep Ethernet を実行
  • USB 拡張ポート(eth1): lsusb -t を実行し、lan78xx ドライバを探します。
  1. FAQ
  • Q: カメラが再起動を繰り返すのはなぜですか?
    • A: カメラの消費電力が 12W を超えていないか確認してください。高出力の PTZ カメラや強力な IR イルミネータを備えたカメラは、この上限を超える場合があります。
  • Q: PoE に 12V DC 入力を使用できますか?
    • A: はい。内部回路が 12V を 48V に昇圧します。ただし、入力電圧が低いほど変換損失が大きくなるため、12V 電源が高電流に対応できることを確認してください。
  • Q: インターフェース名が eth1-4 ではありません。
    • A: ip link を使用して実際のカーネル名(例:enp1s0)を確認し、.network ファイル内の Name= フィールドを更新してください。
  1. 4 チャンネル PoE カメラ対応状況:

reComputer R22 & reCamera

このガイドでは、RISC-V プラットフォームを搭載し、迅速なエッジ AI 展開のために設計されたオープンソース・モジュラー AI カメラである reCamera を、PoE を介して reComputer R22 に接続するための手順をステップバイステップで説明します。Node-RED を使用した RTSP ストリームのデプロイと、R22 上でのライブ映像プレビューについて取り扱います。

  1. ハードウェア接続と初期化
  • 対応モデル: reCamera シリーズ(PoE バージョン、例:LH-AR01)。
  • 物理接続: reCamera を標準的なイーサネットケーブルで R22 上の任意の PoE ポート(eth1-eth4)に接続します。
  • PoE 電源を有効化: R22 のターミナルで次のコマンドを実行し、48V 出力を有効にします:
    # Enable GPIO 652
    echo 652 > /sys/class/gpio/export
    echo out > /sys/class/gpio/652/direction
    echo 1 > /sys/class/gpio/652/value
  1. reCamera の設定(ワンクリック Node-RED インポート)

事前設定済みの flows.json を使用して、認証付き RTSP ストリームを素早くデプロイします。

  • ダッシュボードへアクセス: ブラウザを開き、http://10.0.3.200:1880(reCamera のデフォルト IP)にアクセスします。
  • 設定をインポート:
    • 右上のメニューアイコン をクリックし、Import を選択します。
    • flows.json ファイルをアップロードし、Import をクリックします。
  • カスタム認証(必須):
    • フロー内の RTSP Output ノードをダブルクリックします。
    • Authentication セクションで、次のように認証情報を設定します:
      • Username: seeed
      • Password: seeed
  • デプロイ: 右上の赤い Deploy ボタンをクリックします。
  1. R22 上でのビデオストリームプレビュー

R22(CM4/CM5 ベース)はハードウェアデコードをサポートしているため、検証には VLC または FFplay の使用を推奨します。

  1. オプション A: VLC GUI を使用(推奨)
  • R22 のターミナルで vlc と入力してプレーヤーを起動します。
  • Media -> Open Network Stream に進みます。
  • 認証付き RTSP URL を入力します:
    rtsp://seeed:[email protected]:554/live
  • Play をクリックします。
  1. オプション B: コマンドラインを使用(クイックテスト)

次のコマンドをそのままコピーして実行します:

ffplay -fflags nobuffer -flags low_delay rtsp://seeed:[email protected]:554/live

  1. トラブルシューティング
問題想定される原因解決策
10.0.3.200 に Ping が届かないR22 内部 IP の競合eth3/eth4 の両方が 10.0.3.10 を使用していないか確認し、一方を手動で変更します。
reCamera が起動しないPoE 電源が有効になっていないGPIO 6521 に設定されており、入力電源が 12V/3A 以上であることを確認します。
ビデオの遅延/レイテンシネットワークまたは MTU の問題R22 と reCamera 間に大量のブロードキャストトラフィックが発生していないことを確認します。

技術サポートと製品ディスカッション

当社製品をお選びいただきありがとうございます。お客様が当社製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートをご用意しています。お好みやニーズに応じて選択いただけるよう、複数のコミュニケーションチャネルを提供しています。

Loading Comments...