reComputer RK3588 ハードウェアインターフェース

最終更新:

このガイドでは、Armbian が動作している reComputer RK3588 のハードウェアインターフェースの確認方法と使い方を説明します。セクションのリンクから、接続・テストしたい周辺機器のセクションに移動してください。

はじめに

  • 初回起動セットアップを完了し、sudo を実行できるユーザーでローカルまたは SSH 経由でサインインしてください。
  • 周辺機器を接続する前に、ポートとメインボードの図 でコネクタの位置を確認してください。
  • 内部カード、リボンケーブル、GPIO 配線を取り付ける前に、デバイスの電源を切って取り外してください。
  • 以下のデバイスノード、バス番号、hwmon インデックスはリファレンスイメージの説明です。設定を変更するコマンドをコピーする前に、お使いのシステム上の実際のデバイスを確認してください。

ファン

reComputer RK3588 は Linux の hwmon サブシステムを通じてファン回転数と PWM 設定を公開します。確認した Armbian イメージではファン名は pwmfan、ノードは hwmon8 です。メーカーのカーネルはデバイスツリーの温度しきい値に従って PWM も調整します。

ハードウェア監視パス

インターフェースパス説明
ファン名/sys/class/hwmon/hwmon8/namepwmfan
ファン回転数/sys/class/hwmon/hwmon8/fan1_input現在の RPM
PWM 値/sys/class/hwmon/hwmon8/pwm1要求 PWM 値、0–255
PWM 有効化ポリシー/sys/class/hwmon/hwmon8/pwm1_enablePWM / 電源ポリシー。観測値:1

hwmon の番号はイメージやドライバー設定によって変わることがあります。以下のパスを使う前に名前を確認してください。

bash
for node in /sys/class/hwmon/hwmon*; do
    [ -r "$node/name" ] || continue
    printf '%s: ' "$node"
    cat "$node/name"
done

テスト機では /sys/class/hwmon/hwmon8/name が pwmfan を返しました。

温度ゾーン

ゾーン報告された種類温度パス
SoCsoc-thermal/sys/class/thermal/thermal_zone0/temp
ビッグコア 0bigcore0-thermal/sys/class/thermal/thermal_zone1/temp
ビッグコア 1bigcore1-thermal/sys/class/thermal/thermal_zone2/temp
リトルコアlittlecore-thermal/sys/class/thermal/thermal_zone3/temp
センターcenter-thermal/sys/class/thermal/thermal_zone4/temp
GPUgpu-thermal/sys/class/thermal/thermal_zone5/temp
NPUnpu-thermal/sys/class/thermal/thermal_zone6/temp

温度の単位はミリ℃です。1000 で割ると °C になります。このイメージには温度ゾーンが七つあります。RK3576 の番号をそのまま使わず、報告された名前で識別してください。

ファン回転数と温度の読み取り

bash
cat /sys/class/hwmon/hwmon8/fan1_input
cat /sys/class/hwmon/hwmon8/pwm1
cat /sys/class/hwmon/hwmon8/pwm1_enable

設定を復元した後の観測値は約 2280 RPM、PWM 25、有効化ポリシー 1 でした。すべての機器で同じ値になるわけではありません。

すべての温度ゾーンを読み取ります。

bash
for zone in /sys/class/thermal/thermal_zone*; do
    [ -r "$zone/type" ] && [ -r "$zone/temp" ] || continue
    printf '%s: ' "$(cat "$zone/type")"
    awk '{printf "%.1f°C\n", $1 / 1000}' "$zone/temp"
done

観測した SoC 温度は約 37°C でした。

短時間の PWM 書き込みテスト

64、128、255 の値をそれぞれ一度書き込みました。直後には要求値を読み取れましたが、観測時の温度ではメーカーの温度制御が約一秒以内に PWM を 25 に戻しました。

要求 PWMテスト時の直後の値約一秒後の値
646425
12812825
25525525

短時間の確認では現在値を保存し、128 を要求して読み取り、保存した値を復元します。

bash
FAN_PWM=/sys/class/hwmon/hwmon8/pwm1
ORIGINAL_PWM=$(cat "$FAN_PWM")
printf '128\n' | sudo tee "$FAN_PWM"
cat "$FAN_PWM"
sleep 1
cat "$FAN_PWM"
printf '%s\n' "$ORIGINAL_PWM" | sudo tee "$FAN_PWM"

最初の読み取りですでに温度制御の値が返った場合、読み取り前にカーネルが要求を上書きした可能性があります。書き込み成功は持続的な手動制御を意味せず、このテスト値は回転数を 25%、50%、最大値に固定できることも示しません。

メーカーの温度制御

確認したデバイスツリーには次の cooling-levels と rockchip,temp-trips 設定があります。

温度範囲(°C)冷却レベルPWM 値
<38025
38–<44145
44–<50260
50–<56375
56–<624100
62–<685130
68–<746170
74–<807210
≥808255

有効なデバイスツリー設定を確認します。

bash
python3 - <<'PY'
from pathlib import Path
import struct

node = Path('/sys/firmware/devicetree/base/pwm-fan')
for name in ('cooling-levels', 'rockchip,temp-trips'):
    data = (node / name).read_bytes()
    values = struct.unpack('>' + 'I' * (len(data) // 4), data)
    print(name + ':', list(values))
PY

このイメージでは pwm1_enable=1 にしてもメーカーの温度制御は無効になりません。汎用的な 1=manual, 2=automatic 切り替えとして扱わないでください。PWM / 電源ポリシーは Linux pwm-fan ドキュメント、Rockchip の温度コールバックはメーカードライバーを参照してください。

テスト後も温度制御は継続しました。別の温度制御スクリプトや systemd サービスはインストールしていません。メーカー制御を置き換える方法や独自サービスの動作は、この機器ではまだ確認していません。

クイックリファレンス

bash
cat /sys/class/hwmon/hwmon8/name
cat /sys/class/hwmon/hwmon8/fan1_input
cat /sys/class/hwmon/hwmon8/pwm1
cat /sys/class/hwmon/hwmon8/pwm1_enable
awk '{printf "%.1f°C\n", $1 / 1000}' /sys/class/thermal/thermal_zone0/temp

確認環境

項目値
機器reComputer RK3588
OSArmbian 26.8.7 / Ubuntu 26.04 (resolute), ARM64
カーネル6.1.172-vendor-seeed-rk3588
ファン監視/sys/class/hwmon/hwmon8 (pwmfan)
復元後の PWM25
復元後の有効化ポリシー1
復元後の観測回転数約 2280 RPM
観測した SoC 温度約 37°C

LED インジケーターの状態

機器には Power、Status、User のインジケーターがあり、User は RGB LED です。

Power、Status、User インジケーター

LED の動作と制御

インジケーター既定の動作制御
Power(赤)給電中は常時点灯ハードウェア電源回路
Status(緑)基板上の電源状態回路で制御現在のシステムは対応する LED クラス制御ノードを公開しない
User(RGB)青はハートビート、赤と緑は消灯三つの色チャネルを Linux LED クラスで制御可能

LED の特定

現在の RK3588 イメージは次のノードを公開します。三つのチャネルはいずれも max_brightness が 1 です。

色ノード既定のトリガー
赤/sys/class/leds/user-led_rednone
緑/sys/class/leds/user-led_greennone
青/sys/class/leds/user-led_blueheartbeat
bash
ls -d /sys/class/leds/user-led_*
cat /sys/class/leds/user-led_blue/trigger
cat /sys/class/leds/user-led_blue/max_brightness

trigger の出力では、有効なトリガーが [heartbeat] のように角括弧で囲まれます。

手動制御(点灯 / 消灯)

none に書き込む前にトリガーを brightness にします。1 で点灯、0 で消灯します。

bash
LED_PATH=/sys/class/leds/user-led_blue
echo none | sudo tee "$LED_PATH/trigger"
echo 1 | sudo tee "$LED_PATH/brightness"
sleep 2
echo 0 | sudo tee "$LED_PATH/brightness"

赤または緑を制御する場合、パス末尾の user-led_blue を user-led_red または user-led_green に置き換えます。三つのチャネルは LED ドライバーが管理するため、gpioset は不要です。

自動トリガー

青チャネルを 500 ms 点灯、500 ms 消灯で交互に動作させます。

bash
LED_PATH=/sys/class/leds/user-led_blue
echo timer | sudo tee "$LED_PATH/trigger"
echo 500 | sudo tee "$LED_PATH/delay_on"
echo 500 | sudo tee "$LED_PATH/delay_off"

青のハートビートトリガーを復元します。

bash
echo heartbeat | sudo tee /sys/class/leds/user-led_blue/trigger

既定状態の復元

bash
for color in red green; do
    LED_PATH="/sys/class/leds/user-led_$color"
    echo none | sudo tee "$LED_PATH/trigger"
    echo 0 | sudo tee "$LED_PATH/brightness"
done
echo heartbeat | sudo tee /sys/class/leds/user-led_blue/trigger

これらの設定は実行中のシステムにのみ作用し、起動設定を変更しません。明るさとトリガーの動作は Linux LED ドキュメントを参照してください。

ボタン

基板には Power、Recovery、MaskROM ボタンがあります。ファームウェア操作では USB データケーブルを Type-C OTG ポートに接続し、使用する RK3588 イメージの書き込み手順に従います。Recovery と MaskROM は書き込み用モードで、通常のデスクトップ起動手順ではありません。

GPIO と周辺バス

reComputer RK3588 の 40 ピン GPIO 配置図

現在のデバイスツリーが公開するコントローラーとライン名を確認します。

bash
gpiodetect
gpioinfo

ツールがない場合はディストリビューションのパッケージをインストールします。

bash
sudo apt update
sudo apt install gpiod

RK3588 回路図で物理ピンと信号の対応を確認し、gpioinfo でコントローラーとラインを探します。出力設定前に gpioset --help でインストール済み libgpiod の構文を確認してください。

インストール済み RK3588 オーバーレイと現在の起動設定を表示します。

bash
find /boot -type f -name '*rk3588*.dtbo' -print
grep -E '^(fdtfile|overlay_prefix|overlays|user_overlays)=' /boot/armbianEnv.txt

I2C、UART、SPI、CAN では、基板と接続機器に対応するオーバーレイを選択します。/boot/armbianEnv.txt の編集時は既存のオーバーレイを残してください。パラメーターとピン割り当てはインストール済みオーバーレイの説明に従います。

USB

Seeed Studio の仕様では、reComputer RK3588 の USB インターフェースは次のとおりです。

インターフェース / 数量物理コネクターバス規格と機能用途
USB 3.0 ホスト ×4USB Type-AUSB 3.0、公称信号速度 5 GbpsUSB カメラ、外部ストレージ、キーボード、マウスなどを接続。
USB Type-C ×1USB Type-COTG + DisplayPort対応ケーブルやアダプターを使った OTG 接続と DisplayPort 出力。

5 Gbps は USB 3.0 の公称信号速度であり、実測のファイル転送速度ではありません。四つの Type-A ポートがそれぞれ独立した 5 Gbps のコントローラー帯域を持つことも意味しません。

接続済み USB 機器とトポロジーを表示します。

bash
lsusb
lsusb -t

reComputer RK3588 の USB 機器とトポロジー

lsusb -t でネゴシエーションされた速度を確認します。USB カメラやアクセラレーターでは、その機器のドライバーとアプリケーションの手順にも従ってください。

microSD と NVMe ストレージ

機器には microSD スロットと NVMe SSD 向け PCIe 拡張があります。使用前にモデル、容量、マウント先でストレージを識別します。

bash
lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE,MOUNTPOINTS
lspci -nn

reComputer RK3588 のストレージ一覧

NVMe SSD の PCIe 接続とドライバーを確認します。

bash
lspci -nnk | grep -A 3 -i 'Non-Volatile memory'

ドライブの認識だけでは起動対応を確認できません。使用するイメージのインストール手順に従ってください。

M.2 拡張インターフェース

reComputer RK3588 は NVMe ストレージや対応する PCIe AI アクセラレーター向けに 二つの M.2 Key-M インターフェースを備えています。

モジュール規格PCIe 規格
2242 (22 × 42 mm)PCIe 2.1 ×1
2280 (22 × 80 mm)PCIe 3.0 ×4

×1 と ×4 はそれぞれ一つと四つのレーンを意味します。2242 インターフェースは公式製品情報に従い PCIe 2.1 ×1 と表記します。スロット選択時はモジュールのキー、長さ、固定位置を確認してください。実際の接続速度と幅は下記の LnkSta で確認できます。Seeed Studio 製品詳細を参照してください。

M.2 Key-M 2242 インターフェース(PCIe 2.1 ×1)

M.2 Key-M 2242 インターフェースの位置

M.2 Key-M 2280 インターフェース(PCIe 3.0 ×4)

M.2 Key-M 2280 インターフェースの位置

モジュールの取り付け

  1. システムを終了し、DC または PoE 電源を外してからケースを開けます。
  2. モジュールのキー、長さ、固定位置がスロットに適合することを確認し、挿入後にねじで固定します。
  3. 冷却と接続を確認した後、電源を接続して起動します。

ストレージには NVMe SSD を選びます。AI アクセラレーターには RK3588 の OS とカーネルに対応するドライバーとランタイムも必要です。容量は前述の lsblk で確認できます。

PCIe 機器とドライバーの確認

bash
lspci -nnk

SSD またはアクセラレーターの項目を探し、機器アドレス、モデル、Kernel driver in use を確認します。

接続速度とレーン幅の確認

プロンプトで直前の出力に表示された PCIe 機器アドレスを入力します。

bash
read -rp 'PCIe device address: ' PCIE_DEVICE
sudo lspci -s "$PCIE_DEVICE" -vv | grep -E 'LnkCap:|LnkSta:'

LnkCap はリンクの能力、LnkSta は現在の接続速度と幅を示します。NVMe から起動する場合は、Armbian イメージのインストール手順で起動環境を設定してください。

SIM と miniPCIe 拡張

nano SIM スロットは対応する携帯通信モジュールと組み合わせます。SIM や内部モジュールの取り付け前に電源を外してください。miniPCIe はオプションの 4G LTE、LoRaWAN、Wi-Fi HaLow モジュールに対応し、アンテナとソフトウェアはモジュールに合わせます。

reComputer RK3588 の 4G LTE miniPCIe モジュールと SIM スロット

モジュール取り付けと起動後、PCIe、USB、ネットワーク機器の列挙結果を確認します。

bash
lspci -nn
lsusb
ip -br link

4G モジュール(EC25)の確認

EC25 などの USB 携帯通信モジュールでは、まずシリアル機器とドライバーメッセージを確認します。

bash
ls /dev/ttyUSB*
sudo dmesg | grep -iE 'quectel|option|ttyUSB|qmi_wwan|cdc_ether' | tail -n 50

RK3588 4G モジュールのシリアル機器とドライバー認識結果

モジュールの説明で AT コマンドポートを確認し、minicom をインストールして開きます。プロンプト内の /dev/ttyUSB2 は例であり、実際の AT ポートを入力してください。

bash
sudo apt update
sudo apt install minicom
read -rp 'AT serial device (e.g. /dev/ttyUSB2): ' AT_PORT
sudo minicom -D "$AT_PORT" -b 115200

以下のコマンドは Linux シェルではなく minicom 内で一つずつ送信します。最初に AT を送信し、OK を受け取ってから続けます。

text
AT
ATI
AT+CPIN?
AT+CSQ
AT+CREG?
AT+CGREG?
AT+CEREG?
AT+COPS?

ATI はモジュール情報、AT+CPIN? は SIM 状態、AT+CSQ は信号品質を確認します。AT+CREG?、AT+CGREG?、AT+CEREG? は登録状態、AT+COPS? は現在の通信事業者を確認します。Ctrl+A、続いて X で minicom を終了します。Quectel EC25 / EC21 AT コマンドマニュアルを参照してください。

データ通信には事業者の APN とモジュールの USB データモードに合わせたホスト側ネットワーク設定も必要です。SIM が使用可能、またはモジュールが登録済みでも、RK3588 のインターネット接続が確立したとは限りません。

LoRaWAN と Wi-Fi HaLow の機器識別

取り付けた USB または SPI モジュールに合わせ、機器ノード、既存のオーバーレイ、ドライバーメッセージを確認します。

bash
lsusb
ls /dev/ttyACM*
ls /dev/spidev*
find /boot -type f -name '*.dtbo' | grep -iE 'halow|lora|rk3588'
grep -E '^(fdtfile|overlay_prefix|overlays|user_overlays)=' /boot/armbianEnv.txt
sudo dmesg | grep -iE 'morse|mm6108|sx1302|lora' | tail -n 50
ip -br link

USB と SPI では通信方式が異なります。LoRaWAN テスト引数、SPI / GPIO リセット設定、HaLow オーバーレイは RK3588 イメージとモジュールの説明で選び、RK3576 のオーバーレイ名を流用しないでください。ゲートウェイ送受信と HaLow AP / ステーション設定は各モジュールの手順に従います。

Ethernet RJ45

reComputer RK3588 は 二つの RJ45 2.5GbE Ethernet ポートを備えます。上位ネットワークとローカル機器を接続し、エッジゲートウェイ、データ収集、デュアルポートのネットワークアプリケーションに利用できます。

一方のポートは追加の PoE モジュールで本体に給電できます。対応モジュールを取り付け、スイッチや給電機器の電源要件を確認してから使用してください。

ネットワークインターフェースと IP アドレスの確認

Ethernet ケーブルを接続し、現在のシステムのインターフェース名とアドレスを表示します。

bash
ip -br link
ip -br addr

eth0 や eth1 と決めつけず、システムが表示した名前を使います。物理ポートとの対応はケーブルを一本ずつ接続・切断し、リンク状態の変化で確認できます。

接続速度とリンク状態の確認

ethtool をインストールし、プロンプトで先ほど確認した有線インターフェース名を入力します。

bash
sudo apt update
sudo apt install ethtool
read -rp 'Ethernet interface: ' ETH_IFACE
sudo ethtool "$ETH_IFACE"

Speed、Duplex、Link detected を確認します。Link detected: yes は物理リンク検出、Speed: 2500Mb/s は 2.5GbE の接続確立を示します。実際の速度は本体ポート、接続先のスイッチやアダプター、ケーブルによって決まります。

ネットワーク接続の設定

NetworkManager を使うイメージでは、接続状態を確認し、DHCP または固定 IP 用の文字設定画面を開けます。

bash
nmcli device status
nmtui

nmtui で有線接続を選び、IP アドレス、ゲートウェイ、DNS を設定してネットワーク計画に従って有効にします。両ポートを使う場合は接続ごとに設定します。

Wi-Fi と Bluetooth

機器は Wi-Fi 6 と Bluetooth 5.4 を搭載します。無線のブロック状態と Bluetooth コントローラーを確認します。

bash
rfkill list
bluetoothctl list

HDMI と DisplayPort

機器は 二つの HDMI 2.1 出力、一つの HDMI 2.0 入力、Type-C 経由の DisplayPort を備えます。モニターは出力に接続します。HDMI 入力は外部映像ソースのキャプチャー用です。

ディスプレイ端子の接続状態を確認します。

bash
for connector in /sys/class/drm/card*-*; do
    [ -r "$connector/status" ] || continue
    printf '%s: ' "$connector"
    cat "$connector/status"
    [ ! -r "$connector/modes" ] || cat "$connector/modes"
done

reComputer RK3588 のディスプレイ端子接続状態

HDMI 入力や対応カメラなどのキャプチャー機器は、V4L2 で映像機器を一覧表示します。

bash
sudo apt install v4l-utils
v4l2-ctl --list-devices

reComputer RK3588 の HDMI 入力機器認識結果

キャプチャーでは確認した映像ノードと対応形式を使用します。複数画面の配置はデスクトップの表示設定で行います。

RTC

基板には 2 ピンの RTC コネクターがあります。電池の接続前に回路図で極性と電池要件を確認してください。Linux が公開する RTC 機器を確認します。

bash
for rtc in /sys/class/rtc/rtc*; do
    [ -r "$rtc/name" ] || continue
    printf '%s: ' "$rtc"
    cat "$rtc/name"
    [ ! -r "$rtc/date" ] || cat "$rtc/date"
    [ ! -r "$rtc/time" ] || cat "$rtc/time"
done

ハードウェア資料とシステムイメージはリソースダウンロード一覧から入手できます。