$Date: 2025/07/18 15:32:42 $
本機能は、ルーター本体へ外部メモリ(USBメモリ、microSDメモリカード)を接続することにより、ルーターと外部メモリ間で各種データの操作を行うものです。使用できる外部メモリは機種によって異なります。
本機能により、以下の動作が可能となります。
外部メモリの基本的な使用方法、ボタン操作、LEDやブザー音の仕様、SYSLOGメッセージの詳細については、外部メモリの利用の資料をご参照ください。
FUNCボタンが搭載された機種を使用する場合は、DOWNLOADボタンをFUNCボタンに読み替えてください。
ヤマハルーターでは以下の機種およびファームウェアで、外部メモリ機能をサポートします。
| 機種 | ファームウェア |
|---|---|
| RTX840 | すべてのリビジョン |
| RTX3510 | |
| RTX1300 | |
| RTX1220 | |
| RTX830 | |
| NVR510 | |
| NVR700W | |
| RTX1210 | |
| RTX5000 | |
| RTX3500 | |
| FWX120 | |
| RTX810 | |
| NVR500 | |
| RTX1200 | |
| SRT100 | |
| RT58i | |
| YSL-V810 |
外部メモリボタンとDOWNLOADボタンを同時に3秒間押し続けると、外部メモリ内に保存されているファームウェアファイル、および設定ファイルをルーターの内蔵フラッシュROMへコピーすることができます。コピーは設定ファイル、ファームウェアファイルの順に行われ、成功するとアラームが鳴り、自動的に再起動します。
外部メモリ起動機能のある機種では、起動時に外部メモリが接続されていると、外部メモリに格納されているファームウェアファイルや設定ファイルで動作します。起動時のPOWERランプが点滅している間に外部メモリを抜けば、外部メモリは認識されずに内蔵フラッシュROMのファームウェアファイルと設定ファイルで動作します。POWERランプが点滅する約10秒間はまだ外部メモリを認識していませんので、外部メモリを抜く前に外部メモリボタンを押す必要はありません。
あるいは、external-memory boot permit offコマンドで、外部メモリから起動させないように設定しておくこともできます。
外部メモリのファイルで動作している時には、ファームウェアのバージョンアップ先や設定内容の保存先が外部メモリのファイルになります。
外部メモリ起動機能のない機種では、内蔵フラッシュROMのファームウェアファイルと設定ファイルで動作します。
この操作でコピーする各ファイルは、Rev.10.01以降のファームウェアの場合は、external-memory config filename コマンドとexternal-memory exec filename コマンド、それ以外のファームウェアの場合は、usbhost config filename コマンドとusbhost exec filename コマンドで指定することができます。
工場出荷状態では外部メモリ内の'config.txt'と'機種名.bin'という名前のファイルが、それぞれ設定ファイルとファームウェアファイルとしてルーターの内蔵フラッシュROMにコピーされます。例えばRTX1200の場合、ファームウェアファイルは'rtx1200.bin'という名前になります。
(Rev.10.01系以降の場合) # external-memory config filename sd1:rt_config.txt 0 (Rev.10.00系以前の場合) # usbhost config filename usb1:rt_config.txt 0
(Rev.10.01系以降の場合) # external-memory exec filename sd1:rt_firmware.bin 0 (Rev.10.00系以前の場合) # usbhost exec filename usb1:rt_firmware.bin 0
Rev.10.01以降の場合、設定ファイルとファームウェアファイルがルートディレクトリ以外に置かれている場合でも、自動検索してそれらを見つけることができます。詳しくは外部メモリの利用の資料をご参照ください。
# external-memory config filename sd1:rt_config.txt 0
# external-memory config filename sd1:/rt_config.txt 0
指定した設定ファイルとファームウェアファイルがどちらも存在しない状態でボタン操作を行った場合、コピー動作としては何もせず、アラームが鳴ります。
external-memory syslog filename コマンドあるいはusbhost syslog filename コマンドで、外部メモリに書き込むSYSLOGファイル名を設定します。このコマンドが設定されていないとSYSLOGメッセージの書き込みは行われません。
(Rev.10.01系以降の場合) # external-memory syslog filename usb1:rt_syslog.log (Rev.10.00系以前の場合) # usbhost syslog filename usb1:rt_syslog.log
# external-memory syslog filename sd1:rt_syslog.log
# external-memory syslog filename sd1:rt_syslog.log limit=100 backup=30
なお、外部メモリ内のファイルへの書き込み時には、必要に応じてバックアップファイルが作成されます。バックアップファイルに関しては「バックアップファイル方式」を参照してください。
copy config コマンドで、設定ファイルをルーターの内蔵フラッシュROMから外部メモリへ書き込む、もしくはその逆の操作を行うことができます。
# copy config usb1:rt_config1.txt 0
# copy config 0 sd1:rt_config2.txt
copy exec コマンドでは、外部メモリ内のファームウェアファイルをルーターの内蔵フラッシュROMにコピーすることができます。
# copy exec usb1:rt_firmware.bin 0
なお、copy config およびcopy exec コマンドで内蔵フラッシュROMにコピーした内容は、そのままでは実際の動作に反映されません。コピーした内容を反映させるには、コマンド実行後にルーターを再起動する必要があります。
statisticsコマンドで統計情報を取得したいものを選んでonにして、external-memory statistics filename prefixコマンドあるいはusbhost statistics filename prefixコマンドで外部メモリに出力するファイル名を設定します。これらのコマンドが設定されていないと統計情報の出力は行われません。
詳細はコマンドリファレンスを参照してください。
SYSLOGのバックアップファイルの保存方式について説明します。なお、機種、ファームウェアの違いにより、若干動作が異なっていますので、注意してください。
SYSLOGメッセージを外部メモリ内へ保存する時、一連の処理の中で2種類のファイルを使用します。external-memory syslog filename コマンドで指定する、新規SYSLOGメッセージを書き込むためのファイル (以下、mainファイル) と、mainファイルのサイズが本コマンドで指定された上限値、もしくは自動計算によって設定された上限値に達した際の退避先となるファイル (以下、backupファイル) です。
新たに追加するSYSLOGメッセージは常にmainファイルに書き込まれます(下図1)。 ここで、mainファイルのサイズが、external-memory syslog filename コマンドで指定された上限値、もしくは空き容量から自動計算によって設定された上限値に達すると、その時点でmainファイルは一旦閉じられ、mainファイルをbackupファイル名に変更して退避させます(下図2)。そしてmainファイル名で新規にファイルをオープンし、書き込みを再開します(下図3)。 再び、mainファイルのサイズが上限値に達すると、同様にbackupファイルに退避させます。このとき、external-memory syslog filename コマンドで指定された backupファイル数の上限値に達した場合や外部メモリに空き容量がない場合には、backupファイル名に付加された日時データ("_yyyymmdd_hhmmss" 形式で表される文字列)の最も古いbackupファイルが削除されます(下図4)。
1. 新たなSYSLOGメッセージは常にmainファイルに書き込まれる
+-------------+
| 〜〜〜〜〜 |
| 〜〜〜 |
| 〜〜〜〜 |
| 〜〜〜〜〜 |
| 〜〜〜I |
| |
| |
+-------------+
mainファイル
2. mainファイルのサイズが上限値に達したらmainファイルをbackupファイルとして退避
+- - - - - - -+ +-------------+
〜〜〜〜〜 | | 〜〜〜〜〜 |
| 〜〜〜 | 〜〜〜 |
〜〜〜〜 | rename | 〜〜〜〜 |
| 〜〜〜〜〜 ======> | 〜〜〜〜〜 |
〜〜〜〜 | | 〜〜〜〜 |
| 〜〜〜 | 〜〜〜 |
〜〜〜〜〜 | | 〜〜〜〜〜 |
+ - - - - - - + +-------------+
mainファイル backupファイル
3. mainファイル名で新規ファイルをオープンして書き込み再開
+-------------+ +-------------+
| 〜〜I | | 〜〜〜〜〜 |
| | | 〜〜〜 |
| | | 〜〜〜〜 |
| | | 〜〜〜〜〜 |
| | | 〜〜〜〜 |
| | | 〜〜〜 |
| | | 〜〜〜〜〜 |
+-------------+ +-------------+
mainファイル backupファイル
4. 再び、mainファイルのサイズが上限値に達したらmainファイルをbackupファイルとして退避
条件次第で最も古いファイルを削除
+-------------+ +-------------+ +-------------+ +-------------+ +- - - - - - -+
| 〜〜〜〜〜 | | 〜〜〜〜〜 | | 〜〜〜〜〜 | | 〜〜〜〜〜 | | |
| 〜〜〜 | | 〜〜〜 | | 〜〜〜 | | 〜〜〜 | | |
| 〜〜〜〜 | rename | 〜〜〜〜 | | 〜〜〜〜 | | 〜〜〜〜 | delete | |
| 〜〜〜〜〜 | ======> | 〜〜〜〜〜 | | 〜〜〜〜〜 | | 〜〜〜〜〜 | ======> | |
| 〜〜〜〜 | | 〜〜〜〜 | | 〜〜〜〜 | | 〜〜〜〜 | | |
| 〜〜〜 | | 〜〜〜 | | 〜〜〜 | | 〜〜〜 | | |
| 〜〜〜〜〜 | | 〜〜〜〜〜 | | 〜〜〜〜〜 | | 〜〜〜〜〜 | | |
+-------------+ +-------------+ +-------------+ +-------------+ +- - - - - - -+
mainファイル backupファイル backupファイル backupファイル
20110103_000000 20110102_000000 20110101_000000
5. mainファイル名で新規ファイルをオープンして書き込み再開
以降、項番2〜4を繰り返す
このとき作成されるbackupファイル名は、mainファイル名の後に退避動作を行った日時を表す "_yyyymmdd_hhmmss" 形式の文字列を付加したものとなります。
以下に "_yyyymmdd_hhmmss" の文字列の意味を示します。
| yyyy ... | 西暦 (4 桁) |
| mm ... | 月 (2 桁) |
| dd ... | 日 (2 桁) |
| hh ... | 時 (2 桁) |
| mm ... | 分 (2 桁) |
| ss ... | 秒 (2 桁) |
外部メモリに十分な空き容量がある場合には、external-memory syslog filename コマンドで指定されたファイルサイズがmainファイルの上限サイズとなり、そのサイズのbackupファイルが指定されたファイル数分保存されます。しかし、十分な空き容量がない場合には、保存されるbackupファイルは、本コマンドで指定されたファイルサイズやbackupファイル数と異なることに注意してください。
また、必要に応じて、rotate external-memory syslog コマンドを実行することで、ファイルサイズに関係なく退避することができます。このとき、既に同名のbackupファイルが存在する場合には、退避は実行されません。
なお、mainファイルの上限サイズの自動計算については次項「SYSLOGファイルサイズの自動計算」を参照してください。
SYSLOGメッセージを外部メモリ内へ保存する時、一連の処理の中で2種類のファイルを使用します。external-memory syslog filename コマンドあるいはusbhost syslog filename コマンドで指定する、新規SYSLOGメッセージを書き込むためのファイル(以下、mainファイル)と、mainファイルのサイズが自動計算によって設定された上限値に達した際の退避先となるファイル(以下、backupファイル)です。
新たに追加するSYSLOGメッセージは常にmainファイルに書き込まれます(下図1)。ここで、mainファイルのサイズが自動計算によって設定された上限値に達すると、その時点でmainファイルは一旦閉じられ、mainファイルをbackupファイル名に変更して退避させます(下図2)。そしてmainファイル名で新規にファイルをオープンし、書き込みを再開します(下図3)。
1. 新たなSYSLOGメッセージは常にmainファイルに書き込まれる
+-------------+
| 〜〜〜〜〜 |
| 〜〜〜 |
| 〜〜〜〜 |
| 〜〜〜〜〜 |
| 〜〜〜I |
| |
| |
+-------------+
mainファイル
2. mainファイルのサイズが上限値に達したらmainファイルをbackupファイルとして退避
+- - - - - - -+ +-------------+
〜〜〜〜〜 | | 〜〜〜〜〜 |
| 〜〜〜 | 〜〜〜 |
〜〜〜〜 | rename | 〜〜〜〜 |
| 〜〜〜〜〜 ======> | 〜〜〜〜〜 |
〜〜〜〜 | | 〜〜〜〜 |
| 〜〜〜 | 〜〜〜 |
〜〜〜〜〜 | | 〜〜〜〜〜 |
+ - - - - - - + +-------------+
mainファイル backupファイル
3. mainファイル名で新規ファイルをオープンして書き込み再開
+-------------+ +-------------+
| 〜〜I | | 〜〜〜〜〜 |
| | | 〜〜〜 |
| | | 〜〜〜〜 |
| | | 〜〜〜〜〜 |
| | | 〜〜〜〜 |
| | | 〜〜〜 |
| | | 〜〜〜〜〜 |
+-------------+ +-------------+
mainファイル backupファイル
このとき作成されるbackupファイル名は以下の規則に従って決定されます。
尚、名前の重複を避けるため、mainファイル名に'.bak'拡張子を含む名前を指定することはできません。
退避動作を行う時点でbackupファイルが既に存在している場合、既存のbackupファイルの内容は消去されるので注意してください。また、mainファイルの上限サイズの自動計算については次項「SYSLOGファイルサイズの自動計算」を参照してください。
外部メモリにSYSLOGメッセージを出力する際、ルーターは外部メモリの空き領域の範囲内でできるだけ多くのメッセージを残すように動作します。具体的には、SYSLOGメッセージの書き込みを開始する前に外部メモリの空き領域を調べ、その領域を各用途向けに以下のような割合で分配します。このとき、mainファイル用、およびbackupファイル用として割り当てられた範囲内でSYSLOGメッセージを書き込みます。
+-------------------+ ----
| config保存用 | ∧
| (注) |
+-------------------+
| | 外
| | 部
| mainファイル用 | メ
| | モ
| | リ
+-------------------+ 空
| | き
| | 領
| backupファイル用 | 域
| |
| | V
+-------------------+ ----
(注)統計情報の保存機能を有する機種では別途、統計情報ファイル保存用の領域が割り当てられる。
mainファイル、またはbackupファイルが既に存在する場合は、それらのファイル領域も空き領域の一部として計算されます。
上図において、外部メモリの空き容量をEn、config保存用の領域をCn、mainファイル用の領域をMn、またbackupファイル用の領域をBnとすると、各領域のサイズはおよそ以下のような計算で求められます。
Cn: 1MB、もしくはEn/10のうち、どちらか大きい方。但し、En/10の上限は100MB
Bn: (En - Cn)/2
Mn: En - Cn - Bn
※実際に設定される値は上記計算値よりも若干小さくなる場合があります
また書き込み途中に、外部メモリ内の空き容量の変化によりmainファイルに上限サイズまで書き込めなかった場合は、その時点でのmainファイルをbackupファイルとして退避させ、再び上述の方法で各使用領域を計算します。
本機能の動作状態の確認には、show status external-memory コマンドやshow status usbhost コマンドを使用します。以下に、コマンド入力時の表示例を示します。
(Rev.10.01系以降の場合)
# show status external-memory ホストコントローラ: 動作中 ...1 SYSLOG設定 ...2 書き込み先ファイル名: usb1:rt_syslog.txt [書き込み可] 退避先ファイル名: usb1:rt_syslog.bak 最大ファイルサイズ: 925859840 バイト 書き込みバッファ: OK 統計情報設定 ...(注) 書き込み先ファイル名: [設定されていません] ...(注) SYSLOG統計 書き込み回数: 16 (TIMER:16, FULL:0) 廃棄回数: 0 (FULL:0) 廃棄行数: 0 ファイル操作統計 ...(注) 記録中止: 0 オープン失敗: 0 退避回数: 0 退避失敗: 0 (DELETE:0, RENAME:0, CLOSE:0) 書き込みエラー: 0 再書き込みエラー: 0 usb1 給電: ON ...3 接続中のデバイス: ...4 デバイス名: 0xXXXX <USB_DEVICE_01> ベンダー名: 0xYYYY <USB_VENDOR_01> 最大転送速度: 480Mbps(High speed) 記憶容量: 2015200 KB MASS Storage Class転送統計 タイムアウト: 0 ストール: 0 キャンセル: 0 I/Oエラー: 0 その他エラー: 0 sd1 給電: ON 接続中のデバイス: 接続されていません |
(注) 統計情報機能がない機種では、この行は表示されません。
(Rev.10.00系以前の場合)
# show status usbhost
USBホストコントローラ: 動作中 ...1
USBバスへの給電: ON ...2
接続中のUSBデバイス: ...3
デバイス名: 0xXXXX <USB_DEVICE_01>
ベンダー名: 0xYYYY <USB_VENDOR_01>
最大転送速度: 480Mbps(High speed)
記憶容量: 31708 KB
SYSLOG設定 ...4
書き込み先ファイル名: usb1:rt_syslog.log [書き込み可]
退避先ファイル名: usb1:rt_syslog.bak
最大ファイルサイズ: 62046208 バイト
ボタン操作設定 ...5
設定ファイルのコピー
コピー元ファイル名: usb1:rt_config.txt
コピー先ファイル名: 0(internal)
実行形式ファームウェアファイルのコピー
コピー元ファイル名 usb1:rt58i.bin
コピー先ファイル名 0(internal)
|