Firmware package creation device, firmware package creation program and firmware update system

The firmware package creation device efficiently classifies and compresses firmware files to create a compatible package for multiple models, addressing storage challenges and simplifying firmware management across device models.

JP2025140689AActive Publication Date: 2025-09-29TOSHIBA TEC KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024040231
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-14
Publication Date
2025-09-29
Estimated Expiration
2044-03-14

AI Technical Summary

Technical Problem

Existing methods fail to efficiently create a firmware package compatible with multiple device models when firmware data is created individually for each model, leading to storage challenges and inefficiencies in managing and updating firmware.

Method used

A firmware package creation device that classifies firmware files into common and model-specific files, compresses them separately, and combines them into a single package, allowing for efficient management and update of firmware across multiple device models.

Benefits of technology

Enables the creation of a compact firmware package that is compatible with multiple models, reducing data storage requirements and simplifying firmware management by distinguishing between model-independent and model-dependent files.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025140689000001_ABST
    Figure 2025140689000001_ABST
Patent Text Reader

Abstract

To create a firmware package capable of corresponding to a plurality of models of devices.SOLUTION: A firmware package creation device classifies a plurality of files included in firmware data of each of a plurality of models into common files commonly used in all the models, and files for each model used in only a model targeted by the firmware data of each of the models, creates a first compression file by collectively compressing only the common files on the basis of the classification, creates a plurality of second compression files in which creation of the second compression files by collectively compressing only the files for each model is performed for all the firmware data of each of the plurality of models, for the firmware data of each of the plurality of models, and creates one firmware package by collectively compressing the first compression file and the plurality of second compression files.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] An embodiment of the present invention relates to a firmware package creation device, a firmware package creation program, and a firmware update system. [Background technology]

[0002] Devices of various models, such as multifunction peripherals (MFPs), copiers, and printers, are widely used. These devices store firmware, such as the Basic Input Output System (BIOS), which runs before the operating system when the device starts up. When this firmware needs to be updated due to a function upgrade or a malfunction, a service technician visits the customer's premises and manually updates the firmware.

[0003] Device firmware varies depending on the model. Therefore, firmware data for each model created by the device manufacturer or the like is stored on the manufacturer's management server or the like. A service technician downloads the necessary firmware data for each model from the management server or the like, stores it on a portable storage medium such as a USB (Universal Serial Bus) memory, and then visits the customer. Since a single customer does not necessarily use only one model of device, and a service technician may visit multiple customer locations at once, the service technician must store firmware data for multiple models on a storage medium. Depending on the size of the firmware data for each model, it may not be possible to store data for multiple models on a single storage medium.

[0004] Therefore, Patent Document 1 proposes a technique for distributing a firmware package that includes common firmware that is used in common by multiple device models and specific firmware that is unique to each of the multiple device models.

[0005] However, Patent Document 1 does not disclose any method for creating such a firmware package, so it is natural to assume that the creator of the firmware data will create the common firmware and the specific firmware separately.

[0006] On the other hand, there may be cases where a firmware data creator creates firmware data for multiple device models individually without distinguishing between common firmware and specific firmware. In such cases, the technology proposed in Patent Document 1 cannot be used. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] Japanese Patent Application Laid-Open No. 2015-79372 Summary of the Invention [Problem to be solved by the invention]

[0008] The problem that the present invention aims to solve is to provide a firmware package creation device, a firmware package creation method, and a firmware package creation program that are capable of creating a firmware package that is compatible with multiple device models, even if firmware data is created individually for each of the multiple device models. [Means for solving the problem]

[0009] A firmware package creation device according to one embodiment includes a processor and a storage device, and creates a firmware package containing multiple firmware data sets for multiple device models. The storage device stores multiple model-specific firmware data sets for multiple device models. The processor classifies, for each of the multiple model-specific firmware data sets, multiple files included in the model-specific firmware data sets into common files used in all models and model-specific files used only for the model for which the model-specific firmware data sets are targeted. Based on this classification, the processor creates a first compressed file by compressing only the common files from the multiple model-specific firmware data sets, and also creates a second compressed file by compressing only the model-specific files from each of the multiple model-specific firmware data sets. This process is repeated for all of the multiple model-specific firmware data sets, thereby creating multiple second compressed files. The processor then compresses the first compressed file and the multiple second compressed files together to create a single firmware package. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram illustrating an example of the configuration of a firmware updating system according to an embodiment. [Figure 2] FIG. 2 is a diagram for explaining an example of the configuration of a serviceman terminal as a firmware package creation device according to an embodiment included in the firmware update system. [Figure 3] FIG. 3 is a diagram illustrating an example of the configuration of an MFP as a device included in the firmware update system. [Figure 4] FIG. 4 is a sequence diagram for explaining the operation of the firmware updating system. [Figure 5] FIG. 5 is a diagram for explaining the relationship between the firmware data for each model and the firmware package for all models. [Figure 6]FIG. 6 is a diagram showing a first portion of a flowchart illustrating an example of a main procedure of information processing executed by a processor of a serviceman terminal. [Figure 7] FIG. 7 is a diagram showing a second part of a flowchart illustrating an example of a main procedure of information processing executed by a processor of a serviceman terminal. [Figure 8] FIG. 8 is a diagram showing a third part of a flowchart illustrating an example of a main procedure of information processing executed by the processor of the serviceman terminal. [Figure 9] FIG. 9 is a diagram illustrating an example of the record structure of a CSV file stored in a determination result storage unit included in the serviceman terminal. [Figure 10] FIG. 10 is a flowchart showing an example of a main procedure of information processing executed by a processor of the MFP. [Figure 11] FIG. 11 is a diagram showing a first portion of a flowchart illustrating an example of a main procedure of information processing executed by a processor of a serviceman terminal in the modified example. DETAILED DESCRIPTION OF THE INVENTION

[0011] Hereinafter, the embodiment will be described taking as an example a case where multiple types of devices are installed in a workplace as an MFP, but it goes without saying that the devices are not limited to such MFPs.

[0012] FIG. 1 is a diagram illustrating an example of the configuration of a firmware update system SYS according to an embodiment. The firmware update system SYS includes a management server 1, a serviceman terminal 2, a USB memory 3, and MFPs 4A, 4B, C, etc. In the following description, when there is no need to distinguish between the MFPs 4A, 4B, C, etc., they will be collectively referred to simply as MFPs 4. The serviceman terminal 2 is an example of a firmware package creation device according to an embodiment. In FIG. 1, the MFPs 4 include an MFP 4A of model A denoted as MFP-A, an MFP 4B of model B denoted as MFP-B, an MFP 4C of model C denoted as MFP-C, etc. However, the number of MFPs 4 may be any number. Furthermore, although FIG. 1 shows only one serviceman terminal 2, the firmware update system SYS may include multiple serviceman terminals 2. The firmware update system SYS may also include multiple management servers 1.

[0013] The management server 1 is a server configured on the cloud and operated by, for example, a manufacturer of MFPs 4. The management server 1 provides model-specific firmware data, which is firmware data for each of multiple models of MFPs 4 that are products of the manufacturer.

[0014] The serviceman terminal 2 is a personal computer or the like used by a serviceman. The serviceman terminal 2 communicates with the management server 1 to acquire model-specific firmware data for multiple desired models. The serviceman terminal 2 classifies the multiple model-specific firmware data into common files used in common across all models and model-specific files used only for the model for which each model-specific firmware data is targeted. Based on this classification, the serviceman terminal 2 then compresses only the common files to create a first compressed file, and compresses only the model-specific files for each of the multiple model-specific firmware data to create a second compressed file. This process is repeated for all of the multiple model-specific firmware data, thereby creating multiple second compressed files. The serviceman terminal 2 then compresses the first compressed file and the multiple second compressed files to create a single firmware package.

[0015] The USB memory 3 is an example of an external storage medium that is detachable from the serviceman terminal 2 and the MFP 4. A firmware package created by the serviceman terminal 2 is stored in this USB memory 3. A serviceman visits a customer who uses the MFP 4, bringing this USB memory 3 with him. The USB memory 3 is then connected to the MFP 4, which is the target of firmware data update.

[0016] The MFP 4 decompresses the firmware package stored in the connected USB memory 3 to obtain a first compressed file and multiple second compressed files. The MFP 4 decompresses the first compressed file to obtain a common file, and also decompresses the second compressed file corresponding to the device model from among the multiple second compressed files to obtain a model-specific file for that device. The MFP 4 then combines the common file and the model-specific file for that device to restore model-specific firmware data for that device and applies it to update the pre-stored firmware data.

[0017] 2 is a diagram illustrating an example of the configuration of the serviceman terminal 2. As shown in FIG. 2, the serviceman terminal 2 includes a processor 21, a main memory 22, an auxiliary storage device 23, an input device 24, an output device 25, a communication interface 26, a USB interface 27, and a system transmission path 28. The system transmission path 28 includes an address bus, a data bus, a control signal line, etc. The system transmission path 28 connects the processor 21 to each of the other components directly or via a signal input / output circuit, and transmits data signals exchanged between them. The processor 21, the main memory 22, and the auxiliary storage device 23 are connected via the system transmission path 28 to form a computer for the serviceman terminal 2.

[0018] The processor 21 corresponds to the central part of the computer. The processor 21 controls each part to realize various functions of the serviceman terminal 2 in accordance with an operating system or a control program. The processor 21 is, for example, a central processing unit (CPU). The processor 21 may be a multi-core / multi-threaded processor and can execute multiple processes in parallel. The processor 21 may be, for example, a micro processing unit (MPU), a system on a chip (SoC), a digital signal processor (DSP), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a programmable logic device (PLD), or a field-programmable gate array (FPGA). Alternatively, the processor 21 may be a combination of two or more of these.

[0019] The main memory 22 corresponds to the main storage portion of the computer. The main memory 22 includes a nonvolatile memory area and a volatile memory area. In the nonvolatile memory area, the main memory 22 stores firmware data such as BIOS, which is executed by the processor 21 prior to the operating system. The main memory 22 stores the operating system and control programs and data required for the processor 21 to execute processes for controlling each component in a nonvolatile or volatile memory area. The main memory 22 uses the volatile memory area as a work area where data is rewritten by the processor 21 as appropriate. The nonvolatile memory area is, for example, a ROM (Read Only Memory) or an EEPROM (registered trademark) (Electric Erasable Programmable Read-Only Memory). The volatile memory area is, for example, a RAM (Random Access Memory).

[0020] The auxiliary storage device 23 corresponds to the auxiliary storage portion of the computer. For example, the auxiliary storage device 23 may be an EEPROM, a hard disk drive (HDD), or a solid state drive (SSD). The auxiliary storage device 23 stores data used by the processor 21 in performing various processes, data created by the processes performed by the processor 21, and the like. For example, the storage area of ​​the auxiliary storage device 23 may include a model-specific firmware data storage unit 231, a model-specific file list storage unit 232, an all-model file list storage unit 233, a determination result storage unit 234, a common file storage unit 235, a model-specific file storage unit 236, and a compressed file storage unit 237. Each of these storage units 231 to 237 may be assigned, for example, a directory in the storage area of ​​the auxiliary storage device 23. Note that in FIG. 2 and other figures described below, firmware may be abbreviated as FW due to space limitations. The auxiliary storage device 23 may also store a control program.

[0021] The model-specific firmware data storage unit 231 stores a plurality of model-specific firmware data for a plurality of models of MFP 4 acquired from the management server 1.

[0022] The model-specific file list storage unit 232 stores, for each model-specific firmware data stored in the model-specific firmware data storage unit 231, a list of files included in the model-specific firmware data.

[0023] The all-model file list storage unit 233 stores a list of files stored in the model-specific file list storage unit 232, which has been merged with duplicates removed.

[0024] The determination result storage unit 234 stores a CSV (Comma Separated Values) file that records the determination result as to whether each file in the list stored in the all-model file list storage unit 233 is a common file or a model-specific file.

[0025] The common file storage unit 235 stores files included in the multiple model-specific firmware data stored in the model-specific firmware data storage unit 231, in which the judgment results recorded in the CSV file of the judgment result storage unit 234 are common files.

[0026] The model-specific file storage unit 236 stores files that are model-specific files based on the judgment results recorded in the CSV file of the judgment result storage unit 234, among the files included in the multiple model-specific firmware data stored in the model-specific firmware data storage unit 231.

[0027] The compressed file storage unit 237 stores a first compressed file obtained by compressing the file stored in the common file storage unit 235, and a plurality of second compressed files obtained by compressing, by model, the files stored in the model-specific file storage unit 236. The compressed file storage unit 237 also stores one firmware package obtained by compressing the first compressed file and the plurality of second compressed files together.

[0028] The input device 24 is an input device such as a keyboard, a pointing device, etc. Instead of the input device 24, the serviceman terminal 2 may be provided with an input interface for connecting a keyboard or a pointing device.

[0029] The output device 25 is a display device such as a liquid crystal display or an organic EL display. The serviceman terminal 2 may be provided with an output interface for connecting an external display device instead of the output device 25. The input device 24 and the output device 25 may be, for example, a touch panel in which a display device such as a liquid crystal display or an organic EL display and a pointing device for touch input are stacked.

[0030] The communication interface 26 performs data communication in accordance with a preset communication protocol with an external device connected via a communication network such as the Internet, etc. The external device is, for example, the management server 1.

[0031] Various USB devices are connected to the USB interface 27 via USB ports (not shown), and data is exchanged between the USB interface 27 and the connected USB devices. For example, a USB memory 3 is connected to the USB interface 27, and the USB interface 27 writes data to the connected USB memory 3 and reads data from the USB memory 3. The USB interface 27 is an example of an interface with an external storage medium. A USB input device such as a USB keyboard or a USB mouse may also be connected to the USB interface 27.

[0032] Fig. 3 is a diagram illustrating an example of the configuration of an MFP 4 as a device included in the firmware update system SYS. As shown in Fig. 3, the MFP 4 includes a processor 41, a main memory 42, an auxiliary storage device 43, a control panel 44, a communication interface 45, a USB interface 46, an image forming unit 47, a scanning unit 48, and a system transmission path 49. The system transmission path 49 includes an address bus, a data bus, a control signal line, etc. The system transmission path 49 connects the processor 41 to each of the other units directly or via a signal input / output circuit, and transmits data signals exchanged between them. The processor 41, the main memory 42, and the auxiliary storage device 43 are connected via the system transmission path 49 to form a computer for the serviceman terminal 2.

[0033] The processor 41 corresponds to the central part of the computer. The processor 41 controls each part to realize various functions of the MFP 4 in accordance with an operating system or a control program. The processor 41 is, for example, a CPU. The processor 41 may be multi-core / multi-threaded and can execute multiple processes in parallel. The processor 41 may be, for example, an MPU, SoC, DSP, GPU, ASIC, PLD, FPGA, or the like. Alternatively, the processor 41 may be a combination of two or more of these.

[0034] The main memory 42 corresponds to the main storage portion of the computer. The main memory 42 includes a nonvolatile memory area and a volatile memory area. In the nonvolatile memory area, the main memory 42 stores firmware data 421 such as BIOS, which is executed by the processor 41 prior to the operating system. The main memory 42 stores the operating system and control programs and data required for the processor 41 to execute processes for controlling each component in a nonvolatile or volatile memory area. The main memory 42 uses the volatile memory area as a work area where data is rewritten by the processor 41 as appropriate. The nonvolatile memory area is, for example, ROM or EEPROM. The volatile memory area is, for example, RAM.

[0035] The auxiliary storage device 43 corresponds to the auxiliary storage portion of the computer. For example, an EEPROM, HDD, or SSD can be the auxiliary storage device 43. The auxiliary storage device 43 stores data used by the processor 41 when performing various processes, data created by the processes in the processor 41, etc. The auxiliary storage device 43 can also store a control program.

[0036] The control panel 44 functions as a user interface and includes buttons and a touch panel for operation by the operator of the MFP 4. The touch panel is, for example, a stack of a display such as a liquid crystal display or an organic EL display and a pointing device for touch input. Therefore, the buttons and touch panel function as input devices that accept operations by the operator of the MFP 4. In addition, the display included in the touch panel functions as a display device that notifies the operator of the MFP 4 of various information.

[0037] The communication interface 45 communicates with a user terminal such as a personal computer via wired or wireless connections to receive print data for image formation. The communication interface 45 may also communicate data with an external device connected via a communication network such as the Internet in accordance with a preset communication protocol. The external device may be, for example, a serviceman terminal 2.

[0038] To the USB interface 46, for example, a USB memory 3 is connected via a USB port (not shown), and data is written to the connected USB memory 3 and data is read from the USB memory 3. The USB interface 46 is an example of an interface with an external storage medium.

[0039] Image forming unit 47 prints an image by, for example, electrophotography. That is, image forming unit 47 forms an image on an image forming medium or the like using toner. The image forming medium is, for example, a sheet of paper.

[0040] Scan unit 48 reads an image from an original document or the like on which an image is formed. For example, MFP 4 realizes a copy of the original document by printing the image read from the original document or the like using scan unit 48 onto an image forming medium using image forming unit 47.

[0041] The operation of the firmware update system SYS having such a configuration will be described below.

[0042] Fig. 4 is a sequence diagram for explaining the operation of the firmware update system SYS, and Fig. 5 is a diagram for explaining the relationship between the firmware data for each model and the firmware package for all model types.

[0043] As shown in FIG. 4, the serviceman terminal 2 receives, through operation of the input device 24 by the serviceman, the specification of the target model of MFP 4, that is, the specification of multiple models of MFP 4 that the serviceman desires to store in the USB memory 3 and take out (step S11).

[0044] Upon receiving this designation, the serviceman terminal 2 acquires the latest model-specific firmware data for the MFP 4 of the corresponding model from the management server 1 (step S12). For example, as shown in Fig. 5, when the management server 1 stores model-specific firmware data 51A for model A, model-specific firmware data 51B for model B, model-specific firmware data 51C for model C, and so on, and the serviceman designates three of the models, A, B, and C, the serviceman terminal 2 acquires model-specific firmware data 51A, 51B, and 51C for the corresponding models.

[0045] The serviceman terminal 2 determines common files included in the acquired multiple pieces of model-specific firmware data (step S13). This determination is made, for example, by hash checking. More specifically, the hash value of each file is calculated using the MD5 algorithm, and the hash values ​​are compared. If the hash values ​​are the same for all of the multiple pieces of model-specific firmware data, the serviceman terminal 2 determines that the file is a common file. Files included in each piece of model-specific firmware data, excluding common files, are model-specific files that are used only in the model that the model-specific firmware data targets.

[0046] The serviceman terminal 2 compresses the common file to create a compressed file 61 common to all models to be stored in the USB memory 3 as shown in Fig. 5 (step S14). This compressed file 61 common to all models is an example of a first compressed file created by compressing only the common files that are used in common by all models from the firmware data for multiple models.

[0047] Furthermore, the serviceman terminal 2 compresses the files excluding the common files for each of the plurality of model-specific firmware data to create a model-specific compressed file for each model (step S15). As a result, a model-specific compressed file 62A for model A, a model-specific compressed file 62B for model B, and a model-specific compressed file 62C for model C are created, as shown in Fig. 5. In the following description, when there is no need to particularly distinguish between the model-specific compressed file 62A for model A, the model-specific compressed file 62B for model B, and the model-specific compressed file 62C for model C, they will be collectively referred to simply as model-specific compressed files 62. These plurality of model-specific compressed files 62 are an example of a second compressed file created by compressing only the model-specific files collectively for each of the plurality of model-specific firmware data.

[0048] The serviceman terminal 2 further compresses the created common compressed file 61 for all models and the multiple model-specific compressed files 62 to create a single compressed file, thereby creating a firmware package 60 for all models (step S16).

[0049] The service technician records this created firmware package on the USB memory 3, carries it with him when he visits the customer, connects the USB memory 3 to the MFP 4 whose firmware data is to be updated, and issues an instruction to update the firmware.

[0050] In response to this firmware update instruction, the MFP 4 reads the firmware package 60 for all models from the connected USB memory 3 (step S17).

[0051] The MFP 4 decompresses this firmware package 60 and restores the all-model-common compressed file 61 and a plurality of model-specific compressed files 62 (step S18).

[0052] The MFP 4 extracts the all-model-common compressed file 61 and the model-specific compressed file 62 corresponding to its own model from the restored compressed files (step S19).

[0053] The MFP 4 then decompresses the extracted all-model-common compressed file 61 and model-specific compressed file 62, and restores the model-specific firmware data corresponding to its own model (step S20).

[0054] In this way, the MFP 4, for example, the MFP 4A of model A, obtains the model-specific firmware data 51A for its own model, i.e., for model A, from the compressed file 61 common to all models and the model-specific compressed file 62A for model A contained in the firmware package 60, as shown in Figure 5.

[0055] Then, the MFP 4 can update the firmware data 421 stored in the main memory 42 with the acquired model-specific firmware data for its own model (step S21).

[0056] The operation of the serviceman terminal 2 for realizing such an operation will be described below. Figures 6 to 8 are a series of flowcharts showing an example of the main steps of information processing executed by the processor 21 of the serviceman terminal 2 that executes a firmware package creation program, which is a control program. Figures 6 to 8 show the steps of information processing after the designation of the target model is accepted. Unless otherwise specified, the processing operation of the processor 21 shown in Figures 6 to 8 transitions from ACTn (n is a natural number) to ACT(n+1). Furthermore, the steps shown in Figures 6 to 8 are just an example. There are no particular limitations on the steps as long as similar results can be obtained.

[0057] As shown in FIG. 6, in ACT201, the processor 21 obtains the latest model-specific firmware data for all MFPs 4 designated as target models by the service technician operating the input device 24 from the management server 1 via the network via the communication interface 26.

[0058] In ACT202, the processor 21 creates a directory that serves as a storage unit for saving the acquired model-specific firmware data in the model-specific firmware data storage unit 231 of the auxiliary storage device 23, in accordance with the acquired model-specific firmware data. If the model-specific firmware data storage unit 231 is prepared as a single directory in the auxiliary storage device 23, such as an HDD, the directory for each model-specific firmware data becomes a subdirectory of the directory that serves as this model-specific firmware data storage unit 231. Note that, since it is known from a prior designation which model-specific firmware data is to be acquired, the order of ACT201 and ACT202 may be reversed.

[0059] In ACT203, the processor 21 stores each of the acquired model-specific firmware data in the corresponding directory of the model-specific firmware data storage unit 231. If the acquired model-specific firmware data is provided as a compressed file, the processor 21 decompresses the compressed file and stores the decompressed model-specific firmware data in the model-specific firmware data storage unit 231. As a result, the model-specific firmware data for each model is stored in a different directory for each model.

[0060] In ACT 204, the processor 21 stores a file list of the model-specific firmware data in the model-specific file list storage unit 232, which is prepared as, for example, a single directory in the auxiliary storage device 23. Specifically, the processor 21 checks the files included in each of the multiple model-specific firmware data stored in the model-specific firmware data storage unit 231, and creates a file list that describes at least the file name and destination directory of each file. The file list may be described in the form of a file path that connects the directory and file name. Note that the file name in this embodiment may include the file extension. As a result, a file list for each model-specific firmware data for each model is stored individually in the model-specific file list storage unit 232.

[0061] In ACT205, the processor 21 registers one of the multiple file lists stored in the model-specific file list storage unit 232, for example, the first file list in order of storage or name order, as an all-model file list in the all-model file list storage unit 233 prepared as, for example, a single directory in the auxiliary storage device 23. That is, the processor 21 copies the file list to the all-model file list storage unit 233 and renames the file name to all-model file list.

[0062] In ACT 206 , the processor 21 compares the next file list among the multiple file lists stored in the model-specific file list storage unit 232 with the all-model file list registered in the all-model file list storage unit 233 .

[0063] In ACT207, the processor 21 determines whether or not there is an unregistered file in the all-model file list, that is, whether or not there is a file among the files described in the next file list that is not registered in the all-model file list. If there is no unregistered file, the processor 21 determines NO in ACT207 and proceeds to the processing of ACT209. If there is an unregistered file, the processor 21 determines YES in ACT207 and proceeds to the processing of ACT208.

[0064] In ACT 208, the processor 21 additionally registers the unregistered file in the all-model file list.

[0065] In ACT209, the processor 21 determines whether or not there are any file lists that have not yet been compared among the multiple file lists stored in the model-specific file list storage unit 232. If there are any uncompared file lists, the processor 21 determines YES in ACT209 and transitions to the processing of ACT206. If there are no uncompared file lists, the processor 21 determines NO in ACT209 and transitions to the processing of ACT210.

[0066] The above ACT201 to ACT209 are file list creation processes executed as pre-processing. Next, the processor 21 executes file preparation processes to prepare files to be included in the firmware package based on the created file list.

[0067] As shown in Figure 7, in ACT210, the processor 21 selects files to be processed in order from the top of the multiple files listed in the all-model file list stored in the all-model file list storage unit 233 of the auxiliary storage device 23.

[0068] As ACT211, the processor 21 performs a hash comparison between files that have the same file name as the file selected as the file to be processed, among the files included in each of the multiple model-specific firmware data stored in the model-specific firmware data storage unit 231.

[0069] In ACT212, the processor 21 determines whether or not the hash values ​​match for all of the multiple firmware data for each model. If they do not match, the processor 21 determines NO in ACT212 and proceeds to processing in ACT214. If they match, the processor 21 determines YES in ACT212 and proceeds to processing in ACT213.

[0070] In ACT213, the processor 21 records the determination result that the file with that file name is a common file in a CSV file in the determination result storage unit 234, which is prepared as, for example, a directory in the auxiliary storage device 23. Note that the determination result storage unit 234 may be in the same directory as other storage units. After that, the processor 21 transitions to the processing of ACT215.

[0071] In ACT 214, the processor 21 records the determination result that the file with that file name is a model-specific file in a CSV file in the determination result storage unit 234.

[0072] 9 is a diagram illustrating an example of the record structure of a CSV file stored in the determination result storage unit 234. As shown in FIG. 9, the record of the CSV file includes the file name of the file, the storage directory in which the file is stored, and the determination result field. In the case of a common file, the storage directory may be any of the multiple model-specific firmware data directories in the model-specific firmware data storage unit 231. In this embodiment, the directory is the model-specific firmware data directory corresponding to the first file list among the multiple file lists stored in the model-specific file list storage unit 232.

[0073] In ACT215, the processor 21 determines whether or not there are any uncompared files for which hash comparison has not been performed. That is, the processor 21 determines whether or not all of the multiple files listed in the all-model file list stored in the all-model file list storage unit 233 have been selected as files to be processed. If there are any uncompared files, the processor 21 determines YES in ACT215 and transitions to the processing of ACT210. If there are no uncompared files, the processor 21 determines NO in ACT215 and transitions to the processing of ACT216.

[0074] By the above processing in ACT210 to ACT215, the files included in the firmware data for a plurality of models are classified into common files and model-specific files.

[0075] In ACT 216, the processor 21 creates, for each model, a model-specific directory that serves as a storage unit for saving model-specific files in the model-specific file storage unit 236 of the auxiliary storage device 23. If the model-specific file storage unit 236 is prepared as, for example, one directory, each model-specific directory becomes a subdirectory of the directory that serves as this model-specific file storage unit 236.

[0076] In ACT 217, the processor 21 selects records to be processed in order from the first record of the CSV file stored in the determination result storage unit 234, and reads out the determination result of the selected record.

[0077] In ACT 218, the processor 21 determines whether the read determination result is a common file. If it is not a common file, the processor 21 determines NO in ACT 218 and proceeds to the processing of ACT 220. If it is a common file, the processor 21 determines YES in ACT 218 and proceeds to the processing of ACT 219.

[0078] In ACT219, the processor 21 saves the model-specific firmware data file stored in the model-specific firmware data storage unit 231, which is specified by the file name and storage directory of the record to be processed, in the common file storage unit 235, which is prepared as, for example, one directory in the auxiliary storage device 23. Thereafter, the processor 21 transitions to the processing of ACT221.

[0079] As ACT220, the processor 21 saves the model-specific firmware data file stored in the model-specific firmware data storage unit 231, which is identified by the file name and storage directory of the record to be processed, as a model-specific file in a model-specific directory corresponding to the storage directory created in the model-specific file storage unit 236.

[0080] In ACT221, the processor 21 determines whether or not there is an unprocessed record in the CSV file in the determination result storage unit 234. That is, the processor 21 determines whether or not all of the multiple records recorded in the CSV file have been selected as records to be processed. If there is an unprocessed record, the processor 21 determines YES in ACT221 and transitions to the processing of ACT217. If there is no unprocessed record, the processor 21 determines NO in ACT221 and transitions to the processing of ACT222.

[0081] Once the files to be included in the firmware package have been prepared as in ACT210 to ACT221 above, the processor 21 executes a package creation process to create a firmware package from those files.

[0082] 8, as ACT 222, the processor 21 executes a compression process to compress a common directory, which is a directory of the common file storage unit 235. As a result, the multiple common files stored in the common directory are compressed into a single compressed file, and an all-model common compressed file 61 is created. The created all-model common compressed file 61 is saved in the compressed file storage unit 237, which is prepared as, for example, a single directory in the auxiliary storage device 23.

[0083] As ACT223, the processor 21 executes a compression process to compress each of a plurality of model-specific directories formed as individual directories in the model-specific file storage unit 236. As a result, a plurality of common files stored in each model-specific directory are compressed into a single compressed file, and a model-specific compressed file 62 for each model is created. The created plurality of model-specific compressed files 62 are stored in the compressed file storage unit 237.

[0084] As ACT224, the processor 21 executes a compression process to compress the directory of the compressed file storage unit 237, thereby creating a compressed file that collects all the compressed files stored in the compressed file storage unit 237.

[0085] In ACT225, the processor 21 stores a compressed file that compiles all the created compressed files as a firmware package 60 for all models in the USB memory 3 via the USB interface 27.

[0086] Thereafter, although not specifically shown in the figure, the processor 21 deletes the contents of the model-specific firmware data storage unit 231, the model-specific file list storage unit 232, the all-model file list storage unit 233, the judgment result storage unit 234, the common file storage unit 235, the model-specific file storage unit 236 and the compressed file storage unit 237, and terminates the processing.

[0087] Next, the operation of the MFP 4 will be described. Fig. 10 is a flowchart showing an example of the main steps of information processing executed by the processor 41 of the MFP 4. Fig. 10 shows the steps of information processing when the USB memory 3 is connected to a USB port (not shown) and a service person inputs a predetermined firmware update instruction via the control panel 44. Note that the steps shown in Fig. 10 are just an example, and the steps are not particularly limited as long as similar results can be obtained.

[0088] As ACT 401 , the processor 41 reads out the firmware package 60 for all models from the USB memory 3 via the USB interface 46 and stores it in one temporary storage directory prepared in the auxiliary storage device 43 .

[0089] As ACT402, the processor 41 decompresses the firmware package 60 stored in this temporary storage directory to restore a compressed file 61 common to all models and model-specific compressed files 62 for a plurality of models.

[0090] In ACT403, the processor 41 saves the restored all-model-common compressed file 61 in one working directory prepared in the auxiliary storage device 43. This saving process may involve copying the restored all-model-common compressed file 61 from the temporary saving directory to the working directory, or may involve moving the restored all-model-common compressed file 61 to the working directory.

[0091] In ACT 404, the processor 41 saves the model-specific compressed file 62 for its own model from among the restored model-specific compressed files 62 for the multiple model types in the working directory where the all-model-common compressed file 61 has been saved. This saving process may also be a copy or a move.

[0092] In ACT 405, the processor 41 decompresses the two compressed files, the all-model-common compressed file 61 and the model-specific compressed file 62 for the own model, which have been saved in the working directory. This restores the model-specific firmware data corresponding to the own model.

[0093] Therefore, the ACT 406 executes firmware data update processing to update the firmware data 421 stored in the main memory 42 with the model-specific firmware data restored in the working directory.

[0094] Thereafter, although not shown, the processor 41 deletes the contents of the temporary storage directory and the working directory, and ends the process.

[0095] As described above, the serviceman terminal 2, which is an example of a firmware package creation device according to the embodiment, is equipped with a processor 21 and an auxiliary memory device 23, which is an example of a memory device, and creates a firmware package including multiple firmware data for MFP4, which is an example of multiple models of devices, and the auxiliary memory device 23 stores multiple model-specific firmware data 51A, 51B, 51C, ... for multiple models of MFP4A, 4B, 4C, ... in the model-specific firmware data storage unit 231. For each of the multiple model-specific firmware data, processor 21 classifies the multiple files included in the model-specific firmware data into common files used in common by all models and model-specific files used only by the model for which the model-specific firmware data is targeted, and based on this classification, creates an all-models common compressed file 61, which is an example of a first compressed file, by compressing only the common files from the multiple model-specific firmware data, and also creates a model-specific compressed file 62, which is an example of a second compressed file, by compressing only the model-specific files for each of the multiple model-specific firmware data, and performs this process on all of the multiple model-specific firmware data to create multiple model-specific compressed files 62, for example, a model-specific compressed file 62A for model A, a model-specific compressed file 62B for model B, and a model-specific compressed file 62C for model C. Processor 21 then compresses the all-models common compressed file 61 and the multiple model-specific compressed files 62 together to create a single firmware package 60. Therefore, according to the embodiment, even if firmware data is individually created for each of a plurality of models of devices such as MFPs 4, it is possible to create a firmware package that is compatible with a plurality of models of devices. Conventionally, one type of firmware data exists for each model on the market. Managing such a single type of firmware data for each model is time-consuming and requires a large amount of firmware data to be managed. Therefore, in this embodiment, when creating firmware data, each file included in the model-specific firmware data is classified as either model-universal or model-invariant. Based on this classification, the firmware data for each model is divided into a model-universal portion and a model-invariant portion for each model, and each is provided as a single compressed file. This reduces the amount of data required for the duplicated portion of firmware data for multiple models, making it possible to provide firmware data for multiple models in a compact format. Furthermore, in this embodiment, multiple model-specific firmware data are provided as a single firmware package, making management easier.

[0096] According to the embodiment, the processor 21 classifies files into model-wide files and model-unwide files by comparing hashes of files with the same file name included in a plurality of pieces of firmware data for each model. Therefore, by performing hash comparison, it is possible to easily determine whether or not a file is a duplicate file, and classify the file into a model-independent file and a model-independent file.

[0097] In particular, according to the embodiment, if the hash of even one of multiple files with the same file name included in multiple model-specific firmware data is different for all models, the processor 21 classifies the file as a model-specific file for all models. Therefore, it is possible to reliably classify files into model-independent files and model-independent files.

[0098] Furthermore, according to the embodiment, the processor 21 creates a file list of files included in firmware data for multiple models, excluding files with identical file names, in the all-model file list storage unit 233 of the auxiliary storage device 23, which is an example of a storage device, and performs hash comparison on each of the files listed in this file list. Therefore, all files included in firmware data for a plurality of models are registered in a file list and then compared by hash, so that files can be classified reliably without any omissions.

[0099] The serviceman terminal 2 also has a USB interface 27, which is an example of an interface with a USB memory 3, which is an example of an external storage medium that can be attached or detached to the terminal, and the processor 21 stores the created firmware package in the USB memory 3 via the USB interface 27. This makes it possible to easily take out the firmware package.

[0100] The firmware update system SYS according to this embodiment includes a serviceman terminal 2, which is an example of such a firmware package creation device, as well as a processor 41 and an auxiliary storage device 43, which is an example of a storage device, and includes multiple MFPs 4, which are an example of devices of multiple models that update firmware data using a firmware package created by the serviceman terminal 2. The processor 41 of each MFP 4 decompresses the firmware package and stores an all-models-common compressed file 61, which is an example of a first compressed file, and multiple model-specific compressed files 62, which are examples of multiple second compressed files, in the auxiliary storage device 43. The processor 41 of each MFP 4 restores model-specific firmware data for that model by decompressing the all-models-common compressed file 61 and the model-specific compressed file 62 corresponding to that model from among the multiple model-specific compressed files 62. The processor 41 of each MFP 4 updates the firmware data 421 stored in the main memory 42 by applying the restored model-specific firmware data. Therefore, according to the embodiment, even if firmware data is created individually for each of multiple models of devices such as MFP4, a firmware package compatible with multiple models of devices can be created, and each device can restore the firmware data corresponding to its own model from the firmware package and update the firmware data.

[0101] [Variations] 11 is a diagram showing the first part of a flowchart illustrating an example of the main steps of information processing executed by the processor 21 of the serviceman terminal 2 in the modified example. The second and third parts are the same as those in the embodiment. As shown in FIG. 11, in the modified example, the processing in ACT205 to ACT209 in the embodiment is changed to the processing in ACT251 and ACT252 in the figure.

[0102] That is, in ACT251, the processor 21 registers the contents of the multiple file lists stored in the model-specific file list storage unit 232 as an all-model file list in the all-model file list storage unit 233. Specifically, the processor 21 reads out the multiple file lists stored in the model-specific file list storage unit 232 one by one in order from the top, and adds and registers the contents to the all-model file list provided in the all-model file list storage unit 233.

[0103] In ACT252, if there are duplicate files among the files registered in the all-model file list stored in the all-model file list storage unit 233, the processor 21 deletes the duplicate files except for one.

[0104] Even if the file list creation process executed as preprocessing is performed in this manner, as in the embodiment, a file list of files contained in the firmware data for each of the multiple model types, excluding files with identical file names, can be created in the all-model file list storage unit 233.

[0105] In the above embodiment, the firmware package creation program, which is a control program executed by the processor 21 of the serviceman terminal 2, which is an example of a firmware package creation device, may be configured to be recorded on a computer-readable recording medium such as a CD-ROM and provided. Also, the control program may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network.

[0106] In addition, although the description has been given of the firmware package created by the serviceman terminal 2 being provided to the MFP 4, which is an example of a device to be updated with firmware data, via the USB memory 3, the firmware package may also be sent from the communication interface 26 of the serviceman terminal 2 to the communication interface 45 of the MFP 4 via a communication network. Furthermore, instead of communicating directly between them, the firmware package may also be transmitted via a file server on the cloud or the like.

[0107] In addition, the management server 1 may be given the functionality of a firmware package creation device, and multiple device models to be taken out may be specified from the serviceman terminal 2, whereby a firmware package may be created on the management server 1, and the created firmware package may be downloaded and used on the serviceman terminal 2 or the MFP 4.

[0108] Furthermore, the flow of the information processing performed by the processors 21 and 41 described with reference to the flowcharts is an example, and is not limited to this order. For example, as described above, the order of ACT201 and ACT202 may be reversed, or they may be performed in parallel. In this way, the order of the processing may be changed or multiple processes may be performed in parallel, as long as there is no discrepancy with the preceding or subsequent processing.

[0109] Furthermore, in the above embodiment, the model-specific firmware data storage unit 231, model-specific file list storage unit 232, all-model file list storage unit 233, judgment result storage unit 234, common file storage unit 235, model-specific file storage unit 236, and compressed file storage unit 237 are provided in the auxiliary storage device 23, but it goes without saying that one or more of them may be provided in the main memory 22.

[0110] The functions described in the above embodiments can be realized not only by hardware but also by software by loading a program describing each function into a computer. Furthermore, each function may be realized by selecting either software or hardware as appropriate.

[0111] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]

[0112] 1...management server, 2...serviceman terminal, 3...USB memory, 4...MFP, 4A...MFP of model A, 4B...MFP of model B, 4C...MFP of model C, 21,41...processor, 22,42...main memory, 23,43...auxiliary storage device, 24...input device, 25...output device, 26,45...communication interface, 27,46...USB interface, 28,49...system transmission path, 44...control panel, 47...image forming unit, 48...scanning unit, 51A...model-specific firmware data for model A, 51B...model-specific firmware data for model B, 51C...model-specific firmware data for model C, 60...firmware package, 61...compressed file common to all models, 62...model-specific compressed file, 62A...model-specific compressed file for model A, 62B...model-specific compressed file for model B, 62C...Model-specific compressed file for model C, 231...Model-specific firmware data storage unit, 232...Model-specific file list storage unit, 233...All-model file list storage unit, 234...Judgment result storage unit, 235...Common file storage unit, 236...Model-specific file storage unit, 237...Compressed file storage unit, 421...Firmware data, SYS...Firmware update system.

Claims

1. 1. A firmware package creation device comprising a processor and a storage device, which creates a firmware package including multiple firmware data for multiple types of devices, the storage device stores a plurality of firmware data for each of the plurality of device models; The processor: For each of the plurality of firmware data for each model, classifying the plurality of files included in the firmware data for each model into common files that are used in common for all models and model-specific files that are used only for the model that the firmware data for each model is targeted at; based on the classification, compressing only the common files from the firmware data for each model to create a first compressed file; creating a second compressed file by compressing only the model-specific files for each of the plurality of model-specific firmware data based on the classification, for all of the plurality of model-specific firmware data, thereby creating a plurality of the second compressed files; creating one firmware package by compressing the first compressed file and the plurality of second compressed files together; Firmware package creation device.

2. The firmware package creation device according to claim 1 , wherein the processor performs the classification by comparing hashes of files with the same file name included in the plurality of model-specific firmware data.

3. 3. The firmware package creation device according to claim 2, wherein if the hash of even one of the multiple files with the same file name included in the firmware data for each model is different for all models, the processor classifies the file as the model-specific file for all models.

4. The processor: creating a file list of files included in the firmware data for each of the plurality of models, excluding files with identical file names, in the storage device; performing the hash comparison for each file listed in the file list; 4. The firmware package creation device according to claim 2 or 3.

5. the firmware package creation device further includes an interface with an external storage medium that is detachable from the firmware package creation device; the processor stores the created firmware package in the external storage medium via the interface; The firmware package creation device according to claim 1 .

6. When executed by the processor of a firmware package creation device that includes a processor and a storage device and creates a firmware package including multiple firmware data for multiple types of devices, the processor, classifying, for each of a plurality of model-specific firmware data for the plurality of device models stored in the storage device, a plurality of files included in the model-specific firmware data into common files that are used in common for all device models and model-specific files that are used only for the device model targeted by the model-specific firmware data; creating a first compressed file by compressing only the common files from the firmware data for the plurality of models based on the classification; creating a second compressed file by compressing only the model-specific files together for each of the plurality of model-specific firmware data based on the classification, for all of the plurality of model-specific firmware data, thereby creating a plurality of the second compressed files; compressing the first compressed file and the plurality of second compressed files together to create one firmware package; Firmware package creation program.

7. The firmware package creation device according to claim 1; the plurality of models of devices each including a processor and a storage device, and each updating firmware data using the firmware package created by the firmware package creation device; Equipped with The processor of the device decompressing the firmware package and storing the first compressed file and the plurality of second compressed files in the storage device of the device; decompressing the first compressed file and a second compressed file corresponding to the model from among the plurality of second compressed files to restore the model-specific firmware data for the model; Applying the firmware data for each model Firmware update system.

Citation Information

Patent Citations

  • Program, information processor and print system

    JP2006268643A

  • Distribution system and distribution method

    JP2015079372A

  • Utility node software / firmware updates through multi-type packages

    JP2016507806A

  • Center device and in-vehicle electronic control device

    JP2022167530A

  • Utility node software / firmware update through a multi-type package

    US20140173579A1