WO2009017545A1 - Firmware retrieval across a network - Google Patents

Firmware retrieval across a network Download PDF

Info

Publication number
WO2009017545A1
WO2009017545A1 PCT/US2008/007584 US2008007584W WO2009017545A1 WO 2009017545 A1 WO2009017545 A1 WO 2009017545A1 US 2008007584 W US2008007584 W US 2008007584W WO 2009017545 A1 WO2009017545 A1 WO 2009017545A1
Authority
WO
WIPO (PCT)
Prior art keywords
firmware
network
address
boot loader
nas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2008/007584
Other languages
English (en)
French (fr)
Inventor
David H. Hanes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to BRPI0812697-6A2A priority Critical patent/BRPI0812697A2/pt
Priority to DE112008001773T priority patent/DE112008001773T5/de
Priority to GB1001248.2A priority patent/GB2464042B/en
Priority to CN200880100967XA priority patent/CN101765837B/zh
Publication of WO2009017545A1 publication Critical patent/WO2009017545A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44—Arrangements for executing specific programs
    • G06F9/4401—Bootstrapping
    • G06F9/4416—Network booting; Remote initial program loading [RIPL]
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00—Arrangements for software engineering
    • G06F8/60—Software deployment
    • G06F8/61—Installation
    • G06F8/63—Image based installation; Cloning; Build to order
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00—Arrangements for software engineering
    • G06F8/60—Software deployment
    • G06F8/65—Updates
    • G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44—Arrangements for executing specific programs
    • G06F9/445—Program loading or initiating

Definitions

  • the NAS device comprises a non-volatile storage medium such as a hard disk drive that is shareable by the various computers on the network.
  • a NAS device has code (e.g., firmware) that is loaded during initialization of the NAS device and executed by a processor in the NAS device to bestow the NAS device with some, or all, of its functionality.
  • the firmware may become unavailable due to, for example, corruption of the firmware itself or a malfunctioning of the hard drive on which the firmware is stored. If the firmware is unavailable, the NAS device is generally unusable.
  • Figure 1 shows a system in accordance with various embodiments
  • Figure 2 shows a block diagram of a network-attached storage device in accordance with various embodiments
  • Figure 3 shows a method in accordance with various embodiments.
  • Coupled or “couples” is intended to mean either an indirect, direct, optical or wireless electrical connection.
  • a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, or through a wireless electrical connection.
  • system refers to a combination of one or more components and comprises, for example, a computer, a subsystem within a computer, a network-attached storage device, a subsystem within a network-attached storage device, and a networked combination of one or more network devices.
  • FIG. 1 shows a system 10 in accordance with various embodiments.
  • system 10 comprises a network-attached storage (NAS) device 12, one or more client computers 14, and one or more server 16 coupled together via wide area network (WAN) 20.
  • the NAS 12 comprises non-volatile storage which can be shared by any one or more client computers 14 over a local area network (LAN) 15.
  • the NAS 12 communicates with the client computers 14 over the LAN 15 and to the server 16 via the WAN 20.
  • each client computer 14 comprises a desktop computer, a portable computer (e.g., a notebook computer, a handheld computer) or other type of computing device that, for example, can write data (e.g., files) to and retrieve data from NAS 12.
  • Figure 2 shows an embodiment of NAS 12.
  • the computers 14 and servers 16 may comprise the same or similar architecture.
  • Figure 2 [0012]
  • NAS 12 comprises a processor 32 coupled to a first non-volatile storage (NVS) 34, a second non-volatile storage 40, a network interface 42, and volatile storage (VS) 46.
  • the network interface 42 provides connectivity to either or both of the LAN 15 and WAN 20.
  • the first non-volatile storage 34 comprises a hard disk drive.
  • the nonvolatile storage 34 may be other than a hard disk drive (e.g., Flash memory, compact disk read-only memory (CD ROM)).
  • the non-volatile storage 34 comprises firmware 36.
  • the firmware 36 is executable by the processor 32 and imparts some or all of the functionality of the NAS 12.
  • the second non-volatile storage 40 comprises, for example, Flash memory or any form of read-only memory (ROM) such as electrically-erasable programmable ROM (EEPROM).
  • the second non-volatile storage 40 may comprise a hard disk drive or CD ROM in some embodiments.
  • the non-volatile storage 40 stores a boot loader (BL) 44 and a subnet value 38.
  • the boot loader 44 comprises code that is executable by the processor 32.
  • the processor 32 begins execution of the boot loader 44.
  • At least one of the functions performed by the boot loader 44 is to load the firmware 36 from the first non-volatile storage 34 into volatile storage 46.
  • volatile storage 46 comprises random access memory (RAM).
  • a copy of firmware 36 is then executed from volatile storage 46.
  • the firmware 36 becomes corrupted or that the nonvolatile storage 34 on which the firmware 36 is stored becomes non-operative. In either case, the firmware 36 is not available for execution by the processor 32.
  • the firmware 36 being unavailable for execution renders the NAS device 12 partially or entirely inoperative.
  • the boot loader 44 determines whether firmware 36 is available to be executed. If the boot loader determines that firmware 36 is not available to be executed, the boot loader 44 causes the processor to determine a location across a network to retrieve a copy of a firmware image to replace the unavailable firmware 36.
  • the process is "automatic" in some embodiments, meaning that no user involvement is required. In some embodiments, the location across the network at which a [0016]
  • copy of replacement firmware image is found may be at a location across the LAN 15 or WAN 20.
  • the example of Figure 2 illustrates that a server 16 comprises a replacement firmware copy 18 that can be provided across WAN 20 to the NAS 12.
  • the boot loader 44 determines whether the firmware 36 is available in accordance with any suitable technique. In at least one embodiment, the boot loader 44 computes a checksum or hash of the firmware 36 and compares the computed value to a pre-stored value (a checksum or hash previously computed based on known good version of the firmware 36). If the values do not match (the newly computed checksum/hash and the previously pre-stored value), the firmware 36 is determined to be corrupted and thus unavailable for execution. Also or alternatively, the boot loader 44 may experience an error accessing the non-volatile storage 34 which may be indicative of an error with the non-volatile storage 34 itself.
  • the non-volatile storage 34 is new (e.g., the user replaced a defective non-volatile storage 34 with a new storage unit), the new non-volatile storage 34 may not have any firmware 36.
  • the boot loader 44 detects the absence of firmware 36 and thus determines firmware 36 to be unavailable for execution.
  • the replacement firmware copy (also referred to as an "image") located on the network may be a copy that is identical to the currently firmware 36 on the NAS. In other embodiments, the replacement firmware copy is not identical but is sufficient, at any rate, to enable the NAS device 12 to operate correctly.
  • the replacement firmware copy is loaded into non-volatile storage 34, and the NAS device is re-booted. Re-booting the NAS device 12 causes the boot loader 44 to load and begin execution of the newly replaced firmware.
  • the boot loader 44 overwrites the current firmware 36, which may be corrupted, with the replacement firmware retrieved over the network.
  • the non-volatile storage 34 may be inoperative, and a user thus removes and replaces the non-volatile storage 34.
  • the newly installed non-volatile storage 34 may not contain a firmware image 36 at all.
  • the boot loader 34 determines that no firmware 36 is present (i.e., firmware is unavailable for execution), retrieves a new copy of suitable firmware for execution on the NAS device 12, stores the retrieved firmware on the newly installed non-volatile storage 34, and re-boots the NAS 12 to thereby cause the newly loaded firmware to be executed.
  • the boot loader 44 accesses (e.g., is encoded with or otherwise retrieves from any of the storages 34, 40, or 46) an identifying value that identifies the NAS 12 or its firmware 36.
  • Examples of such a value comprise a serial number of the NAS device 12, a model number of the NAS 12, a revision identifier of the firmware 36, etc.
  • the boot loader 44 uses this identifying value to locate a suitable replacement firmware copy on the network. Locations on the network (e.g., websites) store and make available one or more firmware copies to boot loaders 44 of NAS devices 12. Each firmware copy at such network locations also has an identifying value associated therewith that is indicative of the NAS device 12 or NAS device firmware 36 for which that firmware copy is suitable. In some embodiments, the boot loader 44 compares the NAS device's identifying value to the identifying value of the various firmware copies on the network and retrieves the firmware copy for which the identifying values match.
  • the boot loader submits a request to the network location for a firmware image that is suitable for use with the NAS device's identifying value (i.e., the NAS device's identifying value is part of the request by the boot loader 44).
  • the network location e.g., server 16
  • IP internet protocol
  • the boot loader 44 uses Dynamic Host Configuration Protocol (DHCP) to allocate an IP address to the NAS device 12.
  • DHCP Dynamic Host Configuration Protocol
  • the NAS device 12 comprises a subnet value 48 which is stored in the non-volatile storage 40.
  • the subnet value 38 stored in the non-volatile storage 40 comprise the NAS device's last known subnet value (i.e., the subnet value last used by the NAS device in its operative state).
  • the NAS device's most recently assigned IP address is "192.168.0.100”
  • the subnet value is "198.168.0.”
  • the ending '100 is referred to as an "extension.”
  • the NAS device's IP address may be static, in which case the IP address does not change, or dynamic, in which case the IP address changes over time (e.g., each time the NAS device initializes and connects to the network).
  • the extension changes, not the subnet value. For example, the next time an IP address is assigned to the NAS device 12, the extension may change to "2," resulting in an IP address of "192.168.0.2.”
  • the boot loader 44 before the NAS device's boot loader 44 can access the network (e.g., server 16 across WAN 20), the boot loader 44 generates a suitable IP address for use by the NAS device 12 for use in retrieving a replacement firmware image on the network.
  • the IP address generated by the boot loader 44 should be an IP address not already in use by another device on the network.
  • the boot loader 44 retrieves the subnet value 38 (which comprises some, but not all, of a suitable IP address for the NAS device 12), and tries different extensions until an extension is found that results in an IP address not already in use by another device.
  • the boot loader may initially try “192.168.0.1 " (extension of "1") as an IP address.
  • the boot loader 44 will broadcast a "ping" message using that IP address. If the boot loader 44 receives a response, which would occur if another device is already assigned IP address 192.168.0.1 , then the boot loader 44 determines that 192.168.0.1 is not a suitable IP address for the NAS device 12 to use. The boot loader then increments the extension to "2" to generate a [0030]
  • second IP address of 192.168.0.2 and again broadcasts a ping message, this time using 192.168.0.2 as its IP address. If the boot loader 44 again receives a response, then the boot loader 44 determines that 192.168.0.2 is not a suitable IP address for the NAS device 12 to use. The boot loader 44 repeats this process, each time incrementing the IP address extension until an IP address is found for which no response to a ping message is received. The boot loader 44 uses that IP address in its attempt to locate a replacement firmware image from the network.
  • Figure 3 illustrates a method 50 in accordance with various embodiments.
  • the actions listed in Figure 3 can be performed in an order other than shown and two or more of the actions can be performed concurrently or be combined.
  • the boot loader 44 determines that the NAS device's firmware 36 is not available for execution.
  • the boot loader 44 generates a suitable IP address for use by the NAS device 12 (i.e., an IP address that is not in use by another device on the network). In some embodiments, the boot loader 44 generates the IP address after determining that the firmware 36 is unavailable.
  • the boot loader determines a location to access on the network at which a possible replacement firmware image may be provided.
  • the IP address or uniform resource locator (URL) of the possible network location is encoded into the boot loader 44 itself.
  • the IP address or URL is stored in any of the storages 34, 40, or 46 of the NAS device 12.
  • method 50 comprises a suitable replacement firmware image being found (e.g., using the identifying values as explained above), retrieved from the network location and stored on the NAS device 12.
  • the boot loader 44 causes the NAS device 12 to be re-booted to enable the newly retrieved and stored replacement firmware image to be executed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
PCT/US2008/007584 2007-07-30 2008-06-17 Firmware retrieval across a network Ceased WO2009017545A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
BRPI0812697-6A2A BRPI0812697A2 (pt) 2007-07-30 2008-06-17 "sistema para recuperar firmware de uma rede e método para recuperar firmware de uma rede"
DE112008001773T DE112008001773T5 (de) 2007-07-30 2008-06-17 Firmwarewiedergewinnung über ein Netzwerk
GB1001248.2A GB2464042B (en) 2007-07-30 2008-06-17 Firmware retrieval across a network
CN200880100967XA CN101765837B (zh) 2007-07-30 2008-06-17 网络上的固件检索

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/830,106 2007-07-30
US11/830,106 US8065510B2 (en) 2007-07-30 2007-07-30 System and methods of retrieving firmware between network locations

Publications (1)

Publication Number Publication Date
WO2009017545A1 true WO2009017545A1 (en) 2009-02-05

Family

ID=40304608

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/007584 Ceased WO2009017545A1 (en) 2007-07-30 2008-06-17 Firmware retrieval across a network

Country Status (7)

Country Link
US (1) US8065510B2 (pt)
CN (1) CN101765837B (pt)
BR (1) BRPI0812697A2 (pt)
DE (1) DE112008001773T5 (pt)
GB (1) GB2464042B (pt)
TW (1) TW200910092A (pt)
WO (1) WO2009017545A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2195737B1 (en) * 2007-10-03 2018-07-11 ABB Schweiz AG Method for reprogramming applications in embedded devices and related device
CN101232397B (zh) * 2008-02-22 2010-10-27 成都市华为赛门铁克科技有限公司 多控制器系统修复的方法和装置
TW201033808A (en) * 2009-03-10 2010-09-16 Vivotek Inc System recovery method and embedded system with auto-recovery function
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8966101B2 (en) * 2009-08-10 2015-02-24 Sling Media Pvt Ltd Systems and methods for updating firmware over a network
TWI385991B (zh) * 2009-11-04 2013-02-11 Avision Inc 可便於使用者取得裝置資訊的電子裝置
US9256744B2 (en) * 2012-04-10 2016-02-09 Asmedia Technology Inc. System-on-chip and booting method thereof
JP6040767B2 (ja) * 2012-12-28 2016-12-07 富士通株式会社 配信システム、配信方法、及びプログラム
US9497266B2 (en) * 2013-02-22 2016-11-15 International Business Machines Corporation Disk mirroring for personal storage
CN103677912B (zh) 2013-12-06 2017-12-01 华为技术有限公司 芯片及其启动方法
EP3080693B1 (en) * 2013-12-13 2019-07-24 Razer (Asia-Pacific) Pte Ltd. Devices, updaters, methods for controlling a device, and methods for controlling an updater
US9594910B2 (en) 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform
US9965632B2 (en) * 2014-12-22 2018-05-08 Capital One Services, Llc System and methods for secure firmware validation
US10552171B2 (en) * 2016-11-16 2020-02-04 International Business Machines Corporation Efficient booting system
DK3703390T3 (da) 2019-02-27 2024-02-05 Sonova Ag Distribution af software mellem høreapparater

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040091392A (ko) * 2003-04-21 2004-10-28 주식회사 에트피아텍 웹을 이용한 원격 백업관리 시스템 및 그 시스템을 운용한백업관리 방법
US6968369B2 (en) * 2001-09-27 2005-11-22 Emc Corporation Remote data facility over an IP network
US6986008B2 (en) * 2003-01-14 2006-01-10 International Business Machines Corporation Backup firmware in a distributed system
US7134044B2 (en) * 2002-08-16 2006-11-07 International Business Machines Corporation Method, system, and program for providing a mirror copy of data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625081A (en) * 1982-11-30 1986-11-25 Lotito Lawrence A Automated telephone voice service system
US6738923B1 (en) * 2000-09-07 2004-05-18 International Business Machines Corporation Network station adjustable fail-over time intervals for booting to backup servers when transport service is not available
US7228415B2 (en) * 2001-11-02 2007-06-05 General Instrument Corporation Method and apparatus for transferring a communication session
US7024551B2 (en) * 2003-01-07 2006-04-04 Sun Microsystems, Inc. Method and apparatus for updating boot code using a system controller
US7363356B1 (en) * 2003-03-24 2008-04-22 Cisco Technology, Inc. Boot modification of registry data for iSCSI network boot operations
TWI307015B (en) * 2003-06-03 2009-03-01 Hon Hai Prec Ind Co Ltd System and method for automatically bootstrap with double boot areas in a single flash rom
US7406591B2 (en) * 2004-06-29 2008-07-29 Intel Corporation Booting from a remote BIOS image
JP2006172098A (ja) 2004-12-15 2006-06-29 Nec Access Technica Ltd パケット通信装置、パケット通信装置におけるリブート方法、及び、プログラム
CN100405297C (zh) 2005-05-18 2008-07-23 鸿富锦精密工业(深圳)有限公司 嵌入式系统出厂预设值初始设定程序的更新方法
EP1886459B1 (en) * 2005-05-31 2018-07-11 Telecom Italia S.p.A. Method for auto-configuration of a network terminal address
US20060288202A1 (en) 2005-06-17 2006-12-21 Mark Doran Method for network restart
US7478147B2 (en) * 2005-07-21 2009-01-13 International Business Machines Corporation Method and apparatus for a secure network install
US7467295B2 (en) * 2005-10-07 2008-12-16 International Business Machines Corporation Determining a boot image based on a requesting client address
US20070254710A1 (en) * 2006-05-01 2007-11-01 Symbol Technologies, Inc. Wireless switch with integrated universal serial bus interface
US7673131B2 (en) * 2006-05-05 2010-03-02 Microsoft Corporation Booting an operating system in discrete stages
US7668945B2 (en) * 2006-08-18 2010-02-23 Intel Corporation Network booting using a platform management coprocessor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968369B2 (en) * 2001-09-27 2005-11-22 Emc Corporation Remote data facility over an IP network
US7134044B2 (en) * 2002-08-16 2006-11-07 International Business Machines Corporation Method, system, and program for providing a mirror copy of data
US6986008B2 (en) * 2003-01-14 2006-01-10 International Business Machines Corporation Backup firmware in a distributed system
KR20040091392A (ko) * 2003-04-21 2004-10-28 주식회사 에트피아텍 웹을 이용한 원격 백업관리 시스템 및 그 시스템을 운용한백업관리 방법

Also Published As

Publication number Publication date
BRPI0812697A2 (pt) 2014-12-23
US8065510B2 (en) 2011-11-22
GB2464042A (en) 2010-04-07
CN101765837B (zh) 2013-03-06
GB2464042B (en) 2012-06-13
GB201001248D0 (en) 2010-03-10
US20090037717A1 (en) 2009-02-05
DE112008001773T5 (de) 2010-08-12
CN101765837A (zh) 2010-06-30
TW200910092A (en) 2009-03-01

Similar Documents

Publication Publication Date Title
US8065510B2 (en) System and methods of retrieving firmware between network locations
US10762160B2 (en) Delivering content to electronic devices using local caching servers
US10154109B2 (en) Delivering content to electronic devices using local caching servers
RU2413982C2 (ru) Хранение и разрешение в dns филиала
US7363514B1 (en) Storage area network(SAN) booting method
TWI227441B (en) Firmware upgrade method for digital subscriber line device
US20030126242A1 (en) Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
CN114868117B (zh) 通过控制总线进行的对等存储设备消息传送
US20030005276A1 (en) Method and system for booting of a target device in a network environment based on automatic client discovery and scan
US20070157016A1 (en) Apparatus, system, and method for autonomously preserving high-availability network boot services
US20030070063A1 (en) Configuration file caching
US20050132360A1 (en) Network boot sequence in the absence of a DHCP server
US9697095B2 (en) Switch failure recovery system
CN109951482A (zh) 用户终端及其区块链域名解析方法
US10331427B2 (en) Capturing and deploying an operation system in a computer environment
US20200034155A1 (en) Bare metal device management
JP2009020882A (ja) 組み込みシステム内のファームウエアをアップグレードする装置と方法
WO2011034548A1 (en) System including a virtual disk
US9864651B2 (en) Receiving an update code prior to completion of a boot procedure
US7991850B2 (en) Resilient system partition for personal internet communicator
US7209481B2 (en) System and method for automated network address cloning for routers
US20090164555A1 (en) Initiating execution of server-controlled tasks
CN117938641B (zh) 一种网络地址的配置方法及计算设备
US8335820B1 (en) Techniques for persistence of connections
JP2006172098A (ja) パケット通信装置、パケット通信装置におけるリブート方法、及び、プログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880100967.X

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08768577

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 7646/CHENP/2009

Country of ref document: IN

ENP Entry into the national phase

Ref document number: 1001248

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20080617

WWE Wipo information: entry into national phase

Ref document number: 1001248.2

Country of ref document: GB

RET De translation (de og part 6b)

Ref document number: 112008001773

Country of ref document: DE

Date of ref document: 20100812

Kind code of ref document: P

122 Ep: pct application non-entry in european phase

Ref document number: 08768577

Country of ref document: EP

Kind code of ref document: A1

REG Reference to national code

Ref country code: DE

Ref legal event code: 8607

ENP Entry into the national phase

Ref document number: PI0812697

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20100115