KR20100050380A - 자동 펌웨어 복원 - Google Patents

자동 펌웨어 복원 Download PDF

Info

Publication number
KR20100050380A
KR20100050380A KR1020090074724A KR20090074724A KR20100050380A KR 20100050380 A KR20100050380 A KR 20100050380A KR 1020090074724 A KR1020090074724 A KR 1020090074724A KR 20090074724 A KR20090074724 A KR 20090074724A KR 20100050380 A KR20100050380 A KR 20100050380A
Authority
KR
South Korea
Prior art keywords
firmware
hardware device
settings
configuration settings
error
Prior art date
Application number
KR1020090074724A
Other languages
English (en)
Other versions
KR101143679B1 (ko
Inventor
키스 엠 캠프벨
윌리엄 지 페이건
마크 브이 스트라쿠자
마이클 엔 워맥
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
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 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100050380A publication Critical patent/KR20100050380A/ko
Application granted granted Critical
Publication of KR101143679B1 publication Critical patent/KR101143679B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Abstract

일실시예에 의하면, 손상된 네트워크 하드웨어 장치는 자동으로 검사 및 복구될 수 있다. 디폴트 부트 시퀀스는 일시 정지될 수 있고, 또한, 외부 복구 장치는, 최소한 개입하는 방식(minimally invasive manner)으로 파일 및 구성 세팅을 선택적으로 복구함으로써, 상기 손상된 코드를 검사 및 복구하여, 가능한 많은 실행 가능한 사용자 세팅을 유지할 수 있다. 그 후, 네트워크 하드웨어 장치는 복구된 펌웨어로부터 리부트될 수 있다.

Description

임베디드 장치의 복구 방법 및 시스템, 컴퓨터 프로그램 제품{AUTOMATED FIRMWARE RECOVERY}
본 발명은 전자 장치 상의 손상된(corrupted) 펌웨어의 검출 및 복구에 관한 것이다.
대부분의 전자 장치는 전자적으로 업데이트 가능한 펌웨어에 의해 제어된다. 그러한 장치는 손상된 플래시 이미지에 의해 야기되는 잠재적 붕괴에 직면하기 쉽다. 예컨대, 손상된 플래시 이미지는 펌웨어의 부적절한 플래시 업데이트에서 기인할 수 있다. 네트워킹된 장치는, 네트워크 상의 분산된 존재(presence) 때문에, 손상된 플래시 이미지를 특히 갖기 쉽다. 예컨대, 관리 모듈 상의 소정의 파일이 유효하지 못한 구성으로 가득차면, 블레이드 서버 새시(blade server chassis)를 위한 관리 모듈의 펌웨어는 손상될 수 있다. 그 결과, 관리 모듈은 사용자가 해당 모듈에 액세스하지 못하게 하는 리부트(reboot) 또는 소프트웨어 루프에 갇힐 수 있다. 이러한 상태에서, 관리 모듈은 사용할 수 없게 될 수 있고, 사용자는 임베디드 소프트웨어의 기지의 양호한 이미지를 갖는 관리 모듈을 재로드할 수 없다.
본 발명의 일실시예는 부적절하게 프로그램밍된 임베디드 장치를 복구하는 방법을 제공한다. 하드웨어 장치의 조작에 사용되는 펌웨어와, 하드웨어 장치의 조작시에 펌웨어에 의해 사용되는 구성 세팅(configuration settings)의 한쪽 또는 양쪽은, 전자적으로 검사된다. 펌웨어 내의 에러 또는 하드웨어 장치의 부적절한 조작을 야기하는 펌웨어나 구성 세팅의 에러가 식별된다. 펌웨어와 구성 세팅의 한쪽 또는 양쪽에 대해 자동적으로 선택된 변경이 이루어져, 펌웨어의 전부 또는 구성 세팅의 전부를 오버라이팅함 없이, 상기 식별된 에러를 정정한다. 상기 방법은, 예컨대, 부적절하게 프로그래밍된 하드웨어 장치를 복구하기 위해, 컴퓨터 사용 가능한 프로그램 코드를 실행하는 컴퓨터에 의해 수행될 수 있고, 상기 컴퓨터에서 사용 가능한 프로그램 코드는 컴퓨터 사용 가능한 매체 상에 구현된다.
다른 실시예는 하드웨어 장치 및 외부 복구 장치를 포함하는 시스템을 제공한다. 하드웨어 장치는, 전자적으로 업데이트 가능한 펌웨어 및 하드웨어 장치의 조작시에 펌웨어에 의해 액세스 가능한 구성 세팅을 갖는 내부 저장 장치와, 그 내부 저장 장치와 인터페이스로 접속되어 있는 내부 데이터 통신 포트와, 외부 데이터 통신 포트를 포함한다. 외부 복구 장치는 하드웨어 장치 상의 외부 데이터 통신 포트와 선택적으로 접속하도록 구성된다. 외부 복구 장치는, 펌웨어 및 구성 세팅을 검사하여 선택적으로 복구하도록 구성된 기능적 정정 코드(functional correction code)를 갖는 플래시 메모리를 포함한다.
본 발명에 의하면, 손상된 네트워크 하드웨어 장치가 자동으로 검사 및 복구될 수 있다.
본 발명은 다중 서버 새시(multi-server chassis) 내의 관리 모듈과 같은 네트워크 하드웨어 장치 상의 펌웨어를 자동으로 복구하는 시스템, 방법, 및 소프트웨어로서 구현될 수 있다. 하나의 실시예에서, 외부 복구 장치 또는 "복구 키(repair key)"가 네트워크 하드웨어 장치에 꽂혀져서, 네트워크 하드웨어 장치 상의 손상된 펌웨어를 검사 및 복구한다. 복구 키로부터 실행되는 프로그램 코드를 포함하는 복구 프로그램은, 펌웨어가 저장되는 내부 저장 장치를 마운팅(mount)한다. 복구 프로그램은 내부 저장 장치 상의 선택된 파일을 조사하여, 선택된 파일의 구조 및 내용을 확인한다. 복구 프로그램은 파일 내의 키 및 데이터를 분석하여, 하드웨어 장치 상에 로드된 펌웨어의 현재 레벨과 부적절한 작동을 야기할 수 있는 소정의 모순 세팅(conflicting setting)이 있는지를 결정한다. 또한, 복구 프로그램은 펌웨어의 내용을 정확하게 분석 및 검사하여, 하드웨어 장치가 복구 후에 적절하게 기능하는 데 필요한 최소량의 변경이 이루어지도록 한다. 이러한 방식은 가능한 한 많은 사용자의 세팅을 실행가능하도록 유지하고, 복구 동작의 감지된 품질을 개선하고, 완전한 조작 상태로 시스템을 복구하는 데 필요한 시간을 줄일 수 있다.
도 1은 네트워크(15)와 선택적으로 인터페이스로 접속하는 네트워크 하드웨어 장치(10)와, 본 발명의 실시예에 따라 네트워크 하드웨어 장치(10) 상의 손상된 프로그램 코드를 복구하는 탈착 가능한 외부 복구 장치(60)의 블록도이다. 네트워크 하드웨어 장치(10)는 고유의 IP 어드레스에 의해 네트워크 상에서 식별 가능하고 액세스 가능한 노드로서 네트워크(15)와 인터페이스한다. 네트워크 하드웨어 장치(10)는 네트워크(15)와 인터페이스하기 위한 대응 커넥터(mating connector)(14)에 착탈 가능하게 연결되는 I/O(입력/출력) 커넥터(12) 및 전원을 포함한다. 커넥터(12)와 대응 커넥터(14)는 여러 가지의 표준화된 또는 전용의 커넥터 형태 중 어느 하나일 수 있다. 예컨대, 네트워크 하드웨어 장치(10)는 전자 카드로서 구현될 수 있는데, 이 경우, 커넥터(12)가 복수의 I/O 핀을 갖는 카드 에지일 수 있고, 또한, 대응 커넥터(14)가 상기 복수의 I/O 핀을 갖는 소켓(암컷형)일 수 있다. 대응 커넥터(14)는 예컨대 다중 서버 새시의 미드플레인(midplane) 상에 배치될 수 있다. 네트워크 하드웨어 장치(10)는 네트워크(15)를 통해서 네트워킹된 다른 장치(16)와 통신한다. 네트워크 하드웨어 장치 커넥터(12)가 대응 커넥터(14)에 접속되고, 선택적인 전원 스위치(17)로 전원이 인가되는 때에, 네트워크 하드웨어 장치(10)는 전력 및 네트워크 접속 가능성을 수신한다.
네트워크 하드웨어 장치(10)는, 내부 저장 장치(20)의 비휘발성 메모리 상에 마련된 펌웨어(22)와 같은, 전자적으로 업데이트 가능한 프로그램 코드에 의해 제어되는 다양한 컴퓨터 하드웨어 중 어느 하나로서 예시될 수 있다. 펌웨어(22)는 커널 모듈(23), 시스템 스크립트(24), 실행 가능한 사용자 코드(25), 구성 파 일(26)과 같은 소프트웨어 요소를 포함하지만, 이에 한정되는 것은 아니다. 범용 컴퓨터 상에서 실행될 수 있는 소프트웨어와는 반대로, 펌웨어(22)는 통상적으로 네트워크 하드웨어 장치(10)의 의도된 기능에 맞게 특히 구성된다. 따라서, 일부 예시에서, 네트워크 하드웨어 장치(10)는 펌웨어(22)에 의해 제어되는 사전 결정된 기능성을 갖는 "임베디드 장치(embedded device)"로서 분류될 수 있다. 네트워크 하드웨어 장치(10)의 하나의 가능한 예시는, 예컨대, 다중 서버 새시에서의 블레이드 서버 및 서포트 모듈과 같은, 네트워킹된 다른 장치(16)를 관리하는 핫스와핑 가능한(hot-swappable) 관리 모듈이다. 그와 관련해서, 펌웨어(22)는 그 기능이 블레이드 서버 및 서포트 모듈을 관리하도록 특히 구성되는 소프트웨어 요소를 포함할 수 있다. 이러한 관리 기능성은, 성능 및 동작을 감시하고, 블레이드 서버의 전력 세팅을 제어하고, 블레이드 서버 새시로의 전력을 전반적으로 관리하고, 또한, 다양한 블레이드 서버와 서포트 모듈로부터의 경고를 수신 및 처리하기 위해, 블레이드 서버와 인터페이스하는 것도 포함할 수 있다.
내부 저장 장치(20)는, 그 유효한 서비스 수명 내에서 많은 사이클(예를 들면, 수천 사이클)로 전기적으로 소거되어 리프로그래밍될 수 있는 플래시 메모리를 포함할 수 있다. 내부 저장 장치(20)는, 예컨대, 내부의 "플래시 드라이브"로 구현될 수 있고, 또는, 하나의 예시에서는 유효한 서비스 수명을 연장하기 위한(즉, 판독/기입 사이클의 횟수를 증가시키기 위한) 선택형 웨어 레벨링 기술(optional wear-leveling technology)을 포함하는 러기드 드라이브(rugged drive)인 "마이크로 디스크 온 칩(micro disc on chip)"으로서 구현될 수 있다. 플래시 메모리가 비휘발성이기 때문에, 그 내부에 저장된 정보를 유지하는 데 전원이 필요 없다. 또한, 플래시 메모리는 고속 액세스(판독 또는 기입) 시간을 제공하고, 또한, 회전하는 마그네틱 플레이트 상에 메모리를 저장하는 "하드 디스크"보다 일반적으로 더욱 견고하고 내충격성이다.
또한, 네트워크 하드웨어 장치(10)는 하나 이상의 EEPROM(Electrically Erasable Programmable Read-Only Memory)(34), NOR 플래시(36), RAM(40)을 포함한다. EEPROM는 컴퓨터 및 다른 전자 장치에서 사용되는 비휘발성 메모리로서, 전원이 제거되었을 때에 보존되어야 하는 소량의 데이터를 저장하기 위한 것이다. 여기서, EEPROM(34)는, 하드웨어 또는 소프트웨어의 특정한 세트와 연관된 구성 및 정보 데이터의 집합인, 중요 프로덕트 데이터(Vital Product Data)(35)를 저장하는 데 사용된다. 예컨대, 중요 프로덕트 데이터는 부품 번호, 시리얼 번호, 및, 네트워크 하드웨어 장치(10)에 대한 엔지니어링 변경 레벨을 포함할 수 있다. NOR 플래시(36)는 임베디드 장치에서 실행 가능한 비교적 소량의 코드를 저장하는 데 통상적으로 사용되었던, 본 기술분야에서 알려진 플래시 메모리의 형태이다. 여기서, NOR 플래시(36)는 부트 로더(37) 및 리눅스 커널(38)("브링업 코드(bring up code)"로 총칭됨)을 저장하는 데 사용된다. RAM(random access memory)(40)는 네트워크 하드웨어 장치(10)의 임무 실행시에 사용된 코드에 대한 임시 저장소로서 사용되는 휘발성 메모리이다. 특히, RAM(40)은 네트워크 하드웨어 장치의 오퍼레이팅 시스템(OS)(42)의 요소를 저장하는 데 사용된다. 또한, 네트워크 하드웨어 장치(10)는, 적어도 하나의 내부 데이터 통신 포트(이 예에서는, 내부 USB 포 트(31))와 적어도 하나의 외부 데이터 통신 포트(이 예에서는, 외부 USB 포트(32))를 포함하는 다수의 연결 포트를 포함할 수도 있다. 네트워크 하드웨어 장치(10)의 다수의 구성요소는 버스(도시하지 않음)를 통해서 서로 통신할 수 있다.
초기화시에, 네트워크 하드웨어 장치(10)는, NOR 플래시(36) 상의 비휘발성 메모리에 저장된 부트 로더(37) 및 리눅스 커널(38)을 포함하는 브링업 코드로부터의 부팅을 시작한다. 리눅스 커널(38)은 오퍼레이팅 시스템(40)의 중심적인 구성요소이고, 그 역할은 전형적으로, 하드웨어와 소프트웨어 구성요소 사이의 통신을 포함하는 시스템 리소스를 관리하는 것을 포함한다. 부트 로더(37)의 실행은, 디폴트 부트 시퀀스에서, 오퍼레이팅 시스템(42)을 RAM(40)으로 로드하도록 하는 내부 저장 장치(20)가 마운팅(mount)되도록 하는 일련의 이벤트를 개시한다. 통상, 내부 저장 장치(20)의 "마운팅"이 NOR 플래시(36)로부터 내부 저장 장치(20)로의 전자적인 스위칭을 수반할 수 있도록, 네트워크 하드웨어 장치(10)의 초기화시에, 내부 저장 장치(20)는 내부 USB 포트(31)에 물리적으로 이미 접속되어 있다. 내부 USB 포트(31)를 마운팅하면, 네트워크 하드웨어 장치(10)는 계속해서 커널 모듈(23)을 로드하고, 내부 저장 장치(20)로부터 시스템 스크립트(24) 및 실행 가능한 사용자 코드(25)를 실행하여, 오퍼레이팅 시스템(42)을 완전히 로드한다.
"복구 키"라고도 불릴 수 있는 외부 복구 장치(60)는, 외부 USB 포트(32)로 탈착 가능하게 접속하도록 구성된 USB 플래시 메모리 장치로서 구현될 수 있다. 외부 USB 포트(32)에 접속되면, 외부 복구 장치(60)는 내부 저장 장치(20)의 마운팅 전에 디폴트 시동 시퀀스를 인터럽트한다. 내부 저장 장치(20)의 마운팅 대신 에, 네트워크 하드웨어 장치(10)는, 그 네트워크 하드웨어 장치(10) 상의 소정의 에러를 검사하여 정정하는 외부 복구 장치(60)를 마운팅한다. 외부 복구 장치(60)의 "마운팅"은 사용자가 물리적으로 외부 복구 장치(60)를 외부 USB 포트(32)에 접속시키는 것을 포함할 수 있지만, 외부 복구 장치(60)로의 전자적인 스위칭도 포함할 수 있다. 외부 복구 장치(60) 상의 파일 시스템(61) 및 초기화 스크립트(62)는 내부 저장 장치(20), EEPROM(34), 및/또는 NOR 플래시(36)와 통신할 수 있도록 장치 드라이버(63)를 로드한다. 외부 복구 장치(60) 상의 초기화 스크립트(62)는 자동으로 실행된다. 기능적 정정 코드(64)는 내부 저장 장치(20), EEPROM(34), 또는 NOR 플래시(36) 상의 데이터 및 프로그램 코드에 어떠한 문제가 있는지를 결정하기 위해 체크한다. 기능적 정정 코드(64)는 펌웨어(22), 커널 모듈(23), 스크립트(24), 실행 가능한 사용자 코드(25)와 같은 네트워크 하드웨어 장치(10) 상의 프로그램 코드를 검사한다.
외부 복구 장치(60)가, 펌웨어(22), 혹은, EEPROM(34) 또는 NOR 플래시(36)에 저장된 코드 및 세팅과 같은 네트워크 하드웨어 장치(10) 상의 프로그램 코드에 있어서 이상을 검출하면, 또는, 이전의 부트 실패가 실패 레지스터(failure register)(27) 상에 기록되었으면, 일련의 검사 및 복구 동작이 외부 복구 장치(60)에 의해 수행될 수 있다. 검사 및 복구 동작의 일례는, 내부 저장 장치(20) 상의 소정의 중요한 파일(critical files)을 분석하고, 필요하면 이들 중요한 파일을 업데이트하는 것이다. 분석되는 중요한 파일은, 예컨대, 구성 선택(configuration selections)의 데이터스토어(datastore)에 관련된 파일과 같은 " 구성" 파일일 수 있다. 검사 및 복구 동작의 다른 예는, NOR 플래시(36)를 검사하여, 이후의 부트에서의 사용을 위해 NOR 플래시(36)의 내용을 변경하는 것이다. 검사 및 복구 동작의 다른 예는, 내부 저장 장치(20)의 소정의 디렉토리에 새로운 파일을 설치하는 것이다. 예컨대, 새로운 파일은, 라이브러리 디렉토리, 혹은, 새로운 또는 기존의 프로세스에 의한 사용을 위한 시스템 경로에 포함되는 시스템 구성 디렉토리에 설치될 수 있다.
기능적 정정 코드(64)는 펌웨어(22) 내의 구성 파일(26)의 내용을 검사하여, 모순 세팅 혹은 펌웨어(22)의 이전 레벨 또는 버전과 문제를 야기할 수 있는 세팅을 검색한다. 그러한 충돌은, 이전의 펌웨어 동작으로부터 학습된 규칙과, 구성 파일(26)로부터 판독된 세팅을 이용하여, 식별될 수 있다. 예를 들면, 작고 기능적인 테스트가 실행 가능한 정정 코드로부터 실행될 수 있다. 세팅은 특정한 구성요소와의 직접적인 통신을 테스트하도록 시도될 수 있다. 선택된 세팅은 충돌이 해결되는지를 검증하기 위해 변경되고 재검사될 수 있다. 하나의 구현예는, 내장 셀프 테스트(BIST; Built-in Self Test)의 실행 또는 현존 진단법의 실행을 포함할 수 있다. 예컨대, 그 진단법은 체크섬의 계산, 장치의 폴링, 파일 내용의 검사, 등에 대한 알고리즘을 포함할 수 있다.
펌웨어(22)의 파일 구조 내에 존재하는 중요 파일을 검사하여, 그 파일 내부의 데이터를 선택적으로 복구하기 위해, 본 발명의 실시예에 따르면 특수한 프로그램적 방법이 사용될 수 있다. 펌웨어(22) 또는 구성 파일(26)의 전체 내용을 단순히 오버라이팅하는 것이 아니라, 외부 복구 장치(60) 상의 기능적 정정 코드(64)가 펌웨어(22) 내의 파일 내용을 지능적으로 검사하여, 펌웨어(22) 및/또는 세팅의 적절한 구조와 내용과, 그 세팅이 펌웨어와 어떻게 연동하는지를 식별한다. 파일은 이상 작동을 야기할 수 있는 잘못된 혹은 충돌하는 세팅이 있는지를 검사하도록 "파싱(parse)"될 수 있다. 이러한 방식에서, 외부 복구 장치(60) 상의 기능적 정정 코드(64)는, 네트워크 하드웨어 장치(10)가 이후의 부트에 대해 적절하게 기능할 수 있게 하는 데이터를, 펌웨어(22) 내의 파일이 포함하는지를 검증하기 위한 고유의 방식으로 실행되고 있다.
소정 예시에서, 내부 저장 장치(20) 상의 프로그램 코드 내에 파일 시스템 에러가 없을 수 있지만, 파일 내의 데이터 그 자체가, 네트워크 하드웨어 장치(10)가 외부 네트워크(15) 또는 다른 수단을 통해서 액세스 불가능하게 만드는 불량하거나 부적절한 세팅을 가질 수 있다. 이러한 정정 프로세스는, 가능한 한 많은 사용자 세팅을 유지하고, 복구 동작의 감지된 품질을 개선하고, 시스템을 다시 완전한 조작 상태로 만드는 데 필요한 시간을 줄이는 아주 정확한 방식으로, 가능한 한 많은 세팅을 보존하고, 또한 문제가 있는 세팅 및 파일을 찾아서 그것들을 선택적으로 정정하도록 동작한다.
설명을 위해서, 하나의 가상 시나리오에서, 네트워크 하드웨어 장치(10)의 네트워크에의 접속 실패는 손상된 펌웨어의 가능성을 나타낼 수 있다. 실패는 실패 레지스터(27)에 로그될 수 있다. 기능적 정정 코드(64)는 네트워크 하드웨어 장치(10)의 IP 어드레스 세팅을 검사하는 데 사용될 수 있다. 또한, 기능적 정정 코드(64)는 차단된 포트와 IP 어드레스를 포함하는 방화벽 세팅을 검사할 수도 있 다. 예컨대, 방화벽이 네트워크 하드웨어 장치의 IP 어드레스를 외부 포트로부터 차단하고 있다고 기능적 정정 코드(64)가 판단하면, 기능적 정정 코드는, 네트워크 하드웨어 장치(64)로의 기능성을 복구하도록, 방화벽에서의 상기 IP 어드레스 및 포트를 오픈할 수 있다. 이는, 구성 세팅의 전부를 눈에 보이지 않게 복구하거나 혹은 펌웨어의 전체를 공지된 양호한 이미지로 대체하는 효율적인 방안이며, 구성 세팅에 대한 최소한의 변경을 야기한다.
지능적인 파일 검사 및 복구가 수행되어, 외부 복구 장치(60)에 의해 펌웨어(22)가 복구된 후에, LED 또는 다른 발광 장치를 발광함으로써, 가시적 표시(visual indication)가 사용자에게 제공될 수 있다. 가시적 표시에 대응하여, 사용자는 외부 USB 포트(32)로부터 외부 복구 장치(60)를 제거할 수 있다. 그 후, 네트워크 하드웨어 장치(10)는 복구된 펌웨어(22)로부터 리부트될 수 있도록 리셋될 수 있다. 네트워크 하드웨어 장치(10)를 리셋하는 하나의 방법은, 네트워크 하드웨어 장치(10)를 파워 사이클링(power-cycling)하는 것이다. 하드웨어 장치의 파워 사이클링은, 네트워크(15)로부터 네트워크 하드웨어 장치(10)를 순간적으로 제거하고, 네트워크 하드웨어 장치(10)를 네트워크(15)에 핫플러깅(hot-plugging)하는 것을 수반할 수 있다. 사용자가 커넥터(12)와 대응 커넥터(14)를 물리적으로 단절 및 재접속시킴으로써 하드웨어 장치를 파워 사이클링을 할 수도 있다. 예컨대, 사용자는 새시로부터 네트워크 하드웨어 장치(10)(관리 모듈일 수도 있음)를 해제하도록 레버(도시하지 않음)를 당겨서 제거하고, 관리 모듈을 몇 분 동안 새시로부터 단절된 상태로 두고, 그 후 관리 모듈을 다시 새시/미드플레인으로 꼽을 수 있다. 네트워크 하드웨어 장치(10)로부터 외부 복구 장치(60)를 제거하기 위해 사용자가 이미 새시에 물리적으로 존재할 수 있기 때문에, 네트워크 하드웨어 장치(10)를 수동적으로 핫플러깅하는 이러한 방식은, 네트워크 하드웨어 장치(10)를 리셋하는 편리한 방식이다.
도 2는, 본 발명의 실시예에 따라, 잠재적으로 손상된 하드웨어 장치를 자동으로 검출하여 복구하는 방법을 개시하는 흐름도이다. 손상된 하드웨어 장치는, 애플리케이션 특정의 펌웨어에 의해 작동되는, 관리 모듈 등과 같은, 네트워크 접속형 장치일 수 있다. 예컨대, 본 방법은 도 1의 네트워크 하드웨어 장치(10) 상에서 외부 복구 장치(60)에 의해 실행되는 알고리즘에 의해 구현될 수 있다. 따라서, 도 2의 흐름도의 이하의 설명은, 도 1 및 도 1의 설명을 참조하여 더욱 알 수 있다.
단계 100에서, 디폴트 부트 시퀀스가 개시된다. 개시시에, 하드웨어 장치는 그 하드웨어 장치 상의 비휘발성 메모리에 저장된 부트 로더와 커널과 같은, 브링업 코드로부터 부트하도록 시작된다. 부트 로더의 실행은, 디폴트 부트 시퀀스에 있어서, 오퍼레이팅 시스템을 로딩하게 하는 일련의 이벤트를 개시한다. 조건부의 단계 102는, 외부 복구 장치가 접속되는지 여부를 판정하는 것을 수반한다. 접속되면, 단계 104에서 외부 복구 장치가 마운팅되고, 디폴트 부트 시퀀스가 일시적으로 중지된다. 외부 복구 장치는 내부 저장 장치와 통신하여, 단계 106에서 코드를 검사할 수 있도록 장치 드라이버를 갖는 커널을 로드한다. 검사되는 코드는 하드웨어 장치를 작동시키는 데 사용되는 펌웨어를 포함할 수 있다. 펌웨어는, 하드웨 어 장치의 내부 저장 장치 상의 커널 모듈, 시스템 스크립트, 실행 가능한 사용자 코드, 및 구성 파일을 포함할 수 있다. 손상된 파일 또는 불량한 구성 세팅을 포함하는 소정의 코드 에러는, 조건부의 단계 108에서 식별된다. 소정의 코드 에러는 예상 파일 구조, 내용, 또는 구성 세팅으로부터의 편차를 식별함으로써 결정될 수 있다. 외부 복구 장치는, 구성 세팅과, 그 세팅이 하드웨어 장치 상의 펌웨어에 포함된 다른 코드와 어떻게 상호 작용하는지를 평가할 수 있다. 이상 작동을 야기할 수 있는 잘못된 혹은 모순 세팅이 있는지를 검사하기 위해 코드가 "파싱"될 수 있다. 이러한 프로세스는, 네트워크 하드웨어 장치가 이후의 부트에서 적절하게 기능할 수 있도록 하는 데이터를, 펌웨어 내의 파일이 포함하는지를 검증한다. 에러가 없다고 검출되면, 단계 110에서 내부 저장 장치가 마운팅될 수 있고, 하드웨어 장치는 계속해서, 단계 112에서 내부 저장 장치에 저장된 커널 모듈, 시스템 스크립트, 실행 가능한 사용자 코드, 구성으로부터 부트할 수 있다.
이와 달리, 조건부의 단계 108에서 에러가 있다고 검출되면, 단계 114에서 코드는 선택적으로 복구될 수 있다. 복구 알고리즘은 예를 들어 e2fsck를 사용하여 기본 파일 시스템 검사로 시작될 수 있다. 그 후에, 구성 파일 및 소프트웨어는 호환성 및/또는 유효성에 대해 검사받을 수 있고, 필요에 따라 정정될 수도 있다. 불량한 구성의 예는, 로드 전에 수용 가능하였지만 펌웨어 업데이트로 인해 시스템의 불안정을 야기하는 구성 파일 내부의 구성 파라미터이다. 다음에, 구성 파라미터는 가능하면 수리될 수 있다. 이와 달리, 소정의 파일이 복구될 수 없거나 정정될 수 없으면, 그들 파일은 설치된 외부 복구 장치로부터의 디폴트 또는 기 지의 실행 구성 파일로 대체될 수 있다. 단계 114에서의 선택적인 코드 복구 후에, 단계 116에서 복구된 하드웨어 장치는 리셋되고, 단계 118에서 외부 복구 장치는 마운팅 해제될 수 있다. 그 후, 복구된 하드웨어 장치는 단계 100에서 시작되는 기지의 양호한 로드로 리부트될 수 있다.
당업자에 의해 인식되는 바와 같이, 본 발명은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 본 발명은 전적으로 하드웨어 구현예, 전적으로 소프트웨어 구현예(펌웨어, 상주(resident) 소프트웨어, 마이크로 코드(micro-code) 등), 또는, 소프트웨어와 하드웨어 측면을 결합하는 구현의 형태를 취할 수 있는데, 이들 모두는 본 명세서에서 전반적으로 "회로", "모듈" 혹은 "시스템"으로 참조될 수 있다. 또한, 본 발명은 매체에서 컴퓨터 사용 가능한 프로그램 코드를 갖는 유형적인 표현 매체로 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
컴퓨터 사용 가능하거나 또는 컴퓨터 판독 가능한 하나 이상의 매체의 소정의 조합을 이용할 수 있다. 컴퓨터 사용 가능하거나 컴퓨터 판독 가능한 매체는, 예컨대 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 기구, 장치 또는 전파 매체에 제한되지 않는다. 컴퓨터 판독 가능한 매체의 보다 구체적인 예(불완전 리스트(non-exhaustive list)는, 이하의 것을 포함한다: 하나 이상의 전선을 갖는 전기 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 프로그램 가능한 읽기 전용 메모리(EPROM 또는 플래시 메모리), 휴대용 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 광학 저장 장치, 또는 자기 저장 장치. 프로그램은, 예를 들어 페이퍼 또는 다른 매체의 광학 스캐닝을 통해서 전자적으로 획득될 수 있고, 필요하면, 그 후에 컴파일되어, 해독되거나 또는 이와 다르게 적당한 방식으로 처리되고, 또한 그 후에 컴퓨터 메모리에 저장될 수 있기 때문에, 컴퓨터 사용 가능하거나 컴퓨터 판독 가능한 매체는, 프로그램이 인쇄되어 있는 페이퍼 또는 다른 적당한 매체일 수도 있음을 유의한다. 이 문헌의 문맥에서는, 컴퓨터 사용 가능하거나 컴퓨터 판독 가능한 매체는, 명령어 실행 시스템, 장치 또는 디바이스와 접속해서 사용하는 프로그램을 포함, 저장, 통신, 전파, 또는 전송할 수 있는 소정의 매체일 수 있다. 컴퓨터 사용 가능한 매체는 베이스밴드에서 또는 반송파의 일부로서 구현되는 컴퓨터 판독 가능한 프로그램 코드를 갖는 전파형 데이터 신호(propagated data signal)에 의해 통신될 수 있다. 컴퓨터 사용 가능한 프로그램 코드는, 무선, 유선, 광파이버 케이블, RF 등에 제한되지 않는 소정의 적절한 매체를 사용하여 송신될 수 있다.
본 발명의 작동을 수행하기 위한 컴퓨터 프로그램 코드는, 자바, 스몰토크(Smalltalk), C++ 등과 같은 객체 지향 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어와, "C" 프로그래밍 언어 또는 유사 프로그래밍 언어와 같은 통상의 절차적 프로그래밍 언어와의 소정의 조합으로 작성될 수 있다. 프로그램 코드는, 사용자의 컴퓨터 상에서 전적으로, 사용자의 컴퓨터 상에서 부분적으로, 독립형의 소프트웨어 패키지와 같이, 사용자의 컴퓨터 상에서 부분적으로, 원격 컴퓨터 상에서 부분적으로 혹은 원격 컴퓨터 또는 서버 상에서 전적으로 실행될 수 있다. 가장 후자의 시나리오에서, 원격 컴퓨터는 로컬 영역 네트워크(LAN) 또는 와이드 영역 네트워크(WAN)를 포함하는 소정 형태의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있거나, 혹은, 그 접속은 외부 컴퓨터(예컨대, 인터넷 서비스 프로바이더를 사용하는 인터넷을 통해서)에 대해 이루어질 수 있다.
본 발명의 실시예에 따른 방법, 기구(시스템), 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 본 발명을 이하에 설명한다. 흐름도 및/또는 블록도의 각각의 블록과, 흐름도 및/또는 블록도에서의 블록의 조합은, 컴퓨터 프로그램 명령에 의해 구현될 수 있음을 이해한다. 이들 컴퓨터 프로그램 명령은, 범용 컴퓨터, 특수 목적 컴퓨터, 또는, 머신을 생산하는 프로그래밍 가능한 데이터 처리 장치의 프로세서에 제공될 수 있어, 컴퓨터 또는 다른 프로그래밍 가능한 데이터 처리 장치의 프로세서를 통해서 실행하는 명령은, 흐름도 및/또는 블록도에서 특정된 기능/동작을 구현하기 위한 수단을 생성한다.
또한, 이들 컴퓨터 프로그램 명령은, 특정한 방식으로 기능하도록 컴퓨터 또는 다른 프로그래밍 가능한 데이터 처리 장치에 대해 지시할 수 있는 컴퓨터 판독 가능한 매체에 저장될 수 있어, 컴퓨터 판독 가능한 매체에 저장된 명령은, 흐름도 및/또는 블록도에서 특정된 기능/동작을 구현하는 명령 수단을 포함하고 있는 제조품을 생산한다.
또한, 컴퓨터 프로그램 명령은, 컴퓨터 또는 다른 프로그래밍 가능한 장치 상에서 수행되는 일련의 조작적 단계가 컴퓨터 구현된 프로세스를 생성할 수 있도록, 컴퓨터 또는 다른 프로그래밍 가능한 데이터 처리 장치로 로드될 수 있어, 컴퓨터 또는 다른 프로그래밍 가능한 기구 상에서 실행하는 명령은, 흐름도 및/또는 블록도에서 특정된 기능/동작을 구현하는 프로세스를 제공한다.
도면에서의 흐름도와 블록도는, 본 발명의 여러 가지 실시예에 따른 시스템, 방법, 및 컴퓨터 프로그램 제품의 가능한 구현예의 구조, 기능성, 작동을 나타낸다. 이와 관련하여, 흐름도 또는 블록도에서의 각각의 블록은 모듈, 세그먼트, 또는 일부 코드를 나타낼 수 있고, 특정한 논리 기능을 구현하기 위한 하나 이상의 실행 가능한 명령을 포함한다. 또한, 일부 다른 구현예에서, 블록에 표시된 기능은 도면에서 표시된 순서를 벗어나서 발생할 수 있음을 주의해야 한다. 예컨대, 사실, 연속해서 표시된 2개의 블록이 실질적으로 동시에 실행될 수도 있고, 혹은, 연관된 기능성에 따라, 그 블록들은 종종 역순으로 실행될 수도 있다. 또한, 블록도 및/또는 흐름도에 표시된 각 블록과, 블록도 및/또는 흐름도에 표시된 블록과 조합은, 특정한 기능 또는 동작을 수행하는 특수 목적 하드웨어 기반의 시스템에 의해, 혹은, 특수 목적 하드웨어와 컴퓨터 명령과의 조합에 의해 구현될 수 있음을 주의한다.
여기서 사용되는 용어는 특정한 실시예만을 설명하기 위한 것으로서, 본 발명의 제한을 위한 것은 아니다. 여기서 사용되는 바와 같이, 단수 형태 "a", "an", "the"는, 문맥이 명백하게 이와 다르다고 표시하지 않으면, 복수 형태도 포함할 것이다. 본 명세서에서 사용될 때에, "포함하는"이란 용어는, 언급된 특징, 정수, 단계, 동작, 요소, 구성요소, 및/또는 그룹의 존재를 특정하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성 요소, 및/또는 그룹의 존재 또는 추가를 배제하지 않는 것임을 더욱 이해한다. "바람직하게는", "선택적으로" 등의 용어, 및 유사한 용어는, 지칭되고 있는 항목, 조건 또는 단계가 본 발명의 선택적인(필요하지 않은) 특징임을 나타내는 데 사용된다.
이하의 청구항에서의 기능 요소 외에, 대응 구조, 재료, 동작, 및 모든 수단 또는 단계에 상당하는 것은, 소정의 구조, 재료를 포함하거나, 혹은, 특별히 청구되는 바와 같은 다른 청구된 요소와 조합해서 기능을 수행하기 위해 동작하도록 의도된 것이다. 본 발명의 설명은 도시 및 설명을 위해 제시되었지만, 개시된 형태에서 본 발명을 제한적 또는 소모적으로 되도록 하는 것은 아니다. 대부분의 변경 및 변형은, 본 발명의 범위 및 정신을 벗어나지 않고서 당업자에게 있어서 명백한 것이다. 본 발명의 규칙 및 실제 응용을 최상으로 설명하고, 또한, 의도된 특정한 용도에 적합한 다양한 변경이 이루어진 여러 가지의 실시예에 대한 본 발명을, 당업자 이외의 사람들이 이해할 수 있도록, 실시예를 선택 및 설명한다.
도 1은 본 발명의 실시예에 따라, 손상된 상태로부터 네트워크 하드웨어 장치를 복구하는 탈착 가능한 외부 복구 장치 및 네트워크 하드웨어 장치의 블록도,
도 2는 본 발명의 실시예에 따라, 잠재적으로 손상된 하드웨어 장치를 자동으로 검출하여 복구하는 방법을 나타내는 흐름도.

Claims (10)

  1. 부적절하게 프로그래밍된 임베디드 장치(embedded device)를 복구하는 방법으로서,
    하드웨어 장치를 조작하는 데 사용되는 펌웨어와, 상기 하드웨어 장치의 조작시에 상기 펌웨어에 의해 사용되는 구성 세팅(configuration settings) 중 한쪽 또는 양쪽을 전자적으로 검사하는 단계와,
    상기 하드웨어 장치의 부적절한 조작을 야기하는 상기 펌웨어 또는 상기 구성 세팅에서의 에러를 식별하는 단계와,
    상기 펌웨어의 전부 또는 상기 구성 세팅의 전부를 오버라이팅하지 않고, 상기 식별된 에러를 정정하도록, 상기 펌웨어와 상기 구성 세팅 중 한쪽 또는 양쪽에 대해 선택적인 변경을 자동으로 행하는 단계
    를 포함하는 임베디드 장치의 복구 방법.
  2. 제 1 항에 있어서,
    상기 하드웨어 장치를 조작 가능하게 하는 데 필수적인 펌웨어 혹은 구성 세팅에 대해서 변경만을 행하는 단계를 더 포함하는 임베디드 장치의 복구 방법.
  3. 제 1 항에 있어서,
    상기 펌웨어 또는 상기 구성 세팅에서의 에러를 식별하는 단계는, 상기 하드웨어 장치 상의 펌웨어의 버전 내에서 부적절한 조작을 야기할 수 있는, 임의의 모순 세팅(conflicting settings)을 식별하는 단계를 포함하는 임베디드 장치의 복구 방법.
  4. 제 1 항에 있어서,
    상기 펌웨어 및 구성 세팅에서의 에러를 전자적으로 검사 및 식별하기 전에, 상기 하드웨어 장치의 디폴트 부트 시퀀스를 개시하는 단계와,
    상기 펌웨어 및 구성 세팅 중 한쪽 또는 양쪽에 대한 선택적인 변경을 행하여, 상기 식별된 에러를 정정한 후에, 상기 하드웨어 장치를 리부트하는 단계
    를 더 포함하는 임베디드 장치의 복구 방법.
  5. 제 1 항에 있어서,
    선택적인 변경을 행하여, 상기 식별된 에러를 정정한 후에, 상기 하드웨어 장치를 리셋하는 단계와,
    상기 하드웨어 장치의 리셋 후에 사용하는 상기 하드웨어 장치를 완전히 리 부트하는 단계
    를 더 포함하는 임베디드 장치의 복구 방법.
  6. 제 5 항에 있어서,
    상기 하드웨어 장치를 리셋하는 단계는, 상기 하드웨어 장치를 파워 사이클링(power-cycling) 및 핫 플러깅(hot-plugging) 중 한쪽 또는 양쪽을 수행하는 단계를 포함하는 임베디드 장치의 복구 방법.
  7. 제 1 항에 있어서,
    상기 펌웨어 또는 상기 구성 세팅에서의 에러를 식별하는 단계는, 이전의 부트 실패의 기록을 판독하는 단계를 포함하는 임베디드 장치의 복구 방법.
  8. 제 1 항에 있어서,
    상기 펌웨어 또는 상기 구성 세팅에서의 에러를 식별하는 단계는,
    상기 하드웨어 장치의 선택된 구성요소와의 통신을 테스트하는 단계와,
    선택된 세팅을 변경하는 단계와,
    상기 선택된 세팅을 이용하여 통신을 재테스트하고, 상기 변경된 세팅을 이 용하여 상기 선택된 구성요소와의 복구된 통신을 검증하는 단계
    를 포함하는 임베디드 장치의 복구 방법.
  9. 부적절하게 프로그래밍된 하드웨어 장치를 복구하기 위한, 컴퓨터 사용 가능한 매체 상에서 구현되는 컴퓨터 사용 가능한 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서,
    하드웨어 장치를 조작하는 데 사용되는 펌웨어와, 상기 하드웨어 장치의 조작시에 상기 펌웨어에 의해 사용되는 구성 세팅 중 한쪽 또는 양쪽을 전자적으로 검사하는 컴퓨터 사용 가능한 프로그램 코드와,
    상기 하드웨어 장치의 부적절한 조작을 야기하는 상기 펌웨어 또는 상기 구성 세팅에서의 에러를 식별하는 컴퓨터 사용 가능한 프로그램 코드와,
    상기 펌웨어의 전부 또는 상기 구성 세팅의 전부를 오버라이팅하지 않고, 상기 식별된 에러를 정정하도록, 상기 펌웨어와 상기 구성 세팅 중 한쪽 또는 양쪽에 대해 선택적으로 변경을 행하는 컴퓨터 사용 가능한 프로그램 코드
    를 포함하는 컴퓨터 프로그램 제품.
  10. 전자적으로 업데이트 가능한 펌웨어와, 하드웨어 장치의 조작시에 상기 펌웨어에 의해 액세스 가능한 구성 세팅을 갖는 내부 저장 장치와, 상기 내부 저장 장 치와 인터페이스하는 내부 데이터 통신 포트와, 외부 데이터 통신 포트를 포함하고 있는 하드웨어 장치와,
    상기 하드웨어 장치 상의 외부 데이터 통신 포트와 선택적으로 접속하도록 구성된 외부 복구 장치를 포함하되,
    상기 외부 복구 장치는, 상기 펌웨어 및 구성 세팅을 검사하여 선택적으로 복구하도록 구성된 기능적 정정 코드(functional correction code)를 갖는 플래시 메모리를 포함하는
    시스템.
KR1020090074724A 2008-11-05 2009-08-13 자동 펌웨어 복원 KR101143679B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/265,018 US8140837B2 (en) 2008-11-05 2008-11-05 Automatically making selective changes to firmware or configuration settings
US12/265,018 2008-11-05

Publications (2)

Publication Number Publication Date
KR20100050380A true KR20100050380A (ko) 2010-05-13
KR101143679B1 KR101143679B1 (ko) 2012-05-11

Family

ID=42132917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090074724A KR101143679B1 (ko) 2008-11-05 2009-08-13 자동 펌웨어 복원

Country Status (3)

Country Link
US (1) US8140837B2 (ko)
JP (1) JP5363242B2 (ko)
KR (1) KR101143679B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542288B2 (en) 2013-09-27 2017-01-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Diagnosis for a server motherboard
US11500563B2 (en) 2020-09-07 2022-11-15 SK Hynix Inc. Memory system and operating method for testing target firmware by processing a plurality of test commands

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607216B2 (en) * 2008-08-01 2013-12-10 Palm, Inc. Verifying firmware
TW201246075A (en) * 2011-05-06 2012-11-16 Asmedia Technology Inc Flash device and associated booting method
KR102029465B1 (ko) * 2011-11-17 2019-10-08 삼성에스디에스 주식회사 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법
EP2845353A4 (en) * 2012-05-01 2016-01-13 Duke Mfg Co SYSTEM AND METHOD OF CAN BUS BUSINESS DEVICES
CN105027083B (zh) 2013-02-28 2018-10-26 慧与发展有限责任合伙企业 使用诊断结果的恢复程序
JP6033183B2 (ja) * 2013-07-31 2016-11-30 京セラドキュメントソリューションズ株式会社 画像形成装置、及び画像形成装置の起動方法
KR102147970B1 (ko) * 2014-08-05 2020-08-25 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
US9823972B2 (en) 2014-10-28 2017-11-21 Samsung Electronics Co., Ltd. Mobile flash storage boot partition and/or logical unit shadowing
CN204883674U (zh) * 2015-04-30 2015-12-16 西门子(深圳)磁共振有限公司 现场可编程门阵列的配置电路、射频单元和磁共振系统
CN106528326B (zh) * 2016-09-22 2019-05-17 维沃移动通信有限公司 一种基带芯片软件的切换方法及移动终端

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421027A (ja) * 1990-05-14 1992-01-24 Mitsubishi Electric Corp 設定環境の変更方法
JPH04217033A (ja) * 1990-12-19 1992-08-07 Nec Software Kansai Ltd パラメータ自動修正および再実行方式
JPH05265719A (ja) * 1992-03-17 1993-10-15 Seiko Epson Corp 情報処理装置
JPH05313908A (ja) * 1992-05-13 1993-11-26 Fujitsu Ltd プログラムダウンロード型符号化装置のプログラム保証方法
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
US6170055B1 (en) 1997-11-03 2001-01-02 Iomega Corporation System for computer recovery using removable high capacity media
DE19805711C2 (de) * 1998-02-12 1999-11-18 Siemens Ag Verfahren und Anordnung zum Austausch einer defekten Baugruppe vorzugsweise innerhalb einer digitalen Vermittlungsstellenanlage
JP2000305768A (ja) 1999-04-19 2000-11-02 Nec Software Kobe Ltd システムソフトウェア書換方法
JP2002176456A (ja) 2000-12-07 2002-06-21 Kenwood Corp 電子機器および情報更新方法
KR100450080B1 (ko) 2001-11-13 2004-10-06 (주)지에스텔레텍 유에스비기반의 이동형 저장장치 및 그 제어방법
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
US7043664B1 (en) * 2002-10-31 2006-05-09 Microsoft Corporation Firmware recovery
EP1420560A1 (en) * 2002-11-13 2004-05-19 Thomson Multimedia Broadband Belgium Software upgrade over a USB connection
US7275180B2 (en) 2003-04-17 2007-09-25 International Business Machines Corporation Transparent replacement of a failing processor
JP2004362495A (ja) * 2003-06-09 2004-12-24 Hitachi Ltd エラーログ情報解析支援方法及び実施装置並びに処理プログラム
JP2005182418A (ja) 2003-12-18 2005-07-07 Murata Mach Ltd 画像形成装置
JP4689963B2 (ja) 2004-02-12 2011-06-01 Necフィールディング株式会社 コンピュータ遠隔診断修復システム、サーバ、プログラム、及び方法
JP4354314B2 (ja) * 2004-03-16 2009-10-28 株式会社日立製作所 サーバ差分管理システム及び情報処理装置の制御方法
JP2006106914A (ja) 2004-10-01 2006-04-20 Fujitsu Ltd ファームウェアで動作する処理装置およびファームウェア更新方法
JP2006139639A (ja) * 2004-11-15 2006-06-01 Murata Mach Ltd 画像読取転送ドライバプログラム、記録媒体、ホスト装置、画像読取装置
JP2006228153A (ja) * 2005-02-21 2006-08-31 Nec Corp 情報処理装置及びプログラム
JP4370525B2 (ja) * 2005-03-22 2009-11-25 日本電気株式会社 アプリケーション環境チェック装置及び方法とそのプログラム
WO2006121251A1 (en) 2005-05-06 2006-11-16 Iocell Co., Ltd. Data structure of flash memory having system area with variable size in which data can be updated, usb memory device having the flash memory, and method of controlling the system area
US7543287B2 (en) 2005-06-30 2009-06-02 Intel Corporation Using a block device interface to invoke device controller functionality
US7870394B2 (en) * 2006-05-26 2011-01-11 Symantec Corporation Method and system to scan firmware for malware
JP2008003861A (ja) 2006-06-22 2008-01-10 Sony Corp 情報処理装置、プログラム更新処理方法及び書換制御ソフトウェア

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542288B2 (en) 2013-09-27 2017-01-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Diagnosis for a server motherboard
US9753824B2 (en) 2013-09-27 2017-09-05 Lenovo Enterprise Solutions (Singapore) Pte, Ltd. Diagnosis for a server motherboard
US11500563B2 (en) 2020-09-07 2022-11-15 SK Hynix Inc. Memory system and operating method for testing target firmware by processing a plurality of test commands

Also Published As

Publication number Publication date
JP5363242B2 (ja) 2013-12-11
US8140837B2 (en) 2012-03-20
KR101143679B1 (ko) 2012-05-11
JP2010113706A (ja) 2010-05-20
US20100115252A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
KR101143679B1 (ko) 자동 펌웨어 복원
US9747192B2 (en) Automated operating system installation on multiple drives
CN106598635B (zh) 基板管理控制器的恢复方法及基板管理控制器
US7734945B1 (en) Automated recovery of unbootable systems
US9858066B2 (en) Updating firmware of a hardware component
US10365961B2 (en) Information handling system pre-boot fault management
US8407526B1 (en) Updating a firmware image using a firmware debugger application
US8161277B2 (en) Method of safe and recoverable firmware update and device using the same
US20100058314A1 (en) Computer System and Related Method of Logging BIOS Update Operation
US8943302B2 (en) Method of flashing bios using service processor and computer system using the same
CN110879720B (zh) 可配置服务器及配置服务器的功能的方法
US9542304B1 (en) Automated operating system installation
US9563497B2 (en) Correcting a failure associated with a current firmware image
US20200310779A1 (en) Validating a firmware compliance policy prior to use in a production system
US20200250313A1 (en) Bios recovery and update
US8176309B2 (en) Boot system has BIOS that reads rescue operating system from memory device via input/output chip based on detecting a temperature of a hard disk
US20180144134A1 (en) Detection system and detection method
CN113377586A (zh) 一种服务器自动化检测方法、装置及存储介质
US10216525B1 (en) Virtual disk carousel
US20150331772A1 (en) Methods for updating diagnostic tools on a hardware device and devices thereof
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
JP7389877B2 (ja) ネットワークの最適なブートパスの方法及びシステム
TWI775360B (zh) 用以記錄電腦系統的硬體元件狀態的儲存裝置及其電腦實施方法
US10691444B1 (en) Launching updated firmware files stored in a dedicated firmware volume
WO2022015296A1 (en) Operationalization of memories using memory information sets

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160325

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 8