外部メモリの利用

$Date: 2023/07/07 18:17:12 $


概要

ルーターに外部メモリ(microSDメモリカード、USBメモリ)を接続して利用する機能には、以下の機能があります。

機能の詳細については各機能の説明資料をご参照ください。
外部メモリの基本的な取り扱いとLEDやブザーの仕様、SYSLOGメッセージなどについて本文書で説明します。

FUNCボタンが搭載された機種を使用する場合は、DOWNLOADボタンをFUNCボタンに読み替えてください。


対応機種と利用できる外部メモリ

利用できる外部メモリは機種によって異なります。

機種 利用できる外部メモリ ファームウェア
YSL-V810 microSD/SDHCメモリカード、USBメモリ Rev.1.03系
RTX3510 microSD/SDHCメモリカード、USBメモリ Rev.23.01系
RTX1300 microSD/SDHCメモリカード、USBメモリ Rev.23.00系
RTX1220 microSD/SDHCメモリカード、USBメモリ Rev.15.04系
RTX830 microSD/SDHCメモリカード、USBメモリ Rev.15.02系
NVR510 microSD/SDHCメモリカード、USBメモリ Rev.15.01系
NVR700W microSD/SDHCメモリカード、USBメモリ Rev.15.00系
RTX1210 microSD/SDHCメモリカード、USBメモリ Rev.14.01系
RTX5000 microSD/SDHCメモリカード Rev.14.00系
RTX3500 microSD/SDHCメモリカード Rev.14.00系
FWX120 microSD/SDHCメモリカード、USBメモリ Rev.11.03系
RTX810 microSD/SDHCメモリカード、USBメモリ Rev.11.01系
NVR500 microSD/SDHCメモリカード、USBメモリ Rev.11.00系
RTX1200 microSD/SDHCメモリカード、USBメモリ Rev.10.01系
SRT100 USBメモリ Rev.10.00系
RT58i USBメモリ Rev.9.01系

注意事項

また特に、USBメモリに関しては以下の注意点があります。


基本操作

外部メモリを接続する

ルーター側でusbhost useコマンド(USBメモリを使う場合)あるいはsd useコマンド(microSDメモリカードを使う場合)がonになっていることを確認してください(工場出荷状態ではon)。offの場合、外部メモリを接続してもルーター側で認識されません。

外部メモリをルーターに接続します。
アラームが鳴ると同時に外部メモリLEDが点灯して、ルーターで外部メモリが認識できたことを示します。この状態で、各種外部メモリを使う機能を利用することができます。

外部メモリが壊れていて正常に認識できない場合は、アラームは鳴らず、また外部メモリLEDも点灯しません。そのときは外部メモリを抜き、他の正常な外部メモリを使用してください。

アラームが4回鳴りLEDが点滅する場合は、許容範囲外の電流を消費するなどのエラーを検出したことを示します。この場合の復旧手順は注意事項をご参照ください。

外部メモリを抜く

ルーターから外部メモリを抜く前に、外部メモリボタンを2秒間押し続けてください。
外部メモリを安全に抜くための処理がルーター側で行われます。アラームが鳴り、外部メモリLEDが消灯した事を確認したら外部メモリを静かに抜いてください。

外部メモリLEDが点灯している間は決して外部メモリを抜かないでください。


ファイルの自動検索

Rev.10.01系以降のファームウェアでは、外部メモリのディレクトリ下にあるファイルを自動検索することができます。
Rev.9.01系やRev.10.00系のファームウェアでは、ルートディレクトリにあるファイルだけが対象になります。

自動検索の設定

自動検索機能は以下の場合に機能します。

ファイルコピー機能や起動機能で利用する場合は、external-memory exec filenameコマンドやexternal-memory config filenameコマンドでファイル名のみを指定します。
バッチファイル実行機能で利用する場合は、external-memory batch filenameコマンドのファイル名設定でファイル名のみを指定します。
これらのコマンドはいずれもデフォルトでファイル名のみが指定されており、自動検索を行うことになります。

copyコマンド実行時には、コピー元ファイル名として外部メモリのファイル名のみを指定した場合に、外部メモリ内にあるファイルを自動検索します。

ファイルを絶対パス('/'で始まる指定)で直接指定すると、自動検索は行われず、指定した位置にあるファイルのみを対象とします。

以下に、external-memory exec filenameコマンドを例にして、指定方法による動作の違いを示します。

外部メモリに格納されているファイルやディレクトリの数、構成によっては、ファイルの自動検索に長い時間を要する場合があります。
検索時間を短くするためには、階層の深いディレクトリの作成は避けてルートに近い位置にファイルを格納したり、ファイルを絶対パス('/'で始まる指定)で直接指定してください。
検索対象ファイルが存在しない場合にも全ディレクトリを検索して時間がかかることになりますので、検索の不要なファイルはファイル名を指定する上記コマンドでoffを設定しておくとよいでしょう。

自動検索のルール

検索は以下のルールに従って行います。

自動検索のキャンセル

検索に時間がかかる場合は、以下の設定、操作により検索を中止させることができます。


ファイルアクセスの高速化

Rev.11.00.13 以降、および、Rev.11.01 系以降のファームウェアでは、外部メモリの単一ディレクトリに格納されるファイルやディレクトリの数が多いディレクトリを対象に、当該ディレクトリのファイルやディレクトリへのアクセス性能を改善しています。
以下に本機能に関する説明をします。

まず、本機能を使用するには、external-memory accelerator cache size コマンドで、ファイルアクセス高速化機構を有効にしてください(初期値は有効)。off 以外の設定で、ファイルアクセス高速化機構が有効になります。

例)usb1 インタフェースに接続される外部メモリへのファイルアクセスに使用するキャッシュメモリのサイズを "1" に設定する。
   # external-memory accelerator cache size usb1 1
次に高速アクセスが適用される条件を以下に説明します。
これらの条件をすべて満たしたとき、高速アクセスが適用されます。それ以外では、高速アクセスは適用されず、すべて通常アクセス(従来と同じ動作)となります。

上記で説明した通り、高速アクセスが適用されるためには、対象となるファイルまたはディレクトリの管理情報がキャッシュされている必要があります。これらは通常、外部メモリが接続されたときにキャッシュされます。また、ファイルやディレクトリを作成したときにディレクトリ内の総数が 100個以上になったときにもキャッシュされます。逆にファイルやディレクトリを削除したときに総数が 100個未満になったときにはキャッシュがクリアされます。アクセス性能が向上しない場合は、キャッシュメモリが不足し、対象となるファイルまたはディレクトリの管理情報がキャッシュされていない可能性がありますので、external-memory accelerator cache size コマンドで使用するキャッシュメモリのサイズを大きくしてください。ただし、サイズを大きくすると、外部メモリ内のディレクトリ・ファイル構成によっては、外部メモリを接続してから使用可能になるまでの時間が長くなることがあります。
詳しくは、external-memory accelerator cache size コマンド の説明をご参照ください。

※注意事項


コマンド仕様


動作表

外部メモリボタンおよびDOWNLOADボタンの動作

外部メモリボタンおよびDOWNLOADボタンの各押下時間の組み合わせによる動作の一覧を以下に示します。

外部メモリボタン
押下なし 0秒〜 1秒〜 2秒〜 3秒〜
DOWNLOADボタン 押下なし なにもしない ※2 ※2 外部メモリ切り離し
※2
※2
0秒〜 なにもしない なにもしない なにもしない なにもしない なにもしない
1秒〜 DOWNLOADボタン機能の実行キャンセル
※1、※4
なにもしない なにもしない なにもしない なにもしない
2秒〜 なにもしない なにもしない なにもしない なにもしない なにもしない
3秒〜 DOWNLOADボタン機能の実行開始
※4
なにもしない なにもしない なにもしない 外部メモリから設定ファイル/ファームウェアファイルのダウンロード開始
※3

※1. ボタン実行による自動検索中の場合は、自動検索中断
※2. 過電流によるUSBデバイスエラー状態の場合は、ボタンを押して離した時点でエラー状態解除
※3. 過電流によるUSBデバイスエラー状態の場合は動作しない
※4. DOWNLOADボタン機能はHTTPリビジョンアップである。
Rev.10.01系以降ではDOWNLOADボタン押下時の動作をoperation button function download コマンドによって変更できる。詳細はバッチファイル実行機能の資料を参照のこと。

アラームの鳴動パターン

各状況におけるアラーム鳴動パターンの一覧を以下に示します。なお、以下に挙げるアラームはalarm usbhostコマンド及びalarm sdコマンドで鳴らす/鳴らさないを制御することができます。

状況鳴動パターン
外部メモリを認識した時 ピピ(低音→高音)
外部メモリボタンとDOWNLOADボタン同時押下によるダウンロード開始時
外部メモリボタンとDOWNLOADボタン同時押下によるダウンロード時にダウンロードすべきファイルが1つもない場合 ピピピピ
過電流によるUSBデバイスエラー発生時ピー、ピー、ピー、ピー
過電流によるUSBデバイスエラーからの復旧時 ピピ(高音→低音)
外部メモリメモリ切り離し時

外部メモリLEDの点灯パターン

外部メモリを利用する機能に関する外部メモリLEDの点灯(消灯)パターンの一覧を以下に示します。

状況 点灯パターン
外部メモリ認識時 点灯
外部メモリへのアクセス時 アクセス負荷に応じて点滅
外部メモリボタンとDOWNLOADボタン同時押下によるダウンロード、もしくはcopy execコマンドによるファームウェア更新時 他のファームウェア更新動作と同じ(※1)
ボタン操作による更新の場合は自動的にシステムが再起動する。
外部メモリボタンとDOWNLOADボタン同時押下によるダウンロード時にダウンロードすべきファイルが1つもない場合 3回点滅
外部メモリ切り離し時 (点灯状態から)消灯
過電流によるUSBデバイスエラー発生時 点滅し続ける
過電流によるUSBデバイスエラーからの復旧時 (点滅状態から)消灯

※1. ルーター本体のLEDが左から右へ流れるように順次点灯。これを内蔵フラッシュROMへの書き込みが終了するまで繰り返す。

SYSLOGメッセージ

外部メモリを利用する機能において出力されるSYSLOGメッセージについて、例を以下に示します。実際に出力される各メッセージの先頭には"[SD]"や"[USB_HOST]"というプレフィックスが付与されます。
外部メモリ起動機能に関わるログには"[EXTMEMBOOT]"というプレフィックスが付与されます。

レベル 出力メッセージ 内容
INFO 共通 device attached: vendor=0xXXXX <VendorName>, product=0xXXXX <ProductName> デバイスが接続された
device detached: vendor=0xXXXX <VendorName>, product=0xXXXX <ProductName> デバイスが外された
microSD storage device is attached microSDデバイスが接続され、使用可能な状態になった
Medium formatted by unsupported file system 未サポートのファイルシステムでフォーマットされたメディアを検出した
Detection of USB device error status(wrong device) 接続したUSBデバイスが壊れている(認識できない)
Detection of USB device error status(over current) 接続したUSBデバイスにより生じた過電流でハード的な障害が生じた
Recovery from USB device error status(over current) 過電流によるUSBデバイスエラーから復旧した
Ready to detach USB device safely USBデバイスを切り離し、安全に抜くことのできる状態になった
Timeout in file search ファイル検索中にタイムアウトになった
外部メモリファイルコピー機能 Logfile is opened ("sd1:FILENAME", maximum size: XXXX bytes) microSDメモリに書き出すSYSLOGファイルをオープンした
FAILED : Logfile is not opened ("sd1:FILENAME") microSDメモリに書き出すSYSLOGファイルのオープンに失敗した
Logfile is closed ("sd1:FILENAME") microSDメモリに書き出したSYSLOGファイルをクローズした
Logfile is backed up from "sd1:LOG_FILENAME" to "sd1:BAK_FILENAME" microSDメモリ内のSYSLOGファイルが上限サイズに達したのでバックアップファイルに退避させた
FAILED : Logfile is not backed up from "sd1:LOG_FILENAME" to "sd1:BAK_FILENAME" microSDメモリ内のSYSLOGファイルが上限サイズに達したのでバックアップファイルに退避させようとしたが失敗した
Configuration is copied from "0(internal)" to "sd1:FILENAME" microSDメモリへ設定ファイルをコピーした
FAILED : Configuration is not copied from "0(internal)" to "sd1:FILENAME" microSDメモリへの設定ファイルのコピーに失敗した
Configuration is copied from "sd1:FILENAME" to "0(internal)" 内蔵フラッシュROMへ設定ファイルをコピーした
FAILED : Configuration is not copied from "sd1:FILENAME" to "0(internal)" 内蔵フラッシュROMへの設定ファイルのコピーに失敗した
Firmware is copied from "sd1:FILENAME" to "0(internal)" 内蔵フラッシュROMへファームウェアファイルをコピーした
FAILED : Firmware is not copied from "sd1:FILENAME" to "0(internal)" 内蔵フラッシュROMへのファームウェアファイルのコピーに失敗した
外部メモリ起動機能
[EXTMEMBOOT]
Configuration file is found in microSD("sd1:/config.txt") miscoSDメモリ内に設定ファイルを発見した
Firmware file is found in microSD("sd1:/rtx1200.bin") SD内にファームウェアを発見した
MD5 Checksum is differ ファームウェアファイルが不正だった
Configuration file is not found. 設定ファイルが見つからなかった
Firmware file is not found. ファームウェアファイルが見つからなかった
バッチファイル実行機能 cannot find "sd1:FILENAME" 設定したバッチファイル"FILENAME"がなかった
Batch-log file was opened("sd1:FILENAME") ログファイル"FILENAME"をオープンした
Execute batch file "sd1:FILENAME" バッチファイル"FILENAME"を実行した
Executing batch file was canceled バッチファイルの実行を中断した
Batch-log file was closed("sd1:FILENAME") ログファイル"FILENAME"をクローズした
DEBUG 共通 File open error ("sd1:FILENAME") ファイルのオープンに失敗した
File write error ("sd1:FILENAME") ファイルの書き込みに失敗した
File read error ("sd1:FILENAME") ファイルの読み出しに失敗した
File size error ("sd1:FILENAME") ファイルのサイズが制限を超えた
File encrypt error ("sd1:FILENAME") ファイルの暗号化に失敗した
File decrypt error ("sd1:FILENAME") ファイルの復号化に失敗した

[EOF]