JP6959153B2 - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP6959153B2
JP6959153B2 JP2018007617A JP2018007617A JP6959153B2 JP 6959153 B2 JP6959153 B2 JP 6959153B2 JP 2018007617 A JP2018007617 A JP 2018007617A JP 2018007617 A JP2018007617 A JP 2018007617A JP 6959153 B2 JP6959153 B2 JP 6959153B2
Authority
JP
Japan
Prior art keywords
recovery
farm
module
software
communication module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018007617A
Other languages
English (en)
Other versions
JP2019128608A (ja
Inventor
祥之 山田
修 宮川
繁幸 横内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PFU Ltd
Original Assignee
PFU Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PFU Ltd filed Critical PFU Ltd
Priority to JP2018007617A priority Critical patent/JP6959153B2/ja
Priority to US15/974,418 priority patent/US20190227865A1/en
Publication of JP2019128608A publication Critical patent/JP2019128608A/ja
Application granted granted Critical
Publication of JP6959153B2 publication Critical patent/JP6959153B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置、情報処理方法、及びプログラムに関するものである。
例えば、特許文献1には、応用ファームウェアの更新時における起動・初期化エラー情報を、メモリ内のエラー情報格納領域に格納しておき、応用ファームウェアを更新する都度、基本ファームウェアのみを優先的に起動・初期化した状態で前記エラー情報を参照し、前回更新時のエラー情報があればこれをクリアして応用ファームウェアの再更新を可能にするリカバリ方法が開示されている。
また、特許文献2には、複数のファームウェアを含む情報処理装置であって、前記複数のファームウェアのうち、何れかのファームウェアを用いて情報処理装置を起動する起動手段と、前記起動手段によって前記情報処理装置の起動に用いた前記ファームウェアとは異なるファームウェアを更新する更新手段と、前記ファームウェアの更新中にエラーが発生すると、現在起動しているファームウェアとは異なるファームウェアを用いて前記起動手段によって前記情報処理装置を再起動させ、前記更新手段によって再起動に用いたファームウェアとは異なるファームウェアを更新させる制御手段とを備える情報処理装置が開示されている。
また、特許文献3には、記録媒体に画像を形成する画像形成手段を備えた画像形成装置であって、当該画像形成装置を制御する制御手段が実行するソフトウェアを保存するソフトウェア保存手段と、前記制御手段に前記ソフトウェアのアップデートを実行させるアップデート用ソフトウェアと前記制御手段に前記ソフトウェアのアップデートに失敗した場合に当該画像形成装置を前記アップデートが可能な状態に復帰させる復帰処理を実行させる復帰用ソフトウェアとを含むアップデートソフトウェアを受信する受信手段と、前記アップデート用ソフトウェアを保存するアップデート用ソフトウェア保存手段と、前記復帰用ソフトウェアを保存する復帰用ソフトウェア保存手段と、前記復帰用ソフトウェアのバックアップ用の復帰用ソフトウェアバックアップ保存手段と、前記受信手段によって受信した前記アップデートソフトウェアの前記アップデート用ソフトウェアと前記復帰用ソフトウェアとを判別する判別手段と、前記判別手段によって判別された前記アップデート用ソフトウェアを前記アップデート用ソフトウェア保存手段に保存し、前記判別手段によって判別された前記復帰用ソフトウェアを前記復帰用ソフトウェア保存手段と前記復帰用ソフトウェアバックアップ保存手段にそれぞれ保存する保存制御手段とを有することを特徴とする画像形成装置が開示されている。
また、特許文献4には、通信手段として、論理層を有する通信プロトコルを用いる第1通信手段と、論理層を有しない通信プロトコルを用いる第2通信手段とを備え、第1及び第2検査手段の検査結果に基づき制御プログラムに異常が発見され、第1通信プログラムに異常が発見されなかった場合は、第1ダウンロード手段は、第1通信プログラムの動作に基づいて第1通信手段を介してホストコンピュータから制御プログラムをダウンロードし、第2ダウンロード手段は、制御プログラム及び第1通信プログラムの両方で異常が発見された場合は、第2通信プログラムの動作に基づいて第2通信手段を介してメンテナンスコンピュータから制御プログラム及び第1通信プログラムのうち少なくとも一方をダウンロードすることを特徴とする電子機器が開示されている。
特開2005−242446 特開2016−053839 特開2013−109450 特開2007−114883
格納領域の増大を抑制しながら、ソフトウェアの更新失敗に対するリカバリ機能を実現する情報処理装置を提供する。
本発明に係る情報処理装置は、複数のソフトウェアで共用される共通モジュールと、前記ソフトウェアそれぞれに固有の固有モジュールとを格納するプログラム格納部と、前記プログラム格納部から、指定されたソフトウェアに必要な共通モジュール及び固有モジュールを読み出すモジュール読出し部とを有する。
また、本発明に係る情報処理装置は、自身のリカバリ機能が含まれたソフトウェアを構成する複数のモジュールを格納するプログラム格納部と、前記プログラム格納部に格納されているモジュールのうち、異常がある異常モジュールを特定する異常特定部と、前記異常特定部により特定された異常モジュールに応じて、互いに異なるリカバリ手順で、リカバリ処理するリカバリ処理部とを有する。
好適には、前記情報処理装置は、スキャナ装置に内蔵されており、前記ソフトウェアは、前記スキャナ装置のファームウェアである。
好適には、前記複数のソフトウェアは、ソフトウェアのリカバリ機能を実現するソフトウェアと、リカバリ機能とは異なる機能を実現するソフトウェアとを含む。
好適には、前記プログラム格納部は、少なくとも、有線通信のモジュールと、無線通信のモジュールとを格納しており、前記リカバリ処理部は、前記異常特定部により、有線通信のモジュール及び無線通信のモジュールのいずれか一方が異常モジュールであると判断した場合に、他方のモジュールを用いて、リカバリ処理を実行する。
また、本発明に係る情報処理方法は、複数のソフトウェアで共用される共通モジュールと、前記ソフトウェアそれぞれに固有の固有モジュールとを既定のプログラム記録領域に書き込む書込みステップと、前記プログラム記録領域から、指定されたソフトウェアに必要な共通モジュール及び固有モジュールを読み出すモジュール読出しステップとを有する。
また、本発明に係る情報処理方法は、自身のリカバリ機能が含まれたソフトウェアを構成する複数のモジュールを、既定のプログラム記録領域に書き込む書込みステップと、前記プログラム記録領域に書き込まれたモジュールのうち、異常がある異常モジュールを特定する異常特定ステップと、前記異常特定ステップにより特定された異常モジュールに応じて、互いに異なるリカバリ手順で、リカバリ処理するリカバリ処理ステップとを有する。
また、本発明に係るプログラムは、複数のソフトウェアで共用される共通モジュールと、前記ソフトウェアそれぞれに固有の固有モジュールとを既定のプログラム記録領域に書き込む書込みステップと、前記プログラム記録領域から、指定されたソフトウェアに必要な共通モジュール及び固有モジュールを読み出すモジュール読出しステップとをコンピュータに実行させる。
また、本発明に係るプログラムは、自身のリカバリ機能が含まれたソフトウェアを構成する複数のモジュールを、既定のプログラム記録領域に書き込む書込みステップと、前記プログラム記録領域に書き込まれたモジュールのうち、異常がある異常モジュールを特定する異常特定ステップと、前記異常特定ステップにより特定された異常モジュールに応じて、互いに異なるリカバリ手順で、リカバリ処理するリカバリ処理ステップとをコンピュータに実行させる。
格納領域の増大を抑制しながら、ソフトウェアの更新失敗に対するリカバリ機能を実現する。
ファームウェアの更新を行う更新処理システム1の全体構成を例示する図である。 スキャナ装置300のハードウェア構成及びソフトウェア構成を例示する図である。 (A)は、ファームウェアのモジュール構成を例示する図であり、(B)は、フラッシュROM上のモジュールサイズと、メモリにロードされた際にモジュールサイズを説明する図である。 スキャナ装置300のファーム更新処理(S10)を説明するフローチャートである。 第1のCPU400(CPU#1)による処理(S20)を説明するフローチャートである。 第2のCPU402(CPU#2)による処理(S30)を説明するフローチャートである。 (A)は、正常状態におけるファーム更新処理の手順を例示する図であり、(B)は、異常ファームに対応するリカバリ処理を例示する図である。 (A)は、ケース1におけるリカバリ処理の手順を例示し、(B)は、ケース2におけるリカバリ処理の手順を例示する。 (A)は、ケース3におけるリカバリ処理の手順を例示し、(B)は、ケース4におけるリカバリ処理の手順を例示する。 異常モジュールとリカバリ処理の関係を説明する図である。
(背景と概要)
オペレーティングシステム搭載のスキャナ装置等では、機能拡張や障害修正のためのプログラム更新を行う機能を実装しており、USBなどの有線接続でのプログラム更新に加えて、Wi−Fiなどの無線接続によるプログラム更新も可能である。
しかしながら、無線接続によるプログラム更新は、外部環境の影響を受けやすく、データ転送中の通信切断により更新が失敗するリスクが、有線接続に比べて高い。
このため、無線接続によるプログラム更新が失敗した場合のリカバリ方法として、有線接続によるブートファームでの再実行に切換える方式が考えられる(比較例1)。
また、パーソナルコンピュータ無しでの運用を重視した場合、無線接続でのリカバリを行う必要があり、メインプログラムを2世代分保持する仕組みとすることも考えられる(比較例2)。この場合、プログラム更新は、版数の古い方または、異常検出した方のプログラムを対象に更新処理を実施することとし、世代切り替えも更新処理が正常に完了した後に実施することで、失敗が複数回発生してもプログラム更新を可能とした。
加えて、タッチパネル搭載によるUI(ユーザインタフェース)の充実などにより、プログラムサイズが従来に比べ肥大化している。このプログラムサイズの肥大化は、プログラムを格納するフラッシュROMなどの格納領域の容量を増加させるとともに、プログラムのロード時間が長くなることで、装置が使用可能状態になるまでの時間が延びることになる。
なお、装置起動時間の短縮方法として、ハイバネーション機能(動作中のメモリ状態をまるごと退避・復元する仕組み)を利用することもできるが、これは通常プログラムとは別の専用の格納域が新たに必要となる。
このように、プログラムを格納するフラッシュROMなどの容量が増大している。
そこで、本実施形態では、複数のソフトウェアで共用される共通モジュールと、各ソフトウェアに固有の固有モジュールとでソフトウェアを構成することにより、プログラム記録領域の必要容量を抑制する。
また、本実施形態では、異常があるモジュール(以下、異常モジュール)に応じて、互いに異なるリカバリ方法を準備することにより、比較例2のように、プログラムを2世代分保持することなく、ファームウェアの更新失敗のリカバリを実現する。
(実施形態)
図1は、ファームウェアの更新を行う更新処理システム1の全体構成を例示する図である。なお、本実施形態では、ソフトウェアの更新処理の一例として、スキャナ装置300のファームウェアを更新する場合を具体例として説明する。
図1に例示するように、更新処理システム1は、スキャナ装置300と、無線ルータ802と、コンピュータ804と、更新配布サーバ9とを有する。
更新配布サーバ9は、ソフトウェアを更新するための更新ファイルを配布するサーバ装置である。本例の更新配布サーバ9は、ネットワーク800に接続しており、スキャナ装置300のファームウェアを更新するための更新ファイルを配布する。
スキャナ装置300は、無線ルータ802を介して、ネットワーク800に無線通信で接続し、更新配布サーバ9から更新ファイルを受信する。また、スキャナ装置300は、ネットワーク800に接続したコンピュータ804に対して、USBケーブルなどの通信ケーブル806を介して有線接続し、コンピュータ804を介して、更新配布サーバ9から更新ファイルを受信する。
ネットワーク800は、インターネットでもよいし、ローカルエリアネットワーク(LAN)であってもよい。
図2は、スキャナ装置300のハードウェア構成及びソフトウェア構成を例示する図である。本図のハードウェア構成は、スキャナ装置300に内蔵された情報処理装置であり、本発明に係る情報処理装置の一例である。
図2に例示するように、スキャナ装置300は、第1のCPU400(CPU#1)と、第2のCPU402(CPU#2)と、第1のフラッシュROM404(フラッシュROM#1)と、第2のフラッシュROM406(フラッシュROM#2)と、メモリ408とを有し、これらの構成がバス410を介して互いに接続している。
第1のCPU400(CPU#1)及び第2のCPU402(CPU#2)は、例えば、中央演算装置である。本例では、第1のCPU400(CPU#1)は、スキャナ処理に割り当てられており、第2のCPU402(CPU#2)は、アプリ処理に割り当てられている。
第1のフラッシュROM404(フラッシュROM#1)及び第2のフラッシュROM406(フラッシュROM#2)は、不揮発性メモリであり、ファームウェアの格納領域として機能する。第2のフラッシュROM406は、第1のフラッシュROM404よりも、高価でアクセス速度が速いパラレルフラッシュROMであり、第2のフラッシュROM406に格納されている高速起動用メインファーム60のメモリロード時間を短縮し、起動時間の高速化が図られている。なお、第1のフラッシュROM404(フラッシュROM#1)及び第2のフラッシュROM406(フラッシュROM#2)は、単に「フラッシュROM」と総称されることがある。フラッシュROMは、本発明に係るプログラム格納部の一例である。
メモリ408は、例えば、揮発性メモリであり、主記憶装置として機能する。メモリ408には、スキャン処理で読み取られた画像データが格納されることに加えて、フラッシュROMからロードされたファームウェアが格納される。
図2に例示するように、第1のフラッシュROM404には、リカバリ専用メインファーム50、アプリ制御メインファーム52、アプリ制御ブートファーム54、スキャナ制御メインファーム56、及びスキャナ制御ブートファーム58を構成するモジュールが格納されており、第2のフラッシュROM406には、高速起動用メインファーム60を構成するモジュールが格納されている。なお、本実施形態では、リカバリ専用メインファーム50、アプリ制御メインファーム52、アプリ制御ブートファーム54、スキャナ制御メインファーム56、スキャナ制御ブートファーム58、及び、高速起動用メインファーム60は、ファームウェアと総称される場合がある。
本実施形態におけるファームウェアの更新処理とは、フラッシュROM上のファームウェアが書き換えられることであり、リカバリとは、フラッシュROM上でファームウェアが再書き込みされることである。
リカバリ専用メインファーム50は、Wi−Fiでリカバリする為に必要な最低限の機能だけに絞り、サイズを小さくしたリカバリ専用のファームウェアであり、Wi−Fiでのファームウェアの更新機能のみ実装している。
アプリ制御メインファーム52は、Wi−Fi機能及びタッチパネル搭載によるアプリ制御するためのメインファームウェアである。アプリ制御メインファーム52は、装置を停止している状態から起動され(コールドブート)、Wi−Fiドライバなど各種ドライバの初期化、Wi−Fiでのデータ転送やファームウェアの更新、タッチパネル搭載による動作モードの表示や設定などの機能を実現する。
アプリ制御ブートファーム54は、Wi−Fiやタッチパネル搭載によるアプリ制御を実現するためのブートファームである。アプリ制御ブートファーム54は、リカバリ専用メインファーム50、アプリ制御メインファーム52、及び、高速起動用メインファーム60のいずれかをメモリ408にロードし起動させる。
スキャナ制御メインファーム56は、スキャナ装置300を制御するためのメインファームであり、スキャナ装置300のモータ制御、及び、スキャンした画像データの取り込みなどの、スキャナ動作を実現させる。
スキャナ制御ブートファーム58は、スキャナ装置300を制御するためのブートファームである。具体的には、スキャナ制御ブートファーム58は、アプリ制御ブートファーム54及びスキャナ制御メインファーム56を、メモリ408にロードし起動させる。また、スキャナ制御ブートファーム58は、アプリ制御メインファーム52のチェックサムを実施する。
スキャナ制御ブートファーム58は、アプリ制御ブートファーム54に起動させるメインファームウェア(具体的には、リカバリ専用メインファーム50、又は、アプリ制御メインファーム52)を選択し、選択されたメインファームを起動させるための通知を行う。本例のスキャナ制御ブートファーム58は、アプリ制御メインファーム52が壊れていない場合に、アプリ制御メインファーム52を選択して起動させ、アプリ制御メインファーム52が壊れている場合に、リカバリ専用メインファーム50を選択し起動させる。
高速起動用メインファーム60は、Wi−Fiでスキャナ装置300を操作する為の高速起動用ファームであり、ハイバネーション機能を用いて起動し、動作中の状態に即時に復帰するため、アプリ制御メインファーム52よりも高速に起動することができる。
なお、メモリ408へのファームロードは、DMA転送を用いているが、高速DMA転送をリカバリ専用メインファーム50、アプリ制御メインファーム52及び高速起動用メインファーム60の転送に使用することで、CPU#2で動作するファームの起動時間の短縮を図る。
図3(A)は、ファームウェアのモジュール構成を例示する図であり、図3(B)は、フラッシュROM上のデータサイズと、メモリにロードされた際にデータサイズを説明する図である。
図3(A)に例示するように、アプリ制御メインファーム52は、共通モジュールA500と、共通モジュールB502とで構成されている。共通モジュールA500は、アプリ制御メインファーム52及びリカバリ専用メインファーム50で共用されるプログラムモジュールである。また、共通モジュールB502は、アプリ制御メインファーム52及び高速起動用メインファーム60で共用されるプログラムモジュールである。
リカバリ専用メインファーム50は、共通モジュールAと、固有モジュールA504とで構成されている。固有モジュールA504は、リカバリ専用メインファームに固有のプログラムモジュールである。
高速起動用メインファーム60は、固有モジュールB506と、共通モジュールB502とで構成されている。固有モジュールB506は、高速起動用メインファーム60に固有のプログラムモジュールである。
アプリ制御ブートファーム54は、アプリ制御メインファーム52、リカバリ専用メインファーム50、又は、高速起動用メインファーム60をメモリ408にロードする際に、必要な共通モジュール及び固有モジュールをフラッシュROMから読み出す。このときのアプリ制御ブートファーム54は、本発明に係るモジュール読出し部の一例である。
図3(B)に例示するように、フラッシュROMから読み出された共通モジュール及び固有モジュールは、メモリ408にロードされ、これらを組み合わせて、アプリ制御メインファーム52、リカバリ専用メインファーム50、又は、高速起動用メインファーム60として動作する。
共通モジュールA500は、例えば、Linux(登録商標)カーネルであり、4MBである。共通モジュールB502は、例えば、全機能のRootFSであり、54MBである。固有モジュールA504は、例えば、リカバリのみのRootFSであり、10MBである。固有モジュールB506は、例えば、Linux(登録商標)カーネルと、高速起動のみのRootFSであり、21MBである。
アプリ制御メインファーム52、リカバリ専用メインファーム50、及び、高速起動用メインファーム60がメモリ408にロードされた場合には、合計で147MBとなるが、共通モジュールと固有モジュールに整理することにより、フラッシュROM上では89MBに抑えることができる。
図4は、スキャナ装置300のファーム更新処理(S10)を説明するフローチャートである。
図4に例示するように、ステップ100(S100)において、スキャナ装置300は、無線ルータ802を経由して、更新配布サーバ9にアクセスして、ファームウェアの更新処理を実行する。更新されるファームウェアは、スキャナ制御ブートファーム58を除く全ファームウェアである。
ステップ105(S105)において、スキャナ装置300は、装置を再起動させる。
ステップ110(S110)において、スキャナ装置300のスキャナ制御ブートファーム58は、フラッシュROMの高速起動用メインファーム60のサムチェックを行い、高速起動用メインファーム60が正常であるか否かを判断する。このときのスキャナ制御ブートファーム58は、本発明に係る異常特定部の一例である。
スキャナ装置300は、高速起動用メインファーム60が正常であると判断された場合に、S115の処理に移行し、高速起動用メインファーム60が壊れていると判断された場合に、S120の処理に移行する。
ステップ115(S115)において、アプリ制御ブートファーム54は、高速起動用メインファーム60をフラッシュROMからメモリ408にロードして、処理を終了する。
ステップ120(S120)において、スキャナ制御ブートファーム58は、フラッシュROMのアプリ制御メインファーム52のサムチェックを行い、アプリ制御メインファーム52が正常であるか否かを判断する。
スキャナ装置300は、アプリ制御メインファーム52が正常であると判断された場合に、S125の処理に移行し、アプリ制御メインファーム52が壊れていると判断された場合に、S130の処理に移行する。
ステップ125(S125)において、アプリ制御ブートファーム54は、アプリ制御メインファーム52をフラッシュROMからメモリ408にロードして、S100の処理に戻る。
ステップ130(S130)において、スキャナ制御ブートファーム58は、フラッシュROMのリカバリ専用メインファーム50のサムチェックを行い、リカバリ専用メインファーム50が正常であるか否かを判断する。
スキャナ装置300は、リカバリ専用メインファーム50が正常であると判断された場合に、S135の処理に移行し、リカバリ専用メインファーム50が壊れていると判断された場合に、S140の処理に移行する。
ステップ135(S135)において、アプリ制御ブートファーム54は、リカバリ専用メインファーム50をフラッシュROMからメモリ408にロードして、S100の処理に戻る。
ステップ140(S140)において、スキャナ制御ブートファーム58は、USB接続でのファーム更新処理を実行し、S105の処理に戻る。
図5は、第1のCPU400(CPU#1)による処理(S20)を説明するフローチャートである。
図5に示すように、ステップ200(S200)において、スキャナ制御ブートファーム58は、各ファームウェアが起動可能であるか否かを確認する。
ステップ205(S205)において、スキャナ制御ブートファーム58は、スキャナ制御メインファーム56及びアプリ制御ブートファーム54が起動可能であると判断した場合に、S215の処理に移行し、これ以外の場合に、S210の処理に移行する。
ステップ210(S210)において、スキャナ制御ブートファーム58は、USB接続によるファームウェアの更新待ち状態で待機する。
ステップ215(S215)において、スキャナ制御ブートファーム58は、スキャナ制御メインファーム56と、アプリ制御ブートファーム54とをメモリ408にロードする。
ステップ220(S220)において、スキャナ制御ブートファーム58は、高速起動用メインファーム60、アプリ制御メインファーム52、又はリカバリ専用メインファーム50の中から、起動させるファームを選択し、選択結果をアプリ制御ブートファーム54に通知する。
ステップ225(S225)において、スキャナ制御ブートファーム58は、ロードしたアプリ制御ブートファーム54を起動させる。
ステップ230(S230)において、スキャナ制御ブートファーム58は、ロードしたスキャナ制御メインファーム56を起動させる。
図6は、第2のCPU402(CPU#2)による処理(S30)を説明するフローチャートである。
図6に示すように、ステップ300(S300)において、アプリ制御ブートファーム54は、スキャナ制御ブートファーム58からの通知に応じて、高速起動用メインファーム60、アプリ制御メインファーム52、又はリカバリ専用メインファーム50をメモリ408にロードする。
ステップ305(S305)において、アプリ制御ブートファーム54は、ロードした高速起動用メインファーム60、アプリ制御メインファーム52、又はリカバリ専用メインファーム50を起動する。
図7(A)は、正常状態におけるファーム更新処理の手順を例示する図であり、図7(B)は、異常ファームに対応するリカバリ処理を例示する図である。
図8(A)は、ケース1におけるリカバリ処理の手順を例示し、図8(B)は、ケース2におけるリカバリ処理の手順を例示する。
図9(A)は、ケース3におけるリカバリ処理の手順を例示し、図9(B)は、ケース4におけるリカバリ処理の手順を例示する。
正常状態においては、図7(A)に例示するように、スキャナ制御ブートファーム58が、スキャナ制御メインファーム56をメモリ408にロードして起動させ、アプリ制御ブートファーム54をメモリ408にロードして起動させる。これに応じて、アプリ制御ブートファーム54は、高速起動用メインファーム60をメモリ408にロードして起動させる。
アプリ制御メインファーム52及び高速起動用メインファーム60、あるいは、スキャナ制御メインファーム56が異常ファームである場合(ケース1)に、図8(A)に例示するように、スキャナ制御ブートファーム58は、アプリ制御ブートファーム54をメモリ408にロードして起動させ、アプリ制御ブートファーム54が、リカバリ専用メインファーム50をメモリ408にロードしてリカバリ処理を実行させる。
スキャナ制御メインファーム56及びリカバリ専用メインファーム50、あるいは、アプリ制御ブートファーム54が異常ファームである場合(ケース2)に、図8(B)に例示するように、スキャナ制御ブートファーム58は、USB接続でのリカバリ処理を実行する。
リカバリ専用メインファーム50又はアプリ制御メインファーム52が異常ファームである場合(ケース3)に、図9(A)に例示するように、スキャナ制御ブートファーム58は、スキャナ制御メインファーム56とアプリ制御ブートファーム54とをメモリ408にロードし、このアプリ制御ブートファーム54が高速起動用メインファーム60をメモリ408にロードする。スキャナ制御メインファーム56及び高速起動用メインファーム60が、Wi−Fiでのリカバリ処理を実行する。
高速起動用メインファーム60が異常ファームである場合(ケース4)に、図9(B)に例示するように、スキャナ制御ブートファーム58は、スキャナ制御メインファーム56とアプリ制御ブートファーム54とをメモリ408にロードし、このアプリ制御ブートファーム54がアプリ制御メインファーム52をメモリ408にロードする。スキャナ制御メインファーム及びアプリ制御メインファーム52が、Wi−Fiでのリカバリ処理を実行する。
このように、フラッシュROMには、互いに異なる方法でリカバリ処理を行う複数のファームウェアと、リカバリ処理以外の処理を行うファームウェアとが書き込まれている。
図10は、異常モジュールとリカバリ処理の関係を説明する図である。
本実施形態では、ファームウェアを、共通モジュールまたは固有モジュールの組合せで構成しているため、共通モジュールが壊れている場合には、2つ以上のファームウェアが異常ファームとなることもある。したがって、スキャナ制御ブートファーム58は、図10に例示するように、ファームウェアを構成するモジュールのうち、いずれのモジュールが異常であるかに応じて、リカバリ処理の方法を切り替えているともいえる。
以上説明したように、本実施形態のスキャナ装置300は、いずれのファームウェアに異常があるかに応じて、リカバリに用いるファームウェアを切り替える。例えば、アプリ制御ブートファーム54が異常ファームである場合には、Wi−Fi機能を有するアプリ制御メインファーム52、リカバリ専用メインファーム50、及び高速起動用メインファーム60をロードできないため、スキャナ制御ブートファーム58が、USB接続による更新を実行する。
また、スキャナ装置300は、共通モジュールまたは固有モジュールの組合せで複数のファームウェアを構成することによって、これらのファームウェアを格納するフラッシュROMの容量を抑制することができる。
1 更新処理システム
300 スキャナ装置
50 リカバリ専用メインファーム
52 アプリ制御メインファーム
54 アプリ制御ブートファーム
56 スキャナ制御メインファーム
58 スキャナ制御ブートファーム
60 高速起動用メインファーム

Claims (5)

  1. 自身のリカバリ機能が含まれたソフトウェアを構成する複数のモジュールを格納するプログラム格納部と、
    前記プログラム格納部に格納されているモジュールのうち、異常がある異常モジュールを特定する異常特定部と、
    前記異常特定部により特定された異常モジュールに応じて、互いに異なるリカバリ手順で、リカバリ処理するリカバリ処理部と
    を有し、
    前記プログラム格納部は、少なくとも、有線通信のモジュールと、無線通信のモジュールとを格納しており、
    前記リカバリ処理部は、前記異常特定部により、有線通信のモジュール及び無線通信のモジュールのいずれか一方が異常モジュールであると判断した場合に、他方のモジュールを用いて、リカバリ処理を実行する
    情報処理装置。
  2. 前記情報処理装置は、スキャナ装置に内蔵されており、
    前記ソフトウェアは、前記スキャナ装置のファームウェアである
    請求項に記載の情報処理装置。
  3. 前記複数のソフトウェアは、ソフトウェアのリカバリ機能を実現するソフトウェアと、リカバリ機能とは異なる機能を実現するソフトウェアとを含む
    請求項1に記載の情報処理装置。
  4. 自身のリカバリ機能が含まれたソフトウェアを構成する複数のモジュールを、既定のプログラム記録領域に書き込む書込みステップと、
    前記プログラム記録領域に書き込まれたモジュールのうち、異常がある異常モジュールを特定する異常特定ステップと、
    前記異常特定ステップにより特定された異常モジュールに応じて、互いに異なるリカバリ手順で、リカバリ処理するリカバリ処理ステップと
    を有し、
    前記プログラム記録領域には、少なくとも、有線通信のモジュールと、無線通信のモジュールとが格納されており、
    前記リカバリ処理ステップは、前記異常特定ステップにより、有線通信のモジュール及び無線通信のモジュールのいずれか一方が異常モジュールであると判断した場合に、他方のモジュールを用いて、リカバリ処理を実行する
    情報処理方法。
  5. 自身のリカバリ機能が含まれたソフトウェアを構成する複数のモジュールを、既定のプログラム記録領域に書き込む書込みステップと、
    前記プログラム記録領域に書き込まれたモジュールのうち、異常がある異常モジュールを特定する異常特定ステップと、
    前記異常特定ステップにより特定された異常モジュールに応じて、互いに異なるリカバリ手順で、リカバリ処理するリカバリ処理ステップと
    をコンピュータに実行させ
    前記プログラム記録領域には、少なくとも、有線通信のモジュールと、無線通信のモジュールとが格納されており、
    前記リカバリ処理ステップは、前記異常特定ステップにより、有線通信のモジュール及び無線通信のモジュールのいずれか一方が異常モジュールであると判断した場合に、他方のモジュールを用いて、リカバリ処理を実行する
    プログラム。
JP2018007617A 2018-01-19 2018-01-19 情報処理装置、情報処理方法、及びプログラム Active JP6959153B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018007617A JP6959153B2 (ja) 2018-01-19 2018-01-19 情報処理装置、情報処理方法、及びプログラム
US15/974,418 US20190227865A1 (en) 2018-01-19 2018-05-08 Information processing device and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018007617A JP6959153B2 (ja) 2018-01-19 2018-01-19 情報処理装置、情報処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019128608A JP2019128608A (ja) 2019-08-01
JP6959153B2 true JP6959153B2 (ja) 2021-11-02

Family

ID=67298632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018007617A Active JP6959153B2 (ja) 2018-01-19 2018-01-19 情報処理装置、情報処理方法、及びプログラム

Country Status (2)

Country Link
US (1) US20190227865A1 (ja)
JP (1) JP6959153B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7053979B2 (ja) * 2018-06-29 2022-04-13 株式会社Pfu 情報処理装置、情報処理方法、及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622246B1 (en) * 1999-11-12 2003-09-16 Xerox Corporation Method and apparatus for booting and upgrading firmware
JP4848734B2 (ja) * 2005-10-18 2011-12-28 セイコーエプソン株式会社 電子機器
US20080235501A1 (en) * 2007-03-19 2008-09-25 James Ray Bailey Method For Detecting and Correcting Firmware Corruption
JP5191705B2 (ja) * 2007-08-09 2013-05-08 京セラドキュメントソリューションズ株式会社 保守管理システム、データベースサーバ、保守管理プログラムおよび保守管理方法
US8595716B2 (en) * 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
JP6226709B2 (ja) * 2013-11-15 2017-11-08 キヤノン株式会社 画像形成装置及びその制御方法、並びにプログラム
JP6351413B2 (ja) * 2014-07-15 2018-07-04 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
JP6073854B2 (ja) * 2014-12-26 2017-02-01 京セラドキュメントソリューションズ株式会社 電子機器及びファームウェア復旧プログラム

Also Published As

Publication number Publication date
JP2019128608A (ja) 2019-08-01
US20190227865A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
US9760461B2 (en) Electronic device and firmware recovery program that ensure recovery of firmware
US9507604B2 (en) Boot method and boot system
KR101959359B1 (ko) 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
JP7002358B2 (ja) 情報処理システム、情報処理装置、情報処理装置のbios更新方法、及び情報処理装置のbios更新プログラム
EP1873638A1 (en) Portable apparatus supporting multiple operating systems and supporting method therefor
US8812906B2 (en) Method for system recovery and apparatus supporting the same
JP2009266205A (ja) マルチ制御装置システムを修復する方法と装置
JP5665923B2 (ja) 基本入出力システムがアップデート可能な電子装置及びアップデート方法
US20150067317A1 (en) Device-less and system agnostic unified extensible firmware interface (uefi) driver
JP6600240B2 (ja) 情報処理装置、ファームウェア更新方法、およびプログラム
JP6959153B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JPWO2004081791A1 (ja) 仮想計算機システム、仮想計算機システムにおけるファームウェアアップデート方法
JP4013040B2 (ja) ダウンロード装置及びダウンロード方法
RU2600101C1 (ru) Управляющий модуль узла и способ обновления встроенного программного обеспечения для этого управляющего модуля
US20230132494A1 (en) Information processing apparatus, method of controlling the same, and storage medium
KR101850275B1 (ko) 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치
JP4791792B2 (ja) デジタルシグナルプロセッサシステムおよびそのブート方法。
TW201525862A (zh) 計算機系統與計算機系統啓動方法
US20170003955A1 (en) Method of Rewriting Printer Firmware, and Printer
JP6331505B2 (ja) 起動制御装置、起動制御方法、及び起動制御プログラム
JP2017107283A (ja) 初期化方法、配備サーバ、配備プログラム及び初期化プログラム
EP3159795B1 (en) Image forming apparatus that ensures operation while hdd is inoperative, and recording medium therefor
KR101845467B1 (ko) 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법 및 이를 수행하는 화상형성장치
JP2008217202A (ja) ディスクアレイ装置及びファームウェア更新方法
JP7491765B2 (ja) ファームウェア更新システムおよびファームウェア更新方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210927

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211007

R150 Certificate of patent or registration of utility model

Ref document number: 6959153

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150