Firmware package creation device, firmware package creation method, and firmware package creation program
Patent Information
- Application Number
- JP2026191833
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2026-08-21
- Publication Date
- 2026-10-30
Smart Images

Figure 2026174765000001_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present invention relate to a firmware package creation apparatus, a firmware package creation program, and a firmware update system.
BACKGROUND ART
[0002] Devices with various models such as MFPs (multifunction peripherals), copiers, and printers are widely used. Such devices store firmware such as a BIOS (Basic Input Output System) that is executed prior to an operating system at startup. When it becomes necessary to upgrade the function of this firmware or to update it due to a failure or other reasons, a service person visits the customer's site and manually updates the firmware.
[0003] Device firmware differs for each model. For this reason, model-specific firmware data created by a device manufacturer or the like is prepared on the management server or the like of the manufacturer, and a service person downloads the required model-specific firmware data from the management server or the like, stores it in a portable storage medium such as a USB (Universal Serial Bus) memory, and visits the customer's site. Since a single customer does not always use devices of only one model, and there are cases where a service person visits a plurality of customer sites at a time, the service person needs to store model-specific firmware data for a plurality of models in the storage medium. Depending on the size of the model-specific firmware data, it may not be possible to store data for a plurality of models in a single storage medium.
[0004] Accordingly, Patent Document 1 proposes a technique for distributing a firmware package including common firmware that is commonly used by devices of a plurality of models and unique firmware that is unique to each of the plurality of models.
[0005] However, Patent Document 1 does not describe any method for creating such a firmware package. Therefore, it is natural to assume that the firmware data creator distinguishes between common firmware and specific firmware when creating them.
[0006] On the other hand, there may be cases where the firmware data creator does not distinguish between such common firmware and specific firmware, and creates firmware data individually for each of the multiple device models. In such cases, the technology proposed in Patent Document 1 cannot be used. [Prior art documents] [Patent Documents]
[0007] [Patent Document 1] Japanese Patent Publication No. 2015-79372 [Overview of the project] [Problems that the invention aims to solve]
[0008] The problem that this invention aims to solve is to provide a firmware package creation device, a firmware package creation method, and a firmware package creation program that can create a firmware package compatible with multiple types of devices, even if firmware data is created individually for each of the multiple types of devices. [Means for solving the problem]
[0009] A firmware package creation device according to one embodiment comprises a processor and a storage device, and creates a firmware package containing multiple firmware data for multiple device models. The storage device stores multiple device model-specific firmware data for multiple device models. For each of the multiple device model-specific firmware data, the processor classifies the multiple files contained in the device model-specific firmware data into common files used in common by all models and model-specific files used only by the model targeted by the device model-specific firmware data. Based on this classification, it compresses only the common files from the multiple device model-specific firmware data to create a first compressed file, and then compresses only the model-specific files from each of the multiple device model-specific firmware data to create a second compressed file. This process is repeated for all of the multiple device model-specific firmware data to create 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 drawing]
[0010] [Figure 1] Figure 1 is a diagram illustrating an example of the configuration of a firmware update system according to an embodiment. [Figure 2] Figure 2 is a diagram illustrating an example of the configuration of a service terminal as a firmware package creation device according to an embodiment of the firmware update system. [Figure 3] Figure 3 illustrates an example of the configuration of an MFP as a device included in a firmware update system. [Figure 4] Figure 4 is a sequence diagram illustrating the operation of the firmware update system. [Figure 5] Figure 5 illustrates the relationship between firmware data for each model and the firmware package for all models. [Figure 6]Figure 6 shows the first part of a flowchart illustrating an example of the main information processing steps performed by the service terminal's processor. [Figure 7] Figure 7 shows the second part of a flowchart illustrating an example of the main information processing steps performed by the service terminal's processor. [Figure 8] Figure 8 shows the third part of a flowchart illustrating an example of the essential information processing steps performed by the service terminal's processor. [Figure 9] Figure 9 illustrates an example of the record structure of a CSV file stored in the judgment result storage unit of a service technician terminal. [Figure 10] Figure 10 is a flowchart showing an example of the main information processing steps performed by the MFP's processor. [Figure 11] Figure 11 shows the first part of a flowchart illustrating an example of the essential information processing steps performed by the service terminal processor in a modified example. [Modes for carrying out the invention]
[0011] The following description of the embodiment will use the example of an MFP (Multi-Function Product Processor) with multiple device models installed in the workplace, but it goes without saying that the devices are not limited to such an MFP.
[0012] Figure 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 service terminal 2, a USB memory 3, and MFP4A, 4B, C, ... In the following description, unless it is necessary to distinguish between MFP4A, 4B, C, ... they will simply be referred to collectively as MFP4. The service terminal 2 is an example of a firmware package creation device according to an embodiment. In Figure 1, MFP4 includes MFP4A of model A shown as MFP-A, MFP4B of model B shown as MFP-B, MFP4C of model C shown as MFP-C, ... but there can be any number of these MFP4s. Also, although only one service terminal 2 is shown in Figure 1, the firmware update system SYS may include multiple service terminals 2. Similarly, the firmware update system SYS may include multiple management servers 1.
[0013] Management Server 1 is a server operated by, for example, the manufacturer of an MFP4, and is configured on the cloud. Management Server 1 provides model-specific firmware data, which is the firmware data for each of the multiple models of MFP4 products from that manufacturer.
[0014] The service technician terminal 2 is a personal computer or the like used by a service technician. The service technician terminal 2 communicates with the management server 1 to acquire model-specific firmware data for a plurality of desired models. The service technician terminal 2 classifies the plurality of pieces of model-specific firmware data into common files that are commonly used across all models, and model-specific files that are used only in the model targeted by each piece of model-specific firmware data. Then, based on this classification, the service technician terminal 2 creates a first compressed file by collectively compressing only the common files, and for each of the plurality of pieces of model-specific firmware data, creates a second compressed file by collectively compressing only the model-specific files, performing this for all of the plurality of pieces of model-specific firmware data to create a plurality of second compressed files. The service technician terminal 2 creates a single firmware package by collectively compressing the first compressed file and the plurality of second compressed files.
[0015] The USB memory 3 is an example of an external storage medium that is detachably attachable to the service technician terminal 2 and the MFP 4. The USB memory 3 stores the firmware package created by the service technician terminal 2. The service technician brings this USB memory 3 and visits the customer site where the MFP 4 is in use. Then, the USB memory 3 is connected to the MFP 4 that is the target for updating firmware data.
[0016] The MFP 4 decompresses the firmware package stored in the connected USB memory 3 to obtain the first compressed file and the plurality of second compressed files. The MFP 4 decompresses the first compressed file to obtain the common files, and also decompresses the second compressed file corresponding to the model of the subject device from among the plurality of second compressed files to obtain the model-specific files for the subject device. Then, the MFP 4 combines the common files and the model-specific files for the subject device to restore the model-specific firmware data for the subject device, and applies it to update the pre-stored firmware data.
[0017] FIG. 2 is a diagram for describing an example of the configuration of a 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, and the like. The system transmission path 28 connects the processor 21 and each of the other units directly or via a signal input / output circuit, and transmits data signals exchanged therebetween. The processor 21, the main memory 22, and the auxiliary storage device 23 are connected by the system transmission path 28, whereby the computer of the serviceman terminal 2 is configured.
[0018] The processor 21 corresponds to the central part of the above computer. The processor 21 controls each unit to implement various functions as the serviceman terminal 2 in accordance with an operating system or a control program. The processor 21 is, for example, a CPU (Central Processing Unit). The processor 21 may be of a multi-core / multi-thread type, and can execute a plurality of processes in parallel. The processor 21 may be, for example, an MPU (Micro Processing Unit), an SoC (System on a Chip), a DSP (Digital Signal Processor), a GPU (Graphics Processing Unit), an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), or an FPGA (Field-Programmable Gate Array), or the like. Alternatively, the processor 21 may be a combination of a plurality of these components.
[0019] Main memory 22 corresponds to the main memory portion of the computer described above. Main memory 22 includes non-volatile memory areas and volatile memory areas. In the non-volatile memory area of main memory 22, firmware data such as BIOS, which is executed by the processor 21 prior to the operating system, is stored. Main memory 22 stores control programs and data necessary for the operating system and processor 21 to execute processes for controlling each part, in non-volatile or volatile memory areas. Main memory 22 uses the volatile memory area as a work area where data is rewritten as appropriate by the processor 21. Non-volatile memory areas include, for example, ROM (Read Only Memory) and EEPROM (Registered Trademark) (Electric Erasable Programmable Read-Only Memory). Volatile memory areas include, for example, RAM (Random Access Memory).
[0020] The auxiliary storage device 23 corresponds to the auxiliary storage portion of the computer described above. For example, an EEPROM, HDD (Hard Disk Drive), or SSD (Solid State Drive) can be the auxiliary storage device 23. The auxiliary storage device 23 stores data used by the processor 21 in performing various processes, data created by the processing performed by the processor 21, etc. 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 judgment 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 can be allocated, for example, one directory in the storage area of the auxiliary storage device 23. Note that in Figure 2 and other figures described later, firmware may be abbreviated as FW for space reasons. The auxiliary storage device 23 can also store control programs.
[0021] The model-specific firmware data storage unit 231 stores firmware data for multiple models of MFP4 obtained from the management server 1.
[0022] The model-specific file list storage unit 232 stores a list of files included in each model-specific firmware data stored in the model-specific firmware data storage unit 231.
[0023] The all-model file list storage unit 233 stores a merged list of files stored in the model-specific file list storage unit 232, with duplicates removed.
[0024] The judgment result storage unit 234 stores a CSV (Comma Separated Values) file that records the judgment result for each file in the list stored in the all-model file list storage unit 233, indicating whether it is a common file or a model-specific file.
[0025] The common file storage unit 235 stores files from among the multiple model-specific firmware data files stored in the model-specific firmware data storage unit 231, where the judgment result recorded in the CSV file of the judgment result storage unit 234 is the common file.
[0026] The model-specific file storage unit 236 stores files from among the multiple model-specific firmware data files stored in the model-specific firmware data storage unit 231, where the judgment result recorded in the CSV file of the judgment result storage unit 234 is the model-specific file.
[0027] The compressed file storage unit 237 stores a first compressed file obtained by compressing the files stored in the common file storage unit 235, and a plurality of second compressed files obtained by compressing the files stored in the model-specific file storage unit 236 according to the model. The compressed file storage unit 237 also stores a single firmware package which is a combination of the first compressed file and the plurality of second compressed files.
[0028] The input device 24 is an input device such as a keyboard or a pointing device. Alternatively, the service terminal 2 may be equipped with an input interface for connecting a keyboard or pointing device instead of the input device 24.
[0029] The output device 25 is a display device such as a liquid crystal display or an organic EL display. Alternatively, the service terminal 2 may be equipped with an output interface for connecting an external display device instead of the output device 25. The input device 24 and output device 25 may also be, for example, a touch panel in which a display device such as a liquid crystal display or an organic EL display and a touch input pointing device are stacked.
[0030] The communication interface 26 communicates data with external devices connected via a communication network such as the Internet, according to a pre-configured communication protocol. Examples of external devices include 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 connected USB devices. For example, a USB memory stick 3 is connected to the USB interface 27, and the USB interface 27 writes data to and reads data from the connected USB memory stick 3. The USB interface 27 is an example of an interface with an external storage medium. USB input devices such as a USB keyboard or USB mouse may also be connected to the USB interface 27.
[0032] Figure 3 is a diagram illustrating an example of the configuration of MFP4 as a device included in the firmware update system SYS. As shown in Figure 3, MFP4 comprises a processor 41, main memory 42, auxiliary storage device 43, control panel 44, communication interface 45, USB interface 46, image forming unit 47, scanning unit 48, and system transmission path 49. The system transmission path 49 includes an address bus, data bus, control signal lines, etc. The system transmission path 49 connects the processor 41 and the other units directly or via signal input / output circuits, and transmits data signals exchanged between them. The computer of the service terminal 2 is formed by the connection of the processor 41, main memory 42, and auxiliary storage device 43 via the system transmission path 49.
[0033] The processor 41 corresponds to the central part of the computer described above. The processor 41 controls each part in order to realize various functions as an MFP4 according to the operating system or control program. The processor 41 is, for example, a CPU. The processor 41 may be multi-core / multi-threaded and capable of executing multiple processes in parallel. The processor 41 may be, for example, an MPU, SoC, DSP, GPU, ASIC, PLD, or FPGA. Alternatively, the processor 41 may be a combination of several of these.
[0034] Main memory 42 corresponds to the main memory portion of the computer described above. Main memory 42 includes a non-volatile memory area and a volatile memory area. In the non-volatile memory area of main memory 42, firmware data 421 such as BIOS, which is executed by the processor 41 prior to the operating system, is stored. Main memory 42 stores control programs and data necessary for the operating system and the processor 41 to execute processes for controlling each part, in non-volatile or volatile memory areas. Main memory 42 uses the volatile memory area as a work area where data is rewritten as appropriate by the processor 41. The non-volatile 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 described above. 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 in performing various processes, data created by the processing performed by the processor 41, etc. The auxiliary storage device 43 can also store control programs.
[0036] The control panel 44 functions as a user interface and includes buttons and a touch panel for operation by the MFP4 operator. The touch panel is, for example, a stacked display such as a liquid crystal display or an organic EL display and a touch input pointing device. Therefore, the buttons and touch panel function as input devices that accept operations from the MFP4 operator. In addition, the display on the touch panel functions as a display device that notifies the MFP4 operator of various information.
[0037] The communication interface 45 communicates with a user terminal, such as a personal computer, via wired or wireless connection to receive print data to be image-formed. The communication interface 45 may also communicate data with external devices connected via a communication network, such as the Internet, according to a pre-configured communication protocol. Examples of external devices include the service technician terminal 2.
[0038] A USB memory stick 3, for example, is connected to the USB interface 46 via a USB port (not shown), and data is written to and read from the connected USB memory stick 3. The USB interface 46 is an example of an interface with an external storage medium.
[0039] The image forming unit 47 prints an image, for example, by an electrophotographic method. That is, the image forming unit 47 forms an image on an image forming medium using toner. The image forming medium is, for example, a sheet of paper.
[0040] The scanning unit 48 reads an image from a document or the like in which an image has been formed. For example, the MFP4 performs document copying by printing the image read from the document or the like using the scanning unit 48 onto an image forming medium using the image forming unit 47.
[0041] The operation of the firmware update system SYS with this configuration will be explained below.
[0042] Figure 4 is a sequence diagram illustrating the operation of the firmware update system SYS. Figure 5 is a diagram illustrating the relationship between model-specific firmware data and the firmware package for all models.
[0043] As shown in Figure 4, the service terminal 2 accepts the service technician's input device 24 to specify the target model MFP4, that is, multiple models of MFP4 that the service technician wishes to store on the USB memory 3 and take with them (step S11).
[0044] Upon receiving this designation, the service technician terminal 2 retrieves the latest model-specific firmware data for the corresponding MFP4 model from the management server 1 (step S12). For example, as shown in Figure 5, if 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, etc., and the service technician designates three of these models, A, B, and C, the service technician terminal 2 retrieves the corresponding model-specific firmware data 51A, 51B, and 51C.
[0045] The service terminal 2 identifies common files that are included in multiple model-specific firmware data sets that have been acquired (step S13). This identification is performed, for example, by hash checking. More specifically, the hash value of each file using the MD5 algorithm is calculated and the hash values are compared. If the hash values are the same for all of the model-specific firmware data sets, the service terminal 2 determines that the file is a common file. The files included in each model-specific firmware data set, excluding the common file, are model-specific files used only for the model targeted by that model-specific firmware data set.
[0046] The service terminal 2 compresses the common files to create a common compressed file 61 for all models, which should be stored on the USB memory 3 as shown in Figure 5 (Step S14). This common compressed file 61 for all models is an example of a first compressed file created by compressing only the common files that are commonly used across all models from firmware data for multiple models.
[0047] Furthermore, the service terminal 2 compresses the files, excluding common files, for each of the multiple model-specific firmware data, creating a model-specific compressed file for each model (step S15). As a result, as shown in Figure 5, model-specific compressed file 62A for model A, model-specific compressed file 62B for model B, and model-specific compressed file 62C for model C are created. In the following explanation, unless it is necessary to distinguish between these model-specific compressed files 62A for model A, 62B for model B, and 62C for model C, they will simply be referred to collectively as model-specific compressed file 62. These multiple model-specific compressed files 62 are examples of a second compressed file created by compressing only the model-specific files for each of the multiple model-specific firmware data.
[0048] The service technician 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 the created firmware package onto USB memory stick 3 and carries it with them when visiting the customer's site. They then connect USB memory stick 3 to the MFP4 whose firmware data is to be updated and initiate the firmware update.
[0050] In response to this firmware update instruction, the MFP4 reads the firmware package 60 for all models from the connected USB memory 3 (step S17).
[0051] MFP4 decompresses this firmware package 60 and restores the common compressed file 61 for all models and multiple model-specific compressed files 62 (step S18).
[0052] MFP4 extracts a common compressed file 61 for all models and a model-specific compressed file 62 corresponding to its own model from the recovered compressed file (step S19).
[0053] Then, MFP4 decompresses the extracted common compressed file 61 and model-specific compressed file 62 to restore the model-specific firmware data corresponding to its own model (step S20).
[0054] Thus, MFP4, for example MFP4A of model A, obtains its own model-specific firmware data 51A from the all-model common compressed file 61 and the model-specific compressed file 62A for model A, which are included in the firmware package 60, as shown in Figure 5.
[0055] Then, the MFP4 can update the firmware data 421 stored in the main memory 42 using the acquired model-specific firmware data for its own model (step S21).
[0056] The operation of the service terminal 2 to achieve this operation will be described below. Figures 6 to 8 are a series of flowcharts showing an example of the main information processing steps performed by the processor 21 of the service terminal 2, which executes the firmware package creation program, which is the control program. Figures 6 to 8 show the information processing steps after receiving the specification of the target model. Unless otherwise specified, the processing operation of the processor 21 shown in Figures 6 to 8 is assumed to transition from ACTn (where n is a natural number) to ACT(n+1). Also, the steps shown in Figures 6 to 8 are just examples. The steps are not particularly limited as long as similar results can be obtained.
[0057] As shown in Figure 6, as ACT201, the processor 21 obtains the latest model-specific firmware data for all MFP4 models designated as target models from the management server 1 via the network using the communication interface 26, based on the operation of the service technician's input device 24.
[0058] As ACT202, the processor 21 creates a directory in the model-specific firmware data storage unit 231 of the auxiliary storage device 23 that will serve as a storage unit for the acquired model-specific firmware data, according to the acquired model-specific firmware data. If the model-specific firmware data storage unit 231 is prepared as one directory on the auxiliary storage device 23, such as an HDD, then the directory for each model-specific firmware data will be a subdirectory of this directory that will become the model-specific firmware data storage unit 231. Note that since the model-specific firmware data for which to be acquired is known from prior specification, the order of ACT201 and ACT202 can be reversed.
[0059] As ACT203, the processor 21 saves each acquired model-specific firmware data to the corresponding directory in 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 saves the decompressed model-specific firmware data to the model-specific firmware data storage unit 231. As a result, the model-specific firmware data for each model is saved in a different directory for each model.
[0060] As ACT204, the processor 21 stores a file list of firmware data for each model in the model-specific file list storage unit 232, which is prepared as, for example, one directory in the auxiliary storage device 23. Specifically, for each of the multiple model-specific firmware data stored in the model-specific firmware data storage unit 231, the processor 21 checks the files contained in the model-specific firmware data and creates a file list that describes at least the file name and the directory where it is stored for each file. The file list may be described in the form of a file path that concatenates the directory and the file name. Note that the file name in this embodiment may include the file extension. As a result, the model-specific file list storage unit 232 stores a separate file list for each model-specific firmware data for each model.
[0061] As 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 in alphabetical order, as the all-model file list in the all-model file list storage unit 233, which is prepared as, for example, one directory in the auxiliary storage device 23. That is, the processor 21 copies that file list to the all-model file list storage unit 233 and renames the file names to the all-model file list.
[0062] As ACT206, the processor 21 compares the following file list from 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] As ACT207, processor 21 determines whether or not there are any unregistered files in the all-machine file list, that is, whether or not there are any files among the files described in the following file list that are not registered in the all-machine file list. If there are no unregistered files, processor 21 determines NO in ACT207 and proceeds to process ACT209. If there are unregistered files, processor 21 determines YES in ACT207 and proceeds to process ACT208.
[0064] As ACT208, processor 21 adds the unregistered file to the file list for all models.
[0065] As ACT209, the processor 21 determines whether there are any file lists stored in the machine-specific file list storage unit 232 that have not yet been compared. If there are any uncompared file lists, the processor 21 determines YES in ACT209 and proceeds to the process of ACT206. If there are no more uncompared file lists, the processor 21 determines NO in ACT209 and proceeds to the process of ACT210.
[0066] ACT201 through ACT209 described above are file list creation processes that are executed as preprocessing. Next, the processor 21 performs file preparation processes to prepare the files to be included in the firmware package based on this created file list.
[0067] As shown in Figure 7, as ACT210, the processor 21 selects files to be processed in order from the beginning of a list of multiple files listed in the all-model file list storage unit 233 of the auxiliary storage device 23, which is stored in the all-model file list storage unit 233.
[0068] As ACT211, the processor 21 performs a hash comparison with files that have the same filename as the file selected as the file to be processed from among the files contained in each of the multiple model-specific firmware data stored in the model-specific firmware data storage unit 231.
[0069] As ACT212, processor 21 determines whether the hash values match across all firmware data for each model. If they do not match, processor 21 determines NO in ACT212 and proceeds to process ACT214. If they do match, processor 21 determines YES in ACT212 and proceeds to process ACT213.
[0070] In ACT213, the processor 21 records the determination result that the file with that filename is a common file in a CSV file in the determination result storage unit 234, which is prepared as, for example, one of the directories in the auxiliary storage device 23. The determination result storage unit 234 may be in the same directory as other storage units. After that, the processor 21 proceeds to the processing of ACT215.
[0071] ACT214 is performed, and the processor 21 records the determination result that the file with that filename is a model-specific file in the CSV file of the determination result storage unit 234.
[0072] Figure 9 is a diagram illustrating an example of the record structure of a CSV file stored in the judgment result storage unit 234. As shown in Figure 9, each record in the CSV file includes the file name, the storage directory where the file is stored, and the judgment result item. In the case of a common file, the storage directory may be any of the multiple firmware data directories for each model in the model-specific firmware data storage unit 231. In this embodiment, the directory is the firmware data directory for each model that corresponds to the first file list among the multiple file lists stored in the model-specific file list storage unit 232.
[0073] As 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-machine file list stored in the all-machine file list storage unit 233 have been selected as files to be processed. If there are uncompared files, the processor 21 determines YES in ACT215 and proceeds to the processing of ACT210. If there are no uncompared files, the processor 21 determines NO in ACT215 and proceeds to the processing of ACT216.
[0074] Through the processing described in ACT210 to ACT215, files included in firmware data for multiple models are classified into common files and model-specific files.
[0075] ACT216 causes the processor 21 to create a model-specific directory in the model-specific file storage section 236 of the auxiliary storage device 23, which will serve as a storage section for model-specific files, for each model. If the model-specific file storage section 236 is prepared as, for example, a single directory, then each model-specific directory becomes a subdirectory of this directory that will serve as the model-specific file storage section 236.
[0076] As ACT217, the processor 21 selects records to be processed sequentially from the first record of the CSV file stored in the judgment result storage unit 234, and reads the judgment result for that record.
[0077] ACT218 determines whether the read judgment result is a common file or not. If it is not a common file, processor 21 determines NO in ACT218 and proceeds to process ACT220. If it is a common file, processor 21 determines YES in ACT218 and proceeds to process ACT219.
[0078] As ACT219, the processor 21 saves the model-specific firmware data file, identified by the file name and save directory of the record to be processed, which is stored in the model-specific firmware data storage unit 231, to the common file storage unit 235, which is prepared as, for example, one directory in the auxiliary storage device 23. After that, the processor 21 proceeds to the processing of ACT221.
[0079] As ACT220, the processor 21 saves the model-specific firmware data file, which is identified by the file name and save directory of the record to be processed, stored in the model-specific firmware data storage unit 231, as a model-specific file in the model-specific directory corresponding to the save directory created in the model-specific file storage unit 236.
[0080] As ACT221, the processor 21 determines whether or not there are any unprocessed records in the CSV file of the judgment 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 are unprocessed records, the processor 21 determines YES in ACT221 and proceeds to the process of ACT217. If there are no unprocessed records, the processor 21 determines NO in ACT221 and proceeds to the process of ACT222.
[0081] Once the files to be included in the firmware package have been prepared as described in ACT210 to ACT221 above, the processor 21 executes a package creation process to create a firmware package from those files.
[0082] As shown in Figure 8, as ACT222, the processor 21 performs a compression process to compress the common directory, which is a directory of the common file storage unit 235. As a result, multiple common files stored in the common directory are compressed into a single compressed file, creating a common compressed file 61 for all models. The created common compressed file 61 for all models is stored in the compressed file storage unit 237, which is prepared as, for example, one directory in the auxiliary storage device 23.
[0083] As ACT223, the processor 21 performs a compression process to compress each of the multiple model-specific directories, which are each formed as separate directories in the model-specific file storage unit 236. As a result, multiple 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 multiple model-specific compressed files 62 created 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 combines all the compressed files stored in the compressed file storage unit 237.
[0085] As ACT225, processor 21 stores a compressed file containing all the created compressed files as a firmware package 60 for all models on USB memory 3 via USB interface 27.
[0086] Subsequently, although not specifically illustrated, 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 then terminates the process.
[0087] Next, the operation of the MFP4 will be described. Figure 10 is a flowchart showing an example of the main information processing steps performed by the processor 41 of the MFP4. Figure 10 shows the information processing steps when the USB memory 3 is connected to a USB port (not shown) and a service technician inputs a predetermined firmware update instruction via the control panel 44. Note that the steps shown in Figure 10 are just one example, and the procedure is not particularly limited as long as similar results can be obtained.
[0088] As ACT401, the processor 41 reads the firmware package 60 for all models from the USB memory 3 via the USB interface 46 and saves it to a single temporary storage directory prepared on the auxiliary storage device 43.
[0089] As ACT402, processor 41 decompresses the firmware package 60 stored in this temporary storage directory, thereby restoring the common compressed file 61 for all models and the model-specific compressed files 62 for multiple models.
[0090] As ACT403, the processor 41 saves the restored all-model common compressed file 61 to a working directory prepared on the auxiliary storage device 43. This saving process may involve copying the restored all-model common compressed file 61 from the temporary storage directory to the working directory, or moving it to the working directory.
[0091] As ACT404, processor 41 saves the machine-specific compressed file 62 for its own model from among the machine-specific compressed files 62 for multiple models that have been restored, to the working directory where the common compressed file 61 for all models is saved. This saving process may be a copy or a move.
[0092] As ACT405, processor 41 decompresses two compressed files stored in the working directory: a common compressed file 61 for all models and a model-specific compressed file 62 for its own model. This restores the model-specific firmware data corresponding to its own model.
[0093] Therefore, ACT406 executes a firmware data update process that updates the firmware data 421 stored in the main memory 42 using the model-specific firmware data restored to this working directory.
[0094] Subsequently, although not specifically illustrated, processor 41 deletes the contents of the temporary storage directory and the working directory, and then terminates processing.
[0095] As described above, the service terminal 2, which is an example of a firmware package creation device according to the embodiment, comprises a processor 21 and an auxiliary storage device 23, which is an example of a storage device, and creates a firmware package that includes multiple firmware data for an MFP4, which is an example of a device of multiple models, and the auxiliary storage device 23 stores multiple model-specific firmware data 51A, 51B, 51C, ... for multiple models of MFP4A, 4B, 4C, ... in a model-specific firmware data storage unit 231. The processor 21 classifies the files contained in each of the multiple model-specific firmware data into common files used across all models and model-specific files used only for the model targeted by that firmware data. Based on this classification, it compresses only the common files from the multiple model-specific firmware data to create a common compressed file for all models, which is an example of a first compressed file. It also compresses only the model-specific files from each of the multiple model-specific firmware data to create a model-specific compressed file, which is an example of a second compressed file, which is a model-specific compressed file, which is a example of a second compressed file. This process is repeated for all of the multiple model-specific firmware data to create multiple model-specific compressed files 62, for example, model-specific compressed file 62A for model A, model-specific compressed file 62B for model B, and model-specific compressed file 62C for model C. The processor 21 then compresses the common compressed file 61 and the multiple model-specific compressed files 62 together to create a single firmware package 60. Therefore, according to this embodiment, even if firmware data is created individually for each of the multiple models of devices such as MFP4, it is possible to create a firmware package that can support multiple models of devices. Traditionally, there has been only one type of firmware data for each model on the market. Managing this one-type firmware data for each model is cumbersome, and the amount of firmware data that needs to be managed is also large. Therefore, in this embodiment, when creating firmware data, each file included in the firmware data for each model is classified as either common to all models or unique to each model. According to this classification, the firmware data for each model is divided into a common part and a unique part for each model, and each is provided as a single compressed file. This reduces the amount of data that is common to all firmware data for multiple models, making it possible to provide firmware data for multiple models in a smaller size. In addition, in this embodiment, firmware data for multiple models is provided as a single firmware package, making management easier.
[0096] In this embodiment, the processor 21 classifies files into those common to all models and those not common to all models by comparing hashes of files with the same file name included in firmware data for multiple models. Therefore, by performing hash comparison, it is possible to easily determine whether or not a file is a duplicate and classify it into files common to all models and files not common to all models.
[0097] In particular, according to the embodiment, if even one of the multiple files with the same filename included in the firmware data for each model has a different hash, the processor 21 classifies that file as a model-specific file for all models. Therefore, it is possible to reliably classify files common to all models from files not common to all models.
[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 the same file name, 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 a hash comparison on each file listed in this file list. Therefore, by registering all files contained in the firmware data for each of the multiple models in the file list and then performing hash comparisons, it becomes possible to classify files completely and reliably without any omissions.
[0099] Furthermore, the service terminal 2 is equipped with 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 to and detached from the terminal, and the processor 21 stores the created firmware package in the USB memory 3 via the USB interface 27. Therefore, it becomes possible to easily take the firmware package with you.
[0100] Furthermore, the firmware update system SYS according to this embodiment includes, in addition to a service terminal 2 which is an example of a firmware package creation device, a processor 41 and an auxiliary storage device 43 which is an example of a storage device, and a plurality of MFP4 which are examples of devices for multiple models that update firmware data using the firmware package created by the service terminal 2.The processor 41 of the MFP4 decompresses the firmware package and stores a common compressed file 61 which is an example of a first compressed file and a plurality of model-specific compressed files 62 which are examples of a plurality of second compressed files in the auxiliary storage device 43.The processor 41 of the MFP4 decompresses the common compressed file 61 and the model-specific compressed file 62 that corresponds to the model in question from among the plurality of model-specific compressed files 62 to restore the model-specific firmware data for that model.The processor 41 of the MFP4 updates the firmware data 421 stored in the main memory 42 by applying the model-specific firmware data thus restored. Therefore, according to this embodiment, even if firmware data is created individually for each of the multiple models of MFP4 or other devices, 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 that firmware package and update its firmware data.
[0101] [Differentiation] Figure 11 is a diagram showing the first part of a flowchart illustrating an example of the main information processing steps performed by the processor 21 of the service terminal 2 in a modified example. The second and third parts are the same as in the embodiment. As shown in 11, in the modified example, the processing of ACT205 to ACT209 in the embodiment is changed to the processing of ACT251 and ACT252 in Figure 11.
[0102] In other words, as ACT251, the processor 21 registers the contents of multiple file lists stored in the model-specific file list storage unit 232 as a total model file list in the total model file list storage unit 233. Specifically, the processor 21 reads the multiple file lists stored in the model-specific file list storage unit 232 one by one from the beginning and adds their contents to the total model file list provided in the total model file list storage unit 233.
[0103] As ACT252, processor 21 deletes all but one of the duplicate files if there are duplicate files in the file list for all models registered in the file list storage unit 233 for all models.
[0104] Even if the file list creation process performed as a preprocessing step is carried out in this manner, the all-model file list storage unit 233 can create a file list of files included in the firmware data for each of the multiple models, excluding files with the same file name, just as in the embodiment.
[0105] In the above embodiment, the firmware package creation program, which is a control program executed by the processor 21 of the service terminal 2, which is an example of a firmware package creation device, may be configured to be provided by recording it on a computer-readable recording medium such as a CD-ROM. Alternatively, the control program may be stored on a computer connected to a network such as the Internet and provided by allowing download via the network.
[0106] Furthermore, although the explanation described providing the firmware package created on the service terminal 2 to the MFP4, an example of a device targeted for firmware data update, via the USB memory 3, it is also possible to transmit the firmware package from the communication interface 26 of the service terminal 2 to the communication interface 45 of the MFP4 via a communication network. Alternatively, instead of direct communication between them, the firmware package may be transmitted via a file server on the cloud or similar.
[0107] Alternatively, the management server 1 could be equipped with the functionality of a firmware package creation device, allowing the service technician terminal 2 to specify multiple device models to be taken out. The management server 1 would then create the firmware package, which could then be downloaded and used by the service technician terminal 2 or MFP4.
[0108] Furthermore, the information processing flow described above by processors 21 and 41 with reference to the flowchart is merely an example and is not limited to this order. For example, as mentioned above, the order of ACT201 and ACT202 may be reversed, or they may be performed in parallel. In this way, the order of processing may be changed or multiple processing may be performed in parallel, as long as there is no discrepancy with preceding or succeeding 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 of course, one or more of them may be provided in the main memory 22.
[0110] Furthermore, the functions described in each of the embodiments above can be implemented not only using hardware, but also by loading a program containing each function into a computer using software. Additionally, each function may be configured using either software or hardware, as appropriate.
[0111] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These novel embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims of the invention and its equivalents. [Explanation of Symbols]
[0112] 1...Management server, 2...Service technician terminal, 3...USB memory, 4...MFP, 4A...MFP for model A, 4B...MFP for model B, 4C...MFP for 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...Firmware data for model A (specific to each model), 51B...Firmware data for model B (specific to each model), 51C...Firmware data for model C (specific to each model), 60...Firmware package, 61...Compressed file common to all models, 62...Compressed file specific to each model, 62A...Compressed file specific to each model for model A, 62B...Compressed file specific to each model 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. A firmware package creation device comprising a processor and a memory device, which creates a firmware package containing multiple firmware data for multiple types of devices, The storage device stores firmware data for multiple devices of multiple models, The aforementioned processor, For each of the aforementioned multiple model-specific firmware data sets, the multiple files contained within that model-specific firmware data are classified into common files used in common across all models and model-specific files used only on the model targeted by that model-specific firmware data. Based on the above classification, a first compressed file is created by compressing only the common files from the firmware data for each of the multiple models. Based on the above classification, a second compressed file is created by compressing only the model-specific files for each of the multiple model-specific firmware data, and this process is performed for all of the multiple model-specific firmware data to create multiple second compressed files. A single firmware package is created 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 hash comparison of files with the same file name included in the firmware data for each of the plurality of models.
3. The firmware package creation device according to claim 2, wherein the processor classifies a file as a model-specific file for all models if any of the multiple files with the same filename included in the firmware data for each of the multiple models have different hashes.
4. The aforementioned processor, A file list of files included in the firmware data for each of the multiple models, with duplicate filenames removed, is created in the storage device. For each file listed in the aforementioned file list, perform the hash comparison. A 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. A firmware package creation device according to claim 1.
6. When executed by the processor of a firmware package creation device comprising a processor and a memory device, which creates a firmware package containing multiple firmware data for multiple types of devices, The aforementioned processor, For each of the multiple model-specific firmware data for the multiple device models stored in the aforementioned storage device, the multiple files contained in the model-specific firmware data are classified into common files used in common across all models and model-specific files used only on the model targeted by the model-specific firmware data. Based on the above classification, a first compressed file is created by compressing only the common files from the firmware data for each of the multiple models. Based on the above classification, a second compressed file is created by compressing only the model-specific files for each of the multiple model-specific firmware data, and this process is performed for all of the multiple model-specific firmware data to create multiple second compressed files. The first compressed file and the plurality of second compressed files are compressed together to create a single firmware package. A firmware package creation program.
7. A firmware package creation device according to claim 1, A plurality of devices comprising a processor and a memory device, which update firmware data using the firmware package created by the firmware package creation device, Equipped with, The processor of the aforementioned device is The firmware package is decompressed, and the first compressed file and the plurality of second compressed files are stored in the device's storage device. By decompressing the first compressed file and the second compressed file corresponding to the model from among the plurality of second compressed files, the model-specific firmware data for that model is restored. Apply the firmware data for each model. Firmware update system.
Citation Information
Patent Citations
Distribution system and distribution method
JP2015079372A