US20010054161A1 - Method and apparatus for performing field diagnostics on a computer system - Google Patents

Method and apparatus for performing field diagnostics on a computer system Download PDF

Info

Publication number
US20010054161A1
US20010054161A1 US09/116,310 US11631098A US2001054161A1 US 20010054161 A1 US20010054161 A1 US 20010054161A1 US 11631098 A US11631098 A US 11631098A US 2001054161 A1 US2001054161 A1 US 2001054161A1
Authority
US
United States
Prior art keywords
computer system
remote
diagnostic
session
remote computer
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.)
Granted
Application number
US09/116,310
Other versions
US6438711B2 (en
Inventor
Robert J Wooddruff
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.)
Ivanti Inc
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US09/116,310 priority Critical patent/US6438711B2/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WOODRUFF, ROBERT J.
Publication of US20010054161A1 publication Critical patent/US20010054161A1/en
Application granted granted Critical
Publication of US6438711B2 publication Critical patent/US6438711B2/en
Assigned to LANDESK HOLDINGS, INC. reassignment LANDESK HOLDINGS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTEL CORPORATION
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LANDESK HOLDINGS INC.
Assigned to SILICON VALLEY BANK reassignment SILICON VALLEY BANK SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LANDESK DEVELOPMENT INC, LANDESK HOLDINGS INC, LANDESK HOLDINGS IRELAND LTD, LANDESK SOFTWARE INC, LANDESK SOFTWARE LTD
Assigned to LANDESK HOLDINGS IRELAND LTD., LANDESK SOFTWARE, LTD., LANDESK HOLDINGS, INC., LANDESK DEVELOPMENT INC., LANDESK SOFTWARE, INC. reassignment LANDESK HOLDINGS IRELAND LTD. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: SILICON VALLEY BANK
Assigned to LANDESK SOFTWARE, INC. reassignment LANDESK SOFTWARE, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: LANDESK HOLDINGS, INC.
Assigned to LANDESK SOFTWARE, INC. reassignment LANDESK SOFTWARE, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: INTEL CORPORATION
Assigned to WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT reassignment WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT PATENT SECURITY AGREEMENT Assignors: CRIMSON ACQUISITION CORP., CRIMSON CORPORATION, LANDESK GROUP, INC., LANDESK SOFTWARE, INC., LANDSLIDE HOLDINGS, INC.
Assigned to D. E. SHAW DIRECT CAPITAL PORTFOLIOS, L.L.C. AS AGENT reassignment D. E. SHAW DIRECT CAPITAL PORTFOLIOS, L.L.C. AS AGENT PATENT SECURITY AGREEMENT Assignors: CRIMSON CORPORATION, LAN DESK SOFTWARE, INC.
Assigned to LANDESK SOFTWARE, INC., CRIMSON CORPORATION reassignment LANDESK SOFTWARE, INC. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: D.E. SHAW DIRECT CAPITAL PORTFOLIOS, L.L.C., AS AGENT
Assigned to LANDESK SOFTWARE, INC., LANDESK GROUP, INC., LANDSLIDE HOLDINGS, INC., CRIMSON CORPORATION, CRIMSON ACQUISITION CORP. reassignment LANDESK SOFTWARE, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WELLS FARGO CAPITAL FINANCE, LLC
Assigned to WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT reassignment WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT PATENT SECURITY AGREEMENT Assignors: LANDESK SOFTWARE, INC.
Assigned to LANDESK SOFTWARE, INC. reassignment LANDESK SOFTWARE, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Assigned to JEFFERIES FINANCE LLC, AS COLLATERAL AGENT reassignment JEFFERIES FINANCE LLC, AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: CRIMSON ACQUISITION CORP., CRIMSON CORPORATION, LANDESK GROUP, INC., LANDESKSOFTWARE, INC., LANDSLIDE HOLDINGS, INC.
Assigned to JEFFERIES FINANCE LLC reassignment JEFFERIES FINANCE LLC SECURITY AGREEMENT Assignors: CRIMSON CORPORATION, LANDESK SOFTWARE, INC.
Assigned to CRIMSON CORPORATION reassignment CRIMSON CORPORATION NUNC PRO TUNC ASSIGNMENT (SEE DOCUMENT FOR DETAILS). Assignors: LANDESK SOFTWARE, INC.
Assigned to CRIMSON CORPORATION reassignment CRIMSON CORPORATION RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 031029/0849 Assignors: JEFFERIES FINANCE LLC
Assigned to CRIMSON CORPORATION reassignment CRIMSON CORPORATION RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 032333/0637 Assignors: JEFFERIES FINANCE LLC
Assigned to JEFFERIES FINANCE LLC, AS COLLATERAL AGENT reassignment JEFFERIES FINANCE LLC, AS COLLATERAL AGENT SECOND LIEN PATENT SECURITY AGREEMENT Assignors: CRIMSON CORPORATION
Assigned to JEFFERIES FINANCE LLC, AS COLLATERAL AGENT reassignment JEFFERIES FINANCE LLC, AS COLLATERAL AGENT FIRST LIEN PATENT SECURITY AGREEMENT Assignors: CRIMSON CORPORATION
Assigned to MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT reassignment MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT FIRST LIEN PATENT SECURITY AGREEMENT Assignors: CRIMSON CORPORATION
Assigned to MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT reassignment MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT SECOND LIEN PATENT SECURITY AGREEMENT Assignors: CRIMSON CORPORATION
Assigned to CRIMSON CORPORATION reassignment CRIMSON CORPORATION RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40182/0345 Assignors: JEFFERIES FINANCE LLC
Assigned to CRIMSON CORPORATION reassignment CRIMSON CORPORATION RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40183/0506 Assignors: JEFFERIES FINANCE LLC
Assigned to IVANTI, INC. reassignment IVANTI, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: CRIMSON CORPORATION
Anticipated expiration legal-status Critical
Assigned to CRIMSON CORPORATION reassignment CRIMSON CORPORATION RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41459/0387 Assignors: MORGAN STANLEY SENIOR FUNDING, INC.
Assigned to CRIMSON CORPORATION reassignment CRIMSON CORPORATION RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41052/0762 Assignors: MORGAN STANLEY SENIOR FUNDING, INC.
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test

Definitions

  • the present invention relates to the field of computer systems. More specifically, the present invention relates to a method and apparatus for performing field diagnostics on a computer system.
  • Diagnostic software such as AMIDiag by American Megatrends, Inc. and QAPlusĀ® by DiagSoft, Inc. provide trouble shooting capabilities for diagnosing problems with server computer systems.
  • AMIDiag and QAPlus perform tests on the server computer systems' memory, CPU, video controller, serial ports, parallel ports, disks, modems chipsets, and other components on the server computer systems.
  • a service technician is dispatched to the site of the server computer system to perform diagnostics on the server computer system.
  • the service technician is required to reset the server computer system and load a diagnostic environment onto the computer system server.
  • the service technician may then run a diagnostic program such as AMIDiag, QAPlus, or other diagnostic program in order to determine the source of the problem.
  • the service technician may be required to obtain a piece of hardware or a software program to repair the server computer system.
  • the service technician may be required to make more than one visit to the site of the server computer system.
  • the drawback with this approach is that additional delay and costs are incurred when a service technician is required to make multiple visits to the remote location to diagnose and repair the server computer system. Similar problems also exist when desktop computer systems, main frame computer systems, or other computer systems require diagnosis and repair.
  • a method for managing a computer system is disclosed.
  • a reset of the computer system is initiated from a remote location.
  • Diagnostic software downloaded from the remote location is run on the computer system.
  • FIG. 1 illustrates a computer system and a remote management console according to an embodiment of the present invention
  • FIG. 2 illustrates a block diagram of a computer system implementing an embodiment of the present invention
  • FIG. 3 is a block diagram illustrating the Basic Input Output System (BIOS) according to an embodiment of the present invention
  • FIG. 4 is a block diagram illustrating a console diagnostic tester according to an embodiment of the present invention.
  • FIG. 5 is a block diagram illustrating a system diagnostic tester according to an embodiment of the present invention.
  • FIG. 6 is a flow chart illustrating a method for managing a computer system according to a first embodiment of the present invention.
  • FIG. 7 is a flow chart illustrating a method for managing a computer system according to a second embodiment of the present invention.
  • FIG. 1 illustrates a computer system 110 and a remote management console 120 according to an embodiment of the present invention.
  • the computer system 110 may be a server computer system, a desktop or a laptop personal computer (PC), a main frame computer system, or other computer system.
  • the remote management console 120 resides in a location that is remote with respect to the computer system 110 .
  • the remote management console 120 may be a server computer system, a desktop or laptop PC, a main frame computer system, or other computer system.
  • the remote management console 120 is coupled to the computer system 110 via a transmission medium 130 .
  • the computer system 110 and the remote management console 120 transmit data to each other via the transmission medium 130 .
  • the transmission medium 130 may be fiber optics, cable, twisted pair, microwave, or other transmission media.
  • the computer system 110 and the remote computer system 120 may be coupled to the transmission medium 130 via a Ethernet connection, a serial connection, a modem connection, or other connection.
  • the remote management console 120 is used to perform diagnostics on the computer system 110 .
  • the remote management console 120 initiates a remote connection with the computer system 110 via the transmission medium 130 .
  • the remote connection may be supported by the computer system 110 via a management module 111 .
  • the management module 111 may be, for example, an INTEL Server Monitor Module (SMM).
  • the management module 111 includes a secondary processor (not shown) and a communications interface (not shown) that may be used to interface a remote computer system such as the remote management console 120 without the assistance of other components in the computer system 110 .
  • the management module 111 may be used to provide support for the computer system 110 when components in or around the computer system 110 experience failure.
  • the management module 111 may support out of band access for use when the operating system is not functional or when a network connected to a network controller on the computer system 110 is down, remote control of the operating system, system shutdown, and access to system state information to aid in problem diagnosis.
  • the management module 111 may be used to connect to the remote management console 120 via an Ethernet connection, modem connection, or other connection.
  • the remote management console 120 may initiate a connection with the computer system 110 via a serial interface 112 .
  • the serial interface 112 may be used as a communications interface to directly connect the remote management console 120 with the computer system 110 or indirectly connect the remote management console 120 with the computer system 110 via a modem (not shown).
  • the remote management console 120 sends a signal to a shutdown agent on the computer system 110 to initiate a shutdown and reset of the computer system 110 .
  • the computer system will execute its Basic Input Output System (BIOS) code.
  • BIOS Basic Input Output System
  • the BIOS code includes a boot strap loader. When executed, the boot strap loader puts the computer system 110 in a diagnostic state. The boot strap loader recognizes when a connection from the remote management console 120 has been established.
  • the boot strap loader may be used to authorize a diagnostic session request from the remote management console 120 , provide the remote management console 120 with information about the computer system 110 , and provide support in downloading diagnostic software code from the remote management console 120 directly into a memory in the computer system 110 .
  • the diagnostic software code may be executed by a processor (not shown) in the computer system 110 to generate a diagnostic report of the condition of the computer system 110 to the remote management console 120 .
  • FIG. 2 illustrates a block diagram of a computer system 200 that may be implemented as the computer system 110 (shown in FIG. 1) or the remote management console 120 (shown in FIG. 1).
  • the computer system 200 includes a processor 201 that processes data signals.
  • the processor 201 may be a complex instruction set computer (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing a combination of instruction sets, or other processor device.
  • FIG. 2 shows an example of the present invention implemented on a single processor computer system 200 . However, it is understood that the present invention may be implemented in a computer system having multiple processors.
  • the processor 201 is coupled to a CPU bus 210 that transmits data signals between processor 201 and other components in the computer system 200 .
  • the computer system 200 includes a memory 213 .
  • the memory 213 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, or other memory device.
  • the memory 213 may store instructions and code represented by data signals that may be executed by the processor 201 .
  • a cache memory 202 may reside inside the processor 201 to store data signals stored in the memory 213 .
  • the cache 202 speeds up memory accesses by the processor 201 by taking advantage of its locality of access.
  • the cache 202 resides external to the processor 201 .
  • a bridge memory controller 211 may be coupled to the CPU bus 210 and the memory 213 .
  • the bridge memory controller 211 directs data signals between the processor 201 , the memory 213 , and other components in the computer system 200 and bridges the data signals between the CPU bus 210 , the memory 213 , and a first I/O bus 220 .
  • the first I/O bus 220 may be a single bus or a combination of multiple buses.
  • the first I/O bus 220 may comprise a Peripheral Component Interconnect (PCI) bus, a Personal Computer Memory Card International Association (PCMCIA) bus, a NuBus, or other buses.
  • the first I/O bus 220 provides communication links between components in the computer system 200 .
  • a network controller 221 may be coupled to the first I/O bus 220 .
  • the network controller 221 links the computer system 200 to a network of computers (not shown in FIG. 2) and supports communication among the machines.
  • a display device controller 222 may be coupled to the first I/O bus 220 .
  • the display device controller 222 allows coupling of a display device to the computer system 200 and acts as an interface between the display device and the computer system 200 .
  • the display device controller may be a monochrome display adapter (MDA) card, a color graphics adapter (CGA) card, an enhanced graphics adapter (EGA) card, an extended graphics array (XGA) card or other display device controller.
  • the display device may be a television set, a computer monitor, a flat panel display or other display device.
  • the display device receives data signals from the processor 201 through the display device controller 222 and displays the information and data signals to the user of the computer system 200 .
  • a video camera 223 may be coupled to the first I/O bus 220 .
  • the video camera 220 operates to capture an image of an object.
  • the video camera 223 may be a digital video camera having internal digital video capture hardware that translates the captured image into digital graphical data.
  • the video camera 223 may be an analog video camera having digital video capture hardware external to the video camera 223
  • a management module 111 may be coupled to the first I/O bus 220 in an embodiment of the computer system 200 where the computer system 200 is implemented as the computer system 110 .
  • the management module 111 includes a secondary processor 225 that may be used by the remote management console 120 (shown in FIG. 1) as a shutdown agent.
  • the management module 111 includes a communications interface 226 that may be used to interface the remote management console 120 without the assistance of other components in the computer system 200 .
  • a second I/O bus 230 may be a single bus or a combination of multiple buses.
  • the second I/O bus 230 may comprise a PCI bus, a PCMCIA bus, a NuBus, an Industry Standard Architecture (ISA) bus, or other buses.
  • the second I/O bus 230 provides communication links between components in the computer system 200 .
  • a data storage device 231 may be coupled to the second I/O bus 230 .
  • the data storage device 231 may be a hard disk drive, a floppy disk drive, a CD-ROM device, a flash memory device or other mass storage device.
  • a read only memory (ROM) 232 may be coupled to the second I/O bus.
  • the ROM 232 is nonvolatile memory that stores data that is executed by the processor 201 .
  • the ROM 232 may be used to store the computer system's BIOS.
  • a BIOS provides the computer system with a basic set of instructions to perform during system boot up. The instructions may include tests as well as directions required to control peripherals on the computer system.
  • a serial interface 112 may be coupled to the second I/O bus 230 in an embodiment of the computer system 200 where the computer system 200 is implemented as the computer system 110 .
  • the serial interface 112 may be used as a general-purpose interface to connect devices including modems, mice, and printers. According to an embodiment of the present invention, the serial interface 112 may be used as a communications interface to directly connect the remote management console 120 with the computer system 200 . According to an alternate embodiment of the present invention, the serial interface 112 may be used as a communications interface to connect the remote management console 120 with the computer system 200 via a modem (not shown).
  • a secondary processor (not shown) may be connected between the secondary I/O bus 230 and the serial interface 112 to support the serial interface 112 . The secondary processor may be used by the remote management console 120 as a shutdown agent.
  • a keyboard interface 233 may be coupled to the second I/O bus 230 .
  • the keyboard interface 233 may be a keyboard controller or other keyboard interface.
  • the keyboard interface 233 may be a dedicated device or can reside in another device such as a bus controller or other controller.
  • the keyboard interface 233 allows coupling of a keyboard to the computer system 200 and transmits data signals from a keyboard to the computer system 200 .
  • An audio controller 234 may be coupled to the second I/O bus 230 .
  • the audio controller 234 operates to coordinate the recording and playing of sounds is also coupled to the I/O bus 230 .
  • a bus bridge 224 couples the first I/O bus 220 to the second I/O bus 230 .
  • the bus bridge 224 operates to buffer and bridge data signals between the first I/O bus 220 and the second I/O bus 230 .
  • FIG. 3 is a block diagram illustrating the BIOS 300 stored in the ROM 232 (shown in FIG. 2) of computer system 110 according to an embodiment of the present invention.
  • the BIOS 300 includes a sequence of instructions that are executed by the processor 201 (shown in FIG. 2) to perform a system boot sequence when the computer system 110 is turned on.
  • the sequence of instructions are illustrated as modules in FIG. 3.
  • the BIOS 300 includes an initialization module 310 .
  • the initialization module 310 may include a power-on self test (POST).
  • the POST is a diagnostic program that performs a cursory check on the components in the computer system 110 .
  • the initialization module 310 may also include programs that initialize peripherals in the computer system 110 , that determine the identity of the components on the computer system 110 , and that perform tests on specific components in the computer system 110 .
  • the initialization module 310 generates an initialization report that describes the results of the tests performed on the computer system 110 .
  • the BIOS 300 includes a boot strap loader module 320 that is executed after the initialization module 310 is executed.
  • the boot strap loader module 320 includes a communications driver 321 .
  • the communications driver 321 supports a protocol of communications with the management module 111 (shown in FIGS. 1 and 2) or the serial interface 112 (shown in FIGS. 1 and 2).
  • the communications driver 321 supports a protocol of communications with the management module 111 where data is passed to each other via a shared portion of a memory such as the memory 213 (shown in FIG. 2) in the computer system 110 or other memory.
  • the communications driver 321 may include a serial port driver that supports communications with the serial interface 112 .
  • the boot strap loader module 320 includes a session manager 322 .
  • the session manager 322 determines whether the remote management console 120 is requesting a diagnostic session with the computer system 110 . According to an embodiment of the present invention, the session manager 322 transmits a query message to the remote computer system 120 via a communications interface 226 (shown in FIG. 2) on the management module III or the serial interface 112 .
  • the session manager 322 monitors the communications interface 226 on the management module 111 or the serial interface 112 for a diagnostic session request message from the remote management console 120 in response to the query message.
  • the boot strap loader module 320 includes a session authorizer 323 .
  • the session authorizer 323 determines whether the remote management console 120 is authorized to request the diagnostic session. According to an embodiment of the present invention, the remote management console 120 transmits a diagnostic session password with a diagnostic session request message.
  • the session authorizer 323 compares the diagnostic session password received with a stored password to determine whether the remote management console 120 has authorization to request the diagnostic session. If the remote management console 120 has authorization to request the diagnostic session, the session authorizer 323 generates a message stating that a diagnostic session was established successfully. If the remote management console 120 does not have authorization to request the diagnostic session, the session authorizer 323 generates an error message. It should be appreciated that the session authorizer 323 may reside in the management module 225 instead of the boot strap loader 320 .
  • the boot strap loader module 324 includes a system status provider 324 .
  • the system status provider 324 provides the remote management console 120 with information about the computer system 110 to allow the remote management console 120 to determine appropriate diagnostics to download onto the computer system 110 .
  • the system status provider 324 may provide the remote management console 120 with information about the version of the BIOS 300 in the computer system 110 , an initialization report that describes the results of the tests performed by the initialization module 310 , or other information. It should be appreciated that the system status provider may reside in the management module 225 instead of the boot strap loader 320 .
  • the boot strap loader module 320 includes a data handler 325 .
  • the data handler 325 receives data from the remote management console 120 .
  • the data includes diagnostic software code and a location in the memory 213 to write the diagnostic software code.
  • the data handler 325 writes diagnostic software code received into locations in memory as specified by the remote management console 120 .
  • a diagnostic environment loader program may be downloaded by the data handler 325 in a situation where a two stage loading process is required. In a two stage loading process, the data handler 325 downloads the diagnostic environment loader which takes control of the downloading.
  • the diagnostic environment loader may include functionalities which allows it to support more complicated loading operations not supported by the data handler 325 .
  • the BIOS includes an operating system boot module 330 .
  • the operating system boot module 330 is executed when the session manager 322 determines that no diagnostic session requests are being made.
  • the operating system boot module 330 loads an operating system into the memory 213 of the computer system 110 and runs the operating system.
  • the remote management console 120 (shown in FIG. 1) is used to perform field diagnostics on the computer system 110 .
  • performing field diagnostics on the computer system 110 is performed by the remote management console 120 in response to the processor 201 (shown in FIG. 2) executing sequences of instructions in main memory 213 (shown in FIG. 2).
  • Such instructions may be read into memory 213 from another computer-readable medium, such as data storage device 231 (shown in FIG. 2), or from another source via the network controller 221 (shown in FIG. 2).
  • Execution of the sequences of instructions causes the processor 201 to perform field diagnostics on the computer system 110 , as will be described hereafter.
  • hardwired circuitry may be used in place of or in combination with software instructions to implement the present invention.
  • the present invention is not limited to any specific combination of hardware circuitry and software.
  • FIG. 4 is a block diagram of modules implementing a console diagnostic tester 400 according to an embodiment of the present invention.
  • the modules are implemented by software and reside in main memory 213 (shown in FIG. 2) of the remote management console 120 as sequences of instructions. It should be appreciated that the modules may also be implemented by hardware as components coupled to the bus 220 (shown in FIG. 2) of the remote management console 120 (shown in FIG. 1) or a combination of both hardware and software.
  • the console diagnostic tester 400 includes a connection initiator 410 .
  • the connection initiator 410 establishes a connection between the remote management console 120 with the computer system 110 .
  • the connection initiator 410 also generates a signal to a shutdown agent on the computer system 110 to initiate a shutdown and reset of the computer system 110 .
  • Resetting the computer system 110 executes the bootstrap loader 320 (shown in FIG. 3) in the BIOS 300 (shown in FIG. 3) which places the computer system 110 in a diagnostic state.
  • the console diagnostic tester 400 includes a session initiator 420 . Upon receiving a query message from the computer system 110 , the console diagnostic tester 400 transmits a diagnostic session request message to the computer system 110 .
  • the session initiator 420 may also transmit a diagnostic session password with the diagnostic request message.
  • the diagnostic session password may be used by the computer system 110 to confirm that the remote management console 120 has authorization to request the diagnostic session.
  • the console diagnostic tester 400 includes a system interrogator 430 . Upon receiving a message from the computer system 110 that indicates a diagnostic session has been established successfully, the system interrogator 430 interrogates the computer system 110 for information to determine types of diagnostics to download to the computer system 110 .
  • the system interrogator 430 may request for example a version of the BIOS on the computer system 110 , an initialization report generated by the BIOS of the computer system 110 , or other information.
  • the console diagnostic tester 400 includes a data loader 440 .
  • the data loader 440 downloads data to the computer system 110 .
  • the data loader 440 downloads data that includes diagnostic software code and locations in memory to write the diagnostic software code.
  • the diagnostic software code may include a diagnostic environment loader to assist in downloading additional data, a test run time environment, a test control agent, and diagnostic tests.
  • the console diagnostic tester 400 includes an execution unit 450 that runs the diagnostic software downloaded on the computer system 110 .
  • the computer system 110 is used by the remote management console 120 to perform field diagnostics on the computer system 110 .
  • field diagnostics is performed on the computer system 110 in response to the processor 201 (shown in FIG. 2) executing sequences of instructions in main memory 213 (shown in FIG. 2).
  • Such instructions may be read into memory 213 from another computer-readable medium, such as data storage device 231 (shown in FIG. 2), or from another source via the network controller 221 (shown in FIG. 2).
  • Execution of the sequences of instructions causes the processor 201 to perform diagnostics on the computer system 110 , as will be described hereafter.
  • hardwired circuitry may be used in place of or in combination with software instructions to implement the present invention.
  • the present invention is not limited to any specific combination of hardware circuitry and software.
  • FIG. 5 is a block diagram of modules implementing a system diagnostic tester 500 according to an embodiment of the present invention.
  • the modules are implemented by software and reside in main memory 213 (shown in FIG. 2) of the computer system 110 as sequences of instructions. It should be appreciated that the modules may also be implemented by hardware as components coupled to the bus 220 (shown in FIG. 2) or a combination of both hardware and software.
  • the system diagnostic tester 500 includes a diagnostic environment loader 510 .
  • the diagnostic environment loader 510 may be used to support a two stage loading process where it performs loading operations which a data handler may not support. It should be appreciated that the system diagnostic tester 500 may operate without the diagnostic environment loader 510 .
  • the system diagnostic tester 500 includes a test run time environment 520 .
  • the test run time environment 520 is a system environment that allows code to be executed.
  • the test run time environment may be for example a Disk Operating System (DOS) or other operating system.
  • the system diagnostic tester 500 includes a test control agent 530 .
  • the test control agent 530 is an application running in the test run time environment 520 that operates as a mechanism for the remote computer system 120 (shown in FIG. 1) to determine which diagnostic tests to execute and obtain the results of the diagnostic tests.
  • the test control agent 530 allows the remote management console 120 to manages diagnostic testing on the computer system 110 .
  • the system diagnostic tester 500 also includes diagnostic tests 540 that have been downloaded
  • the present invention allows the remote downloading and execution of diagnostic test programs 540 onto the computer system 110 without any local user intervention.
  • the present invention does not require a peripheral drive such as a hard drive, floppy drive, or CDROM drive to be functional on the computer system 110 to support the diagnostic session.
  • the test run time environment 520 and diagnostic tests 540 are downloaded to memory 213 rather than run from the computer system peripheral disk drive.
  • FIG. 6 is a flow chart illustrating a method for managing a computer system according to a first embodiment of the present invention.
  • the computer system is reset from a remote location.
  • resetting the computer system from a remote location is achieved by interfacing the computer system via a remote connection and sending a shutdown request to a shutdown agent in the computer system via the remote connection.
  • Interfacing the computer system via a remote connection may be achieved, for example, by interfacing the computer system via an Ethernet connection or a modem connection to a management module connected to the computer system, or interfacing the computer system via a direct connection or modem connection to a serial interface connected to the computer system.
  • a diagnostic session request and a diagnostic session password is transmitted to the computer system via the remote connection.
  • the computer system is interrogated to determine types of diagnostic software to download onto the computer system.
  • the computer system is interrogated by retrieving BIOS version information, an initialization report, or other information from the computer system. Determining types of diagnostic software to download onto the computer system may be achieved by matching a set of diagnostic tests designed for a specific BIOS version or selecting specific diagnostic tests to run on a component reported as failing a test in the initialization report.
  • data is downloaded onto the computer system.
  • the data includes diagnostic software code and a location in memory to write the diagnostic software code.
  • the diagnostic software code may include a diagnostic environment loader, test run time environment, test control agent, tests, or other diagnostic software code.
  • step 605 the diagnostic software downloaded from the remote location is executed.
  • a diagnostic report generated from the diagnostic software is transmitted to the remote location.
  • FIG. 7 is a flow chart illustrating a method for managing a computer system according to a second embodiment of the present invention.
  • step 701 it is determined whether a remote computer system is requesting a diagnostic session. If the remote computer system is not requesting a diagnostic session, control proceeds to step 702 . If the remote computer system is requesting a diagnostic session, control proceeds to step 703 .
  • determining whether a remote computer system is requesting a diagnostic session is achieved by transmitting a query message to the remote computer system via a communications interface, and monitoring the communications interface for a diagnostic session request message from the remote computer system.
  • step 702 the operating system is booted up.
  • step 703 it is determined whether the remote computer system is authorized to participate in the diagnostic session. If the remote computer system is not authorized to participate in the diagnostic session, control proceeds to step 704 . If the remote computer system is authorized to participate in the diagnostic session, control proceeds to step 705 .
  • a error message is transmitted to the remote computer system.
  • system status information is transmitted to the remote computer system.
  • the system status information may include a BIOS version number, an initialization report, or other information.
  • the system status information may be used by the remote computer system to determine the types of diagnostics to perform on the computer system.
  • diagnostic software code received from the remote computer system is written into locations in memory as specified by the remote computer system.
  • step 707 the diagnostic software is executed.

Abstract

A method for managing a computer system includes initiating a reset of the computer system from a remote location. Diagnostic software on the computer system is downloaded from the remote location.

Description

    FIELD OF THE INVENTION
  • The present invention relates to the field of computer systems. More specifically, the present invention relates to a method and apparatus for performing field diagnostics on a computer system. [0001]
  • BACKGROUND OF THE INVENTION
  • Diagnostic software such as AMIDiag by American Megatrends, Inc. and QAPlusĀ® by DiagSoft, Inc. provide trouble shooting capabilities for diagnosing problems with server computer systems. AMIDiag and QAPlus perform tests on the server computer systems' memory, CPU, video controller, serial ports, parallel ports, disks, modems chipsets, and other components on the server computer systems. [0002]
  • Typically, when a server computer system experiences problems, a service technician is dispatched to the site of the server computer system to perform diagnostics on the server computer system. Typically, the service technician is required to reset the server computer system and load a diagnostic environment onto the computer system server. The service technician may then run a diagnostic program such as AMIDiag, QAPlus, or other diagnostic program in order to determine the source of the problem. Upon determining the source of the problem, the service technician may be required to obtain a piece of hardware or a software program to repair the server computer system. Thus, the service technician may be required to make more than one visit to the site of the server computer system. The drawback with this approach is that additional delay and costs are incurred when a service technician is required to make multiple visits to the remote location to diagnose and repair the server computer system. Similar problems also exist when desktop computer systems, main frame computer systems, or other computer systems require diagnosis and repair. [0003]
  • SUMMARY OF THE INVENTION
  • A method for managing a computer system is disclosed. A reset of the computer system is initiated from a remote location. Diagnostic software downloaded from the remote location is run on the computer system. [0004]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings, in which the like references indicate similar elements in and in which: [0005]
  • FIG. 1 illustrates a computer system and a remote management console according to an embodiment of the present invention; [0006]
  • FIG. 2 illustrates a block diagram of a computer system implementing an embodiment of the present invention; [0007]
  • FIG. 3 is a block diagram illustrating the Basic Input Output System (BIOS) according to an embodiment of the present invention; [0008]
  • FIG. 4 is a block diagram illustrating a console diagnostic tester according to an embodiment of the present invention; [0009]
  • FIG. 5 is a block diagram illustrating a system diagnostic tester according to an embodiment of the present invention; [0010]
  • FIG. 6 is a flow chart illustrating a method for managing a computer system according to a first embodiment of the present invention; and [0011]
  • FIG. 7 is a flow chart illustrating a method for managing a computer system according to a second embodiment of the present invention. [0012]
  • DETAILED DESCRIPTION
  • FIG. 1 illustrates a computer system [0013] 110 and a remote management console 120 according to an embodiment of the present invention. The computer system 110 may be a server computer system, a desktop or a laptop personal computer (PC), a main frame computer system, or other computer system. The remote management console 120 resides in a location that is remote with respect to the computer system 110. The remote management console 120 may be a server computer system, a desktop or laptop PC, a main frame computer system, or other computer system. The remote management console 120 is coupled to the computer system 110 via a transmission medium 130. The computer system 110 and the remote management console 120 transmit data to each other via the transmission medium 130. The transmission medium 130 may be fiber optics, cable, twisted pair, microwave, or other transmission media. The computer system 110 and the remote computer system 120 may be coupled to the transmission medium 130 via a Ethernet connection, a serial connection, a modem connection, or other connection.
  • According to an embodiment of the present invention, the [0014] remote management console 120 is used to perform diagnostics on the computer system 110. The remote management console 120 initiates a remote connection with the computer system 110 via the transmission medium 130. The remote connection may be supported by the computer system 110 via a management module 111. The management module 111 may be, for example, an INTEL Server Monitor Module (SMM). The management module 111 includes a secondary processor (not shown) and a communications interface (not shown) that may be used to interface a remote computer system such as the remote management console 120 without the assistance of other components in the computer system 110. The management module 111 may be used to provide support for the computer system 110 when components in or around the computer system 110 experience failure. For example, the management module 111 may support out of band access for use when the operating system is not functional or when a network connected to a network controller on the computer system 110 is down, remote control of the operating system, system shutdown, and access to system state information to aid in problem diagnosis. According to an embodiment of the present invention, the management module 111 may be used to connect to the remote management console 120 via an Ethernet connection, modem connection, or other connection. The remote management console 120 may initiate a connection with the computer system 110 via a serial interface 112. The serial interface 112 may be used as a communications interface to directly connect the remote management console 120 with the computer system 110 or indirectly connect the remote management console 120 with the computer system 110 via a modem (not shown).
  • The [0015] remote management console 120 sends a signal to a shutdown agent on the computer system 110 to initiate a shutdown and reset of the computer system 110. By resetting the computer system 110, the computer system will execute its Basic Input Output System (BIOS) code. The BIOS code includes a boot strap loader. When executed, the boot strap loader puts the computer system 110 in a diagnostic state. The boot strap loader recognizes when a connection from the remote management console 120 has been established. The boot strap loader may be used to authorize a diagnostic session request from the remote management console 120, provide the remote management console 120 with information about the computer system 110, and provide support in downloading diagnostic software code from the remote management console 120 directly into a memory in the computer system 110. The diagnostic software code may be executed by a processor (not shown) in the computer system 110 to generate a diagnostic report of the condition of the computer system 110 to the remote management console 120.
  • FIG. 2 illustrates a block diagram of a [0016] computer system 200 that may be implemented as the computer system 110 (shown in FIG. 1) or the remote management console 120 (shown in FIG. 1). The computer system 200 includes a processor 201 that processes data signals. The processor 201 may be a complex instruction set computer (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing a combination of instruction sets, or other processor device. FIG. 2 shows an example of the present invention implemented on a single processor computer system 200. However, it is understood that the present invention may be implemented in a computer system having multiple processors. The processor 201 is coupled to a CPU bus 210 that transmits data signals between processor 201 and other components in the computer system 200.
  • The [0017] computer system 200 includes a memory 213. The memory 213 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, or other memory device. The memory 213 may store instructions and code represented by data signals that may be executed by the processor 201. A cache memory 202 may reside inside the processor 201 to store data signals stored in the memory 213. The cache 202 speeds up memory accesses by the processor 201 by taking advantage of its locality of access. In an alternate embodiment of the computer system 200, the cache 202 resides external to the processor 201.
  • A [0018] bridge memory controller 211 may be coupled to the CPU bus 210 and the memory 213. The bridge memory controller 211 directs data signals between the processor 201, the memory 213, and other components in the computer system 200 and bridges the data signals between the CPU bus 210, the memory 213, and a first I/O bus 220.
  • The first I/[0019] O bus 220 may be a single bus or a combination of multiple buses. As an example, the first I/O bus 220 may comprise a Peripheral Component Interconnect (PCI) bus, a Personal Computer Memory Card International Association (PCMCIA) bus, a NuBus, or other buses. The first I/O bus 220 provides communication links between components in the computer system 200. A network controller 221 may be coupled to the first I/O bus 220. The network controller 221 links the computer system 200 to a network of computers (not shown in FIG. 2) and supports communication among the machines. A display device controller 222 may be coupled to the first I/O bus 220. The display device controller 222 allows coupling of a display device to the computer system 200 and acts as an interface between the display device and the computer system 200. The display device controller may be a monochrome display adapter (MDA) card, a color graphics adapter (CGA) card, an enhanced graphics adapter (EGA) card, an extended graphics array (XGA) card or other display device controller. The display device may be a television set, a computer monitor, a flat panel display or other display device. The display device receives data signals from the processor 201 through the display device controller 222 and displays the information and data signals to the user of the computer system 200. A video camera 223 may be coupled to the first I/O bus 220. The video camera 220 operates to capture an image of an object. The video camera 223 may be a digital video camera having internal digital video capture hardware that translates the captured image into digital graphical data. The video camera 223 may be an analog video camera having digital video capture hardware external to the video camera 223 for digitizing the captured image.
  • A [0020] management module 111 may be coupled to the first I/O bus 220 in an embodiment of the computer system 200 where the computer system 200 is implemented as the computer system 110. The management module 111 includes a secondary processor 225 that may be used by the remote management console 120 (shown in FIG. 1) as a shutdown agent. The management module 111 includes a communications interface 226 that may be used to interface the remote management console 120 without the assistance of other components in the computer system 200.
  • A second I/[0021] O bus 230 may be a single bus or a combination of multiple buses. As an example, the second I/O bus 230 may comprise a PCI bus, a PCMCIA bus, a NuBus, an Industry Standard Architecture (ISA) bus, or other buses. The second I/O bus 230 provides communication links between components in the computer system 200. A data storage device 231 may be coupled to the second I/O bus 230. The data storage device 231 may be a hard disk drive, a floppy disk drive, a CD-ROM device, a flash memory device or other mass storage device.
  • A read only memory (ROM) [0022] 232 may be coupled to the second I/O bus. The ROM 232 is nonvolatile memory that stores data that is executed by the processor 201. The ROM 232 may be used to store the computer system's BIOS. A BIOS provides the computer system with a basic set of instructions to perform during system boot up. The instructions may include tests as well as directions required to control peripherals on the computer system.
  • A [0023] serial interface 112 may be coupled to the second I/O bus 230 in an embodiment of the computer system 200 where the computer system 200 is implemented as the computer system 110. The serial interface 112 may be used as a general-purpose interface to connect devices including modems, mice, and printers. According to an embodiment of the present invention, the serial interface 112 may be used as a communications interface to directly connect the remote management console 120 with the computer system 200. According to an alternate embodiment of the present invention, the serial interface 112 may be used as a communications interface to connect the remote management console 120 with the computer system 200 via a modem (not shown). A secondary processor (not shown) may be connected between the secondary I/O bus 230 and the serial interface 112 to support the serial interface 112. The secondary processor may be used by the remote management console 120 as a shutdown agent.
  • A [0024] keyboard interface 233 may be coupled to the second I/O bus 230. The keyboard interface 233 may be a keyboard controller or other keyboard interface. The keyboard interface 233 may be a dedicated device or can reside in another device such as a bus controller or other controller. The keyboard interface 233 allows coupling of a keyboard to the computer system 200 and transmits data signals from a keyboard to the computer system 200. An audio controller 234 may be coupled to the second I/O bus 230. The audio controller 234 operates to coordinate the recording and playing of sounds is also coupled to the I/O bus 230. A bus bridge 224 couples the first I/O bus 220 to the second I/O bus 230. The bus bridge 224 operates to buffer and bridge data signals between the first I/O bus 220 and the second I/O bus 230.
  • FIG. 3 is a block diagram illustrating the [0025] BIOS 300 stored in the ROM 232 (shown in FIG. 2) of computer system 110 according to an embodiment of the present invention. The BIOS 300 includes a sequence of instructions that are executed by the processor 201 (shown in FIG. 2) to perform a system boot sequence when the computer system 110 is turned on. The sequence of instructions are illustrated as modules in FIG. 3. The BIOS 300 includes an initialization module 310. The initialization module 310 may include a power-on self test (POST). The POST is a diagnostic program that performs a cursory check on the components in the computer system 110. The initialization module 310 may also include programs that initialize peripherals in the computer system 110, that determine the identity of the components on the computer system 110, and that perform tests on specific components in the computer system 110. The initialization module 310 generates an initialization report that describes the results of the tests performed on the computer system 110.
  • The [0026] BIOS 300 includes a boot strap loader module 320 that is executed after the initialization module 310 is executed. The boot strap loader module 320 includes a communications driver 321. The communications driver 321 supports a protocol of communications with the management module 111 (shown in FIGS. 1 and 2) or the serial interface 112 (shown in FIGS. 1 and 2). The communications driver 321 supports a protocol of communications with the management module 111 where data is passed to each other via a shared portion of a memory such as the memory 213 (shown in FIG. 2) in the computer system 110 or other memory. The communications driver 321 may include a serial port driver that supports communications with the serial interface 112.
  • The boot [0027] strap loader module 320 includes a session manager 322. The session manager 322 determines whether the remote management console 120 is requesting a diagnostic session with the computer system 110. According to an embodiment of the present invention, the session manager 322 transmits a query message to the remote computer system 120 via a communications interface 226 (shown in FIG. 2) on the management module III or the serial interface 112. The session manager 322 monitors the communications interface 226 on the management module 111 or the serial interface 112 for a diagnostic session request message from the remote management console 120 in response to the query message.
  • The boot [0028] strap loader module 320 includes a session authorizer 323. The session authorizer 323 determines whether the remote management console 120 is authorized to request the diagnostic session. According to an embodiment of the present invention, the remote management console 120 transmits a diagnostic session password with a diagnostic session request message. The session authorizer 323 compares the diagnostic session password received with a stored password to determine whether the remote management console 120 has authorization to request the diagnostic session. If the remote management console 120 has authorization to request the diagnostic session, the session authorizer 323 generates a message stating that a diagnostic session was established successfully. If the remote management console 120 does not have authorization to request the diagnostic session, the session authorizer 323 generates an error message. It should be appreciated that the session authorizer 323 may reside in the management module 225 instead of the boot strap loader 320.
  • The boot [0029] strap loader module 324 includes a system status provider 324. The system status provider 324 provides the remote management console 120 with information about the computer system 110 to allow the remote management console 120 to determine appropriate diagnostics to download onto the computer system 110. The system status provider 324 may provide the remote management console 120 with information about the version of the BIOS 300 in the computer system 110, an initialization report that describes the results of the tests performed by the initialization module 310, or other information. It should be appreciated that the system status provider may reside in the management module 225 instead of the boot strap loader 320.
  • The boot [0030] strap loader module 320 includes a data handler 325. During a diagnostic session, the data handler 325 receives data from the remote management console 120. The data includes diagnostic software code and a location in the memory 213 to write the diagnostic software code. The data handler 325 writes diagnostic software code received into locations in memory as specified by the remote management console 120. A diagnostic environment loader program may be downloaded by the data handler 325 in a situation where a two stage loading process is required. In a two stage loading process, the data handler 325 downloads the diagnostic environment loader which takes control of the downloading. The diagnostic environment loader may include functionalities which allows it to support more complicated loading operations not supported by the data handler 325.
  • The BIOS includes an operating [0031] system boot module 330. The operating system boot module 330 is executed when the session manager 322 determines that no diagnostic session requests are being made. The operating system boot module 330 loads an operating system into the memory 213 of the computer system 110 and runs the operating system.
  • According to an embodiment of the present invention, the remote management console [0032] 120 (shown in FIG. 1) is used to perform field diagnostics on the computer system 110. According to one embodiment, performing field diagnostics on the computer system 110 is performed by the remote management console 120 in response to the processor 201 (shown in FIG. 2) executing sequences of instructions in main memory 213 (shown in FIG. 2). Such instructions may be read into memory 213 from another computer-readable medium, such as data storage device 231 (shown in FIG. 2), or from another source via the network controller 221 (shown in FIG. 2). Execution of the sequences of instructions causes the processor 201 to perform field diagnostics on the computer system 110, as will be described hereafter. In an alternative embodiment, hardwired circuitry may be used in place of or in combination with software instructions to implement the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software.
  • FIG. 4 is a block diagram of modules implementing a console [0033] diagnostic tester 400 according to an embodiment of the present invention. In a preferred embodiment of the present invention, the modules are implemented by software and reside in main memory 213 (shown in FIG. 2) of the remote management console 120 as sequences of instructions. It should be appreciated that the modules may also be implemented by hardware as components coupled to the bus 220 (shown in FIG. 2) of the remote management console 120 (shown in FIG. 1) or a combination of both hardware and software.
  • The console [0034] diagnostic tester 400 includes a connection initiator 410. The connection initiator 410 establishes a connection between the remote management console 120 with the computer system 110. The connection initiator 410 also generates a signal to a shutdown agent on the computer system 110 to initiate a shutdown and reset of the computer system 110. Resetting the computer system 110 executes the bootstrap loader 320 (shown in FIG. 3) in the BIOS 300 (shown in FIG. 3) which places the computer system 110 in a diagnostic state. The console diagnostic tester 400 includes a session initiator 420. Upon receiving a query message from the computer system 110, the console diagnostic tester 400 transmits a diagnostic session request message to the computer system 110. The session initiator 420 may also transmit a diagnostic session password with the diagnostic request message. The diagnostic session password may be used by the computer system 110 to confirm that the remote management console 120 has authorization to request the diagnostic session. The console diagnostic tester 400 includes a system interrogator 430. Upon receiving a message from the computer system 110 that indicates a diagnostic session has been established successfully, the system interrogator 430 interrogates the computer system 110 for information to determine types of diagnostics to download to the computer system 110. The system interrogator 430 may request for example a version of the BIOS on the computer system 110, an initialization report generated by the BIOS of the computer system 110, or other information. The console diagnostic tester 400 includes a data loader 440. The data loader 440 downloads data to the computer system 110. The data loader 440 downloads data that includes diagnostic software code and locations in memory to write the diagnostic software code. The diagnostic software code may include a diagnostic environment loader to assist in downloading additional data, a test run time environment, a test control agent, and diagnostic tests. The console diagnostic tester 400 includes an execution unit 450 that runs the diagnostic software downloaded on the computer system 110.
  • According to an embodiment of the present invention, the computer system [0035] 110 is used by the remote management console 120 to perform field diagnostics on the computer system 110. According to one embodiment, field diagnostics is performed on the computer system 110 in response to the processor 201 (shown in FIG. 2) executing sequences of instructions in main memory 213 (shown in FIG. 2). Such instructions may be read into memory 213 from another computer-readable medium, such as data storage device 231 (shown in FIG. 2), or from another source via the network controller 221 (shown in FIG. 2). Execution of the sequences of instructions causes the processor 201 to perform diagnostics on the computer system 110, as will be described hereafter. In an alternative embodiment, hardwired circuitry may be used in place of or in combination with software instructions to implement the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software.
  • FIG. 5 is a block diagram of modules implementing a system [0036] diagnostic tester 500 according to an embodiment of the present invention. In a preferred embodiment of the present invention, the modules are implemented by software and reside in main memory 213 (shown in FIG. 2) of the computer system 110 as sequences of instructions. It should be appreciated that the modules may also be implemented by hardware as components coupled to the bus 220 (shown in FIG. 2) or a combination of both hardware and software.
  • The system [0037] diagnostic tester 500 includes a diagnostic environment loader 510. The diagnostic environment loader 510 may be used to support a two stage loading process where it performs loading operations which a data handler may not support. It should be appreciated that the system diagnostic tester 500 may operate without the diagnostic environment loader 510. The system diagnostic tester 500 includes a test run time environment 520. The test run time environment 520 is a system environment that allows code to be executed. The test run time environment may be for example a Disk Operating System (DOS) or other operating system. The system diagnostic tester 500 includes a test control agent 530. The test control agent 530 is an application running in the test run time environment 520 that operates as a mechanism for the remote computer system 120 (shown in FIG. 1) to determine which diagnostic tests to execute and obtain the results of the diagnostic tests. The test control agent 530 allows the remote management console 120 to manages diagnostic testing on the computer system 110. The system diagnostic tester 500 also includes diagnostic tests 540 that have been downloaded from the remote management console.
  • The present invention allows the remote downloading and execution of [0038] diagnostic test programs 540 onto the computer system 110 without any local user intervention. The present invention does not require a peripheral drive such as a hard drive, floppy drive, or CDROM drive to be functional on the computer system 110 to support the diagnostic session. The test run time environment 520 and diagnostic tests 540 are downloaded to memory 213 rather than run from the computer system peripheral disk drive.
  • FIG. 6 is a flow chart illustrating a method for managing a computer system according to a first embodiment of the present invention. At [0039] step 601, the computer system is reset from a remote location. According to an embodiment of the present invention, resetting the computer system from a remote location is achieved by interfacing the computer system via a remote connection and sending a shutdown request to a shutdown agent in the computer system via the remote connection. Interfacing the computer system via a remote connection may be achieved, for example, by interfacing the computer system via an Ethernet connection or a modem connection to a management module connected to the computer system, or interfacing the computer system via a direct connection or modem connection to a serial interface connected to the computer system.
  • At [0040] step 602, a diagnostic session request and a diagnostic session password is transmitted to the computer system via the remote connection.
  • At [0041] step 603, the computer system is interrogated to determine types of diagnostic software to download onto the computer system. According to an embodiment of the present invention, the computer system is interrogated by retrieving BIOS version information, an initialization report, or other information from the computer system. Determining types of diagnostic software to download onto the computer system may be achieved by matching a set of diagnostic tests designed for a specific BIOS version or selecting specific diagnostic tests to run on a component reported as failing a test in the initialization report.
  • At [0042] step 604, data is downloaded onto the computer system. According to an embodiment of the present invention, the data includes diagnostic software code and a location in memory to write the diagnostic software code. The diagnostic software code may include a diagnostic environment loader, test run time environment, test control agent, tests, or other diagnostic software code.
  • At [0043] step 605, the diagnostic software downloaded from the remote location is executed.
  • At [0044] step 606, a diagnostic report generated from the diagnostic software is transmitted to the remote location.
  • FIG. 7 is a flow chart illustrating a method for managing a computer system according to a second embodiment of the present invention. At [0045] step 701, it is determined whether a remote computer system is requesting a diagnostic session. If the remote computer system is not requesting a diagnostic session, control proceeds to step 702. If the remote computer system is requesting a diagnostic session, control proceeds to step 703. According to an embodiment of the present invention, determining whether a remote computer system is requesting a diagnostic session is achieved by transmitting a query message to the remote computer system via a communications interface, and monitoring the communications interface for a diagnostic session request message from the remote computer system.
  • At [0046] step 702, the operating system is booted up.
  • At [0047] step 703, it is determined whether the remote computer system is authorized to participate in the diagnostic session. If the remote computer system is not authorized to participate in the diagnostic session, control proceeds to step 704. If the remote computer system is authorized to participate in the diagnostic session, control proceeds to step 705.
  • At step [0048] 704, a error message is transmitted to the remote computer system.
  • At [0049] step 705, system status information is transmitted to the remote computer system. The system status information may include a BIOS version number, an initialization report, or other information. The system status information may be used by the remote computer system to determine the types of diagnostics to perform on the computer system.
  • At [0050] step 706, diagnostic software code received from the remote computer system is written into locations in memory as specified by the remote computer system.
  • At [0051] step 707, the diagnostic software is executed.
  • In the foregoing description, the invention is described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the present invention as set forth in the appended claims. The specification and drawings are to be regarded in an illustrative rather than a restrictive sense. [0052]

Claims (22)

In the claims:
1. A method for managing a computer system, comprising:
initiating a reset of the computer system from a remote location; and
running diagnostic software on the computer system downloaded from the remote location.
2. The method of
claim 1
, wherein initiating the reset of the computer system from the remote location, comprises:
interfacing the computer system via a remote connection; and
sending a request to a shut down agent in the computer system via the remote connection.
3. The method of
claim 1
, further comprising the step of interrogating the computer system to determine types of diagnostic software to download onto the computer system.
4. The method of
claim 3
, wherein interrogating the computer system comprises retrieving BIOS information from the computer system.
5. The method of
claim 1
, further comprising the step of downloading diagnostic software onto the computer system.
6. The method of
claim 5
, wherein downloading diagnostic software onto the computer system comprises transmitting data that includes diagnostic software code and a location in memory to write the diagnostic software code to a communications driver in the computer system.
7. The method of
claim 2
, wherein interfacing the computer system via a remote connection, comprises interfacing the computer system via an Ethernet connection to a management module connected to the computer system.
8. The method of
claim 2
, wherein interfacing the computer system via a remote connection, comprises interfacing the computer system via a modem connection to a management module connected to the computer system.
9. The method of
claim 2
, wherein interfacing the computer system via a remote connection, comprises interfacing the computer system via a serial connection to a serial interface connected to the computer system.
10. The method of
claim 2
, wherein interfacing the computer system via a remote connection, comprises interfacing the computer system via a modem connection to a serial interface connected to the computer system.
11. A method for managing a computer system, comprising:
determining whether a remote computer system is requesting a diagnostic session; and
writing diagnostic software code received from the remote computer system into locations in memory as specified by the remote computer system.
12. The method of
claim 11
, wherein determining whether a remote computer system is requesting a diagnostic session, comprises:
transmitting a query message to the remote computer system via a communications interface; and
monitoring the communications interface for a diagnostic session request message from the remote computer system.
13. The method of
claim 11
, further comprising determining whether the remote computer system is authorized to participate in the diagnostic session.
14. The method of
claim 11
, further comprising executing the diagnostic software.
15. A computer-readable medium having a sequence of instructions stored thereon, the sequence of instructions, when executed by a processor, causes the processor to perform the steps of:
determining whether a remote computer system is requesting a diagnostic session; and
writing diagnostic software code received from the remote computer system into locations in memory as specified by the remote computer system.
16. The computer-readable medium of
claim 15
, wherein determining whether a remote computer system is requesting a diagnostic session, comprises:
transmitting a query message to the remote computer system via a communications interface; and
monitoring the communications interface for a diagnostic session request message from the remote computer system.
17. The computer-readable medium of
claim 15
, further comprising instructions which when executed by the processor causes the processor to determine whether the remote computer system is authorized to participate in a diagnostic session.
18. The computer-readable medium of
claim 15
, wherein the computer-readable medium is a read only memory and the sequences of instructions are in a Basic Input Output System (BIOS) of a computer system.
19. An apparatus, comprising:
a shutdown agent that resets a computer system in response to receiving a shut down request from a remote computer system;
a session manager that determines whether the remote computer system is requesting a diagnostic session; and
a data handler that writes diagnostic software code received from the remote computer system into locations in memory as specified by the remote computer system.
20. The apparatus of
claim 19
, further comprising a session authorizer that determines whether the remote computer system is authorized to request the diagnostic session.
21. The apparatus of
claim 19
, further comprising a system status provider that provides the remote computer system with information to determine types of diagnostic software to download to the computer system.
22. A computer system, comprising:
a bus;
a processor coupled to the bus;
a memory coupled to the bus;
a diagnostic manager, coupled to the bus, that includes a shut down agent that resets a computer system in response to receiving a shut down request from a remote computer system, a session manager that determines whether the remote computer system is requesting a diagnostic session, and a data handler that writes diagnostic software code received from the remote computer system into locations in memory as specified by the remote computer system.
US09/116,310 1998-07-15 1998-07-15 Method and apparatus for performing field diagnostics on a computer system Expired - Lifetime US6438711B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/116,310 US6438711B2 (en) 1998-07-15 1998-07-15 Method and apparatus for performing field diagnostics on a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/116,310 US6438711B2 (en) 1998-07-15 1998-07-15 Method and apparatus for performing field diagnostics on a computer system

Publications (2)

Publication Number Publication Date
US20010054161A1 true US20010054161A1 (en) 2001-12-20
US6438711B2 US6438711B2 (en) 2002-08-20

Family

ID=22366428

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/116,310 Expired - Lifetime US6438711B2 (en) 1998-07-15 1998-07-15 Method and apparatus for performing field diagnostics on a computer system

Country Status (1)

Country Link
US (1) US6438711B2 (en)

Cited By (39)

* Cited by examiner, ā€  Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042897A1 (en) * 2000-09-29 2002-04-11 Tanisys Technology Inc. Method and system for distributed testing of electronic devices
US20020120426A1 (en) * 2001-01-10 2002-08-29 Kabushiki Kaisha Toshiba Degradation diagnostic method, degradation diagnostic mediation device and degradation diagnostic device and computer-readable recording medium on which a program is recorded
WO2003010668A2 (en) * 2001-07-26 2003-02-06 Kyocera Wireless Corporation System and method for field diagnosis of wireless communications device system software
US20030033599A1 (en) * 2001-07-26 2003-02-13 Gowri Rajaram System and method for executing wireless communications device dynamic instruction sets
US20030033525A1 (en) * 2001-08-10 2003-02-13 Gowri Rajaram System and method for improved security in handset reprovisioning and reprogramming
US20030064717A1 (en) * 2001-07-26 2003-04-03 Gowri Rajaram System and method for the management of wireless communications device system software downloads in the field
US20030069007A1 (en) * 2001-07-26 2003-04-10 Gowri Rajaram System and method for updating persistent data in a wireless communications device
US20030140284A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Method and apparatus for reduced error checking of data received by a server from a client
US20030233558A1 (en) * 2002-06-13 2003-12-18 Microsoft Corporation System and method for securely booting from a network
US20040103344A1 (en) * 2002-11-26 2004-05-27 Microsoft Corporation System and method for testing computing devices
EP1443400A1 (en) * 2003-01-29 2004-08-04 Sun Microsystems, Inc. Automated test execution framework with central management
US20040214561A1 (en) * 2001-07-26 2004-10-28 Kyocera Wireless Corp. Dynamic interface software for wireless communication devices
US20040215744A1 (en) * 2000-03-07 2004-10-28 Tetsuro Motoyama Method and system for updating the device driver of a business office appliance
US20040214560A1 (en) * 2001-07-26 2004-10-28 Kyocera Wireless Corp. Modular software components for wireless communication devices
US20040243381A1 (en) * 2003-01-29 2004-12-02 Sun Microsystems, Inc. Automated test execution framework with central management
KR100464006B1 (en) * 2002-04-12 2005-01-03 ģ—˜ģ§€ģ „ģž ģ£¼ģ‹ķšŒģ‚¬ System and method for remote examination of personal hand-held terminal
US20050172268A1 (en) * 2004-01-29 2005-08-04 Sun Microsystems, Inc. Mechanism for executing test suites written for different harnesses under one test execution harness
US6961537B2 (en) 2001-08-10 2005-11-01 Kyocera Wireless Corp. System and method for peer-to-peer handset communication
US7027806B2 (en) 2001-07-26 2006-04-11 Kyocera Wireless, Corp. System and method for field downloading a wireless communications device software code section
US20060156054A1 (en) * 2005-01-07 2006-07-13 Lantronix, Inc. Milarrs systems and methods
US20060248034A1 (en) * 2005-04-25 2006-11-02 Microsoft Corporation Dedicated connection to a database server for alternative failure recovery
US7159214B2 (en) 2001-07-26 2007-01-02 Kyocera Wireless Corp. System and method for compacting field upgradeable wireless communication device software code sections
US7184793B2 (en) 2001-07-26 2007-02-27 Kyocera Wireless Corp. System and method for over the air area code update
US7197302B2 (en) 2001-07-26 2007-03-27 Kyocera Wireless Corp. System and method for interchangeable modular hardware components for wireless communication devices
US7200775B1 (en) * 2002-10-04 2007-04-03 American Megatrends, Inc. Method and data structures for use in providing on-demand computer diagnostics
US7231549B1 (en) 2002-10-04 2007-06-12 American Megatrends, Inc. Method and apparatus for providing on-demand computer diagnostics
US7287190B2 (en) 2004-01-29 2007-10-23 Sun Microsystems, Inc. Simultaneous execution of test suites on different platforms
US7296190B2 (en) 2003-01-29 2007-11-13 Sun Microsystems, Inc. Parallel text execution on low-end emulators and devices
US7328007B2 (en) 2001-07-26 2008-02-05 Kyocera Wireless Corp. System and method for organizing wireless communication device system software
US7334166B1 (en) * 2002-10-04 2008-02-19 American Megatrends, Inc. Method, system, and apparatus for providing and utilizing server-side entry points for use in diagnostics on-demand services
US7334162B1 (en) 2003-01-29 2008-02-19 Sun Microsystems, Inc. Dynamic distribution of test execution
US7359698B2 (en) 2003-09-08 2008-04-15 Kyocera Wireless Corp. Systems and methods for enhanced over-the-air programming
US20090024872A1 (en) * 2007-07-20 2009-01-22 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
WO2009065744A1 (en) * 2007-11-22 2009-05-28 Robert Bosch Gmbh Method for diagnosing a control device for service
US20100042710A1 (en) * 2008-08-15 2010-02-18 Asustek Computer Inc. Remote management of computer system
US20100131241A1 (en) * 2008-11-25 2010-05-27 Electrolux Home Products, Inc. Enterprise wide system and methods for configuring, diagnosing, and updating appliances
EP2661901A2 (en) * 2011-01-03 2013-11-13 LG Electronics Inc. Method for providing remote control service and image display apparatus thereof
US20140245289A1 (en) * 2013-02-28 2014-08-28 Apple Inc. Automatic remote execution of an application
US20180225960A1 (en) * 2013-03-13 2018-08-09 Masimo Corporation Systems and methods for monitoring a patient health network

Families Citing this family (75)

* Cited by examiner, ā€  Cited by third party
Publication number Priority date Publication date Assignee Title
US20050274801A1 (en) * 1999-01-29 2005-12-15 Intermec Ip Corp. Method, apparatus and article for validating ADC devices, such as barcode, RFID and magnetic stripe readers
US6654914B1 (en) * 1999-05-28 2003-11-25 Teradyne, Inc. Network fault isolation
JP2001145131A (en) * 1999-11-15 2001-05-25 Minolta Co Ltd Method for diagnosing electronic apparatus, method for reparing electronic apparatus, method for providing inspecting program, diagnostic equipment, and inspection program providing apparatus
US7231513B1 (en) * 1999-12-17 2007-06-12 Intel Corporation Dynamically linked basic input/output system
US6651190B1 (en) * 2000-03-14 2003-11-18 A. Worley Independent remote computer maintenance device
US6990616B1 (en) * 2000-04-24 2006-01-24 Attune Networks Ltd. Analysis of network performance
US6654816B1 (en) * 2000-05-31 2003-11-25 Hewlett-Packard Development Company, L.P. Communication interface systems for locally analyzing computers
JP2001357151A (en) * 2000-06-14 2001-12-26 Daikin Ind Ltd Method and device for equipment control and equipment repair system
US20020095615A1 (en) * 2000-10-15 2002-07-18 Hastings Jeffrey S. Fail safe recovery
US6697962B1 (en) * 2000-10-20 2004-02-24 Unisys Corporation Remote computer system monitoring and diagnostic board
US6711736B1 (en) * 2000-11-07 2004-03-23 Inventec Corporation Method of obtaining the BIOS version date in the windows operating system
US20020133575A1 (en) * 2001-02-22 2002-09-19 Viola Networks Ltd. Troubleshooting remote internet users
US20020143974A1 (en) * 2001-04-02 2002-10-03 Scott Swix Local account manager for a media delivery network
US20020141348A1 (en) * 2001-04-02 2002-10-03 Scott Swix Remote diagnostic tool for a media delivery network
CN1185579C (en) * 2001-07-30 2005-01-19 英äøšč¾¾č‚”ä»½ęœ‰é™å…¬åø Debugging method by using serial port when system is in shutdown time and inactive state
US20030028827A1 (en) * 2001-08-06 2003-02-06 Gray Peter Daniel Method and apparatus for monitoring a computing device
US7065640B2 (en) * 2001-10-11 2006-06-20 International Business Machines Corporation System for implementing a diagnostic or correction boot image over a network connection
US6944793B1 (en) * 2001-10-29 2005-09-13 Red Hat, Inc. Method of remote monitoring
US7263716B1 (en) * 2001-11-01 2007-08-28 Advanced Micro Devices, Inc. Remote management mechanism to prevent illegal system commands
EP1484682B1 (en) * 2003-06-02 2012-12-05 Hewlett-Packard Development Company, L.P. Method and apparatus for providing support for an electronic device
EP1484683A1 (en) * 2003-06-02 2004-12-08 Hewlett-Packard Development Company, L.P. System for providing support for an electronic device
KR101092438B1 (en) * 2004-08-05 2011-12-13 ģ—˜ģ§€ģ „ģž ģ£¼ģ‹ķšŒģ‚¬ Cable broadcasting receiver and diagnostic method thereof
US7525922B2 (en) * 2005-04-01 2009-04-28 Cisco Technology, Inc. Duplex mismatch testing
US7536268B2 (en) * 2005-06-21 2009-05-19 Hewlett-Packard Development Company, L.P. Collecting information to identify defective locations of a display monitor
US7835293B2 (en) * 2005-09-13 2010-11-16 Cisco Technology, Inc. Quality of service testing of communications networks
US7990887B2 (en) * 2006-02-22 2011-08-02 Cisco Technology, Inc. Sampling test of network performance
US7904610B2 (en) * 2006-06-21 2011-03-08 Microsoft Corporation Controlling a device connected to first and second communication path wherein device is also connected to third communication path via a bypass link
US8944332B2 (en) 2006-08-04 2015-02-03 Intermec Ip Corp. Testing automatic data collection devices, such as barcode, RFID and/or magnetic stripe readers
US20080168310A1 (en) * 2007-01-05 2008-07-10 Microsoft Corporation Hardware diagnostics and software recovery on headless server appliances
US8352802B2 (en) * 2007-08-16 2013-01-08 Google Inc. Method and system for remote diagnostics
US8132166B2 (en) 2007-05-14 2012-03-06 Red Hat, Inc. Methods and systems for provisioning software
US8561058B2 (en) 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8464247B2 (en) 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8006121B1 (en) * 2007-06-28 2011-08-23 Apple Inc. Systems and methods for diagnosing and fixing electronic devices
US20090083000A1 (en) * 2007-09-26 2009-03-26 Modu Ltd. Automated appliance diagnostics and reporting
US8713177B2 (en) 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US9100297B2 (en) 2008-08-20 2015-08-04 Red Hat, Inc. Registering new machines in a software provisioning environment
US8930512B2 (en) * 2008-08-21 2015-01-06 Red Hat, Inc. Providing remote software provisioning to machines
US9477570B2 (en) 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8838827B2 (en) 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
US8793683B2 (en) 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US20100058327A1 (en) * 2008-08-28 2010-03-04 Dehaan Michael Paul Methods and systems for providing customized actions related to software provisioning
US9111118B2 (en) 2008-08-29 2015-08-18 Red Hat, Inc. Managing access in a software provisioning environment
US9952845B2 (en) 2008-08-29 2018-04-24 Red Hat, Inc. Provisioning machines having virtual storage resources
US8527578B2 (en) * 2008-08-29 2013-09-03 Red Hat, Inc. Methods and systems for centrally managing multiple provisioning servers
US8244836B2 (en) * 2008-08-29 2012-08-14 Red Hat, Inc. Methods and systems for assigning provisioning servers in a software provisioning environment
US9021470B2 (en) 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US8103776B2 (en) * 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US9164749B2 (en) 2008-08-29 2015-10-20 Red Hat, Inc. Differential software provisioning on virtual machines having different configurations
US8612968B2 (en) 2008-09-26 2013-12-17 Red Hat, Inc. Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US8326972B2 (en) * 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment
US8898305B2 (en) 2008-11-25 2014-11-25 Red Hat, Inc. Providing power management services in a software provisioning environment
US9124497B2 (en) * 2008-11-26 2015-09-01 Red Hat, Inc. Supporting multiple name servers in a software provisioning environment
US8782204B2 (en) 2008-11-28 2014-07-15 Red Hat, Inc. Monitoring hardware resources in a software provisioning environment
US8775578B2 (en) * 2008-11-28 2014-07-08 Red Hat, Inc. Providing hardware updates in a software environment
US8832256B2 (en) 2008-11-28 2014-09-09 Red Hat, Inc. Providing a rescue Environment in a software provisioning environment
US8402123B2 (en) 2009-02-24 2013-03-19 Red Hat, Inc. Systems and methods for inventorying un-provisioned systems in a software provisioning environment
US9727320B2 (en) 2009-02-25 2017-08-08 Red Hat, Inc. Configuration of provisioning servers in virtualized systems
US8892700B2 (en) * 2009-02-26 2014-11-18 Red Hat, Inc. Collecting and altering firmware configurations of target machines in a software provisioning environment
US8413259B2 (en) * 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US8640122B2 (en) * 2009-02-27 2014-01-28 Red Hat, Inc. Systems and methods for abstracting software content management in a software provisioning environment
US9411570B2 (en) 2009-02-27 2016-08-09 Red Hat, Inc. Integrating software provisioning and configuration management
US9558195B2 (en) * 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US8990368B2 (en) 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
US8135989B2 (en) * 2009-02-27 2012-03-13 Red Hat, Inc. Systems and methods for interrogating diagnostic target using remotely loaded image
US9940208B2 (en) 2009-02-27 2018-04-10 Red Hat, Inc. Generating reverse installation file for network restoration
US8572587B2 (en) 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US8667096B2 (en) 2009-02-27 2014-03-04 Red Hat, Inc. Automatically generating system restoration order for network recovery
US8417926B2 (en) * 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
US9250672B2 (en) * 2009-05-27 2016-02-02 Red Hat, Inc. Cloning target machines in a software provisioning environment
US9134987B2 (en) * 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
US9047155B2 (en) * 2009-06-30 2015-06-02 Red Hat, Inc. Message-based installation management using message bus
US10133485B2 (en) * 2009-11-30 2018-11-20 Red Hat, Inc. Integrating storage resources from storage area network in machine provisioning platform
US8825819B2 (en) * 2009-11-30 2014-09-02 Red Hat, Inc. Mounting specified storage resources from storage area network in machine provisioning platform
US9407956B2 (en) 2013-06-14 2016-08-02 Telus Communications Company IPTV diagnostics system

Family Cites Families (4)

* Cited by examiner, ā€  Cited by third party
Publication number Priority date Publication date Assignee Title
US5276863A (en) * 1991-06-28 1994-01-04 Digital Equipment Corporation Computer system console
US5390324A (en) * 1992-10-02 1995-02-14 Compaq Computer Corporation Computer failure recovery and alert system
US5678002A (en) * 1995-07-18 1997-10-14 Microsoft Corporation System and method for providing automated customer support
US6000040A (en) * 1996-10-29 1999-12-07 Compaq Computer Corporation Method and apparatus for diagnosing fault states in a computer system

Cited By (83)

* Cited by examiner, ā€  Cited by third party
Publication number Priority date Publication date Assignee Title
US20040215744A1 (en) * 2000-03-07 2004-10-28 Tetsuro Motoyama Method and system for updating the device driver of a business office appliance
US6915337B1 (en) * 2000-03-07 2005-07-05 Ricoh Co. Ltd. Method and system for updating the device driver of a business office appliance
US6892328B2 (en) * 2000-09-29 2005-05-10 Tanisys Technology, Inc. Method and system for distributed testing of electronic devices
US20020042897A1 (en) * 2000-09-29 2002-04-11 Tanisys Technology Inc. Method and system for distributed testing of electronic devices
US20020120426A1 (en) * 2001-01-10 2002-08-29 Kabushiki Kaisha Toshiba Degradation diagnostic method, degradation diagnostic mediation device and degradation diagnostic device and computer-readable recording medium on which a program is recorded
US8479180B2 (en) 2001-07-26 2013-07-02 Kyocera Corporation Maintenance of over the air upgradeable wireless communication device software
US20050026603A9 (en) * 2001-07-26 2005-02-03 Gowri Rajaram System and method for the management of wireless communications device system software downloads in the field
US7143407B2 (en) 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
WO2003010668A3 (en) * 2001-07-26 2003-09-25 Kyocera Wireless Corp System and method for field diagnosis of wireless communications device system software
US8032865B2 (en) 2001-07-26 2011-10-04 Kyocera Corporation System and method for field diagnosis of wireless communications device system software
US7970375B2 (en) 2001-07-26 2011-06-28 Kyocera Corporation System and method for expiring modular software components for wireless communication devices
US7542758B2 (en) 2001-07-26 2009-06-02 Kyocera Wireless Corp. Field downloading of wireless device software
US20040214561A1 (en) * 2001-07-26 2004-10-28 Kyocera Wireless Corp. Dynamic interface software for wireless communication devices
US20030064717A1 (en) * 2001-07-26 2003-04-03 Gowri Rajaram System and method for the management of wireless communications device system software downloads in the field
US20040214560A1 (en) * 2001-07-26 2004-10-28 Kyocera Wireless Corp. Modular software components for wireless communication devices
US7386846B2 (en) 2001-07-26 2008-06-10 Kyocera Wireless Corp. System and method for the management of wireless communications device system software downloads in the field
US7328007B2 (en) 2001-07-26 2008-02-05 Kyocera Wireless Corp. System and method for organizing wireless communication device system software
US20050010917A9 (en) * 2001-07-26 2005-01-13 Gowri Rajaram System and method for executing wireless communications device dynamic instruction sets
US20030069007A1 (en) * 2001-07-26 2003-04-10 Gowri Rajaram System and method for updating persistent data in a wireless communications device
US9554268B2 (en) 2001-07-26 2017-01-24 Kyocera Corporation System and method for updating persistent data in a wireless communications device
US20030033599A1 (en) * 2001-07-26 2003-02-13 Gowri Rajaram System and method for executing wireless communications device dynamic instruction sets
WO2003010668A2 (en) * 2001-07-26 2003-02-06 Kyocera Wireless Corporation System and method for field diagnosis of wireless communications device system software
US20070143749A1 (en) * 2001-07-26 2007-06-21 Date Umesh M System and method for expiring modular software components for wireless communication devices
US7200389B2 (en) 2001-07-26 2007-04-03 Kyocera Wireless Corp. Dynamic interface software for wireless communication devices
US7197302B2 (en) 2001-07-26 2007-03-27 Kyocera Wireless Corp. System and method for interchangeable modular hardware components for wireless communication devices
US7027806B2 (en) 2001-07-26 2006-04-11 Kyocera Wireless, Corp. System and method for field downloading a wireless communications device software code section
US7184793B2 (en) 2001-07-26 2007-02-27 Kyocera Wireless Corp. System and method for over the air area code update
US7184759B2 (en) 2001-07-26 2007-02-27 Kyocera Wireless Corp. Modular software components for wireless communication devices
US20060223517A1 (en) * 2001-07-26 2006-10-05 Kyocera Wireless Corp. Field downloading of wireless device software
US7159214B2 (en) 2001-07-26 2007-01-02 Kyocera Wireless Corp. System and method for compacting field upgradeable wireless communication device software code sections
US7254386B2 (en) 2001-08-10 2007-08-07 Kyocera Wireless Corp. System and method for improved security in handset reprovisioning and reprogramming
US20030033525A1 (en) * 2001-08-10 2003-02-13 Gowri Rajaram System and method for improved security in handset reprovisioning and reprogramming
US20060063519A1 (en) * 2001-08-10 2006-03-23 Gowri Rajaram System and method for peer-to-peer handset communication
US6961537B2 (en) 2001-08-10 2005-11-01 Kyocera Wireless Corp. System and method for peer-to-peer handset communication
US7359699B2 (en) 2001-08-10 2008-04-15 Kyocera Wireless Corp. System and method for peer-to-peer handset communication
US6865697B2 (en) * 2002-01-18 2005-03-08 International Business Machines Corporation Method and apparatus for reduced error checking of data received by a server from a client
US20030140284A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Method and apparatus for reduced error checking of data received by a server from a client
KR100464006B1 (en) * 2002-04-12 2005-01-03 ģ—˜ģ§€ģ „ģž ģ£¼ģ‹ķšŒģ‚¬ System and method for remote examination of personal hand-held terminal
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
US20030233558A1 (en) * 2002-06-13 2003-12-18 Microsoft Corporation System and method for securely booting from a network
US7231549B1 (en) 2002-10-04 2007-06-12 American Megatrends, Inc. Method and apparatus for providing on-demand computer diagnostics
US7334166B1 (en) * 2002-10-04 2008-02-19 American Megatrends, Inc. Method, system, and apparatus for providing and utilizing server-side entry points for use in diagnostics on-demand services
US7200775B1 (en) * 2002-10-04 2007-04-03 American Megatrends, Inc. Method and data structures for use in providing on-demand computer diagnostics
US7231553B2 (en) 2002-11-26 2007-06-12 Microsoft Corporation System and method for testing computing devices
US7103802B2 (en) * 2002-11-26 2006-09-05 Microsoft Corporation System and method for testing computing devices
US20040103344A1 (en) * 2002-11-26 2004-05-27 Microsoft Corporation System and method for testing computing devices
EP1443400A1 (en) * 2003-01-29 2004-08-04 Sun Microsystems, Inc. Automated test execution framework with central management
US7366955B2 (en) 2003-01-29 2008-04-29 Sun Microsystems, Inc. Automated test execution framework with central management
US20040243381A1 (en) * 2003-01-29 2004-12-02 Sun Microsystems, Inc. Automated test execution framework with central management
US7334162B1 (en) 2003-01-29 2008-02-19 Sun Microsystems, Inc. Dynamic distribution of test execution
US7296190B2 (en) 2003-01-29 2007-11-13 Sun Microsystems, Inc. Parallel text execution on low-end emulators and devices
US7359698B2 (en) 2003-09-08 2008-04-15 Kyocera Wireless Corp. Systems and methods for enhanced over-the-air programming
US7287190B2 (en) 2004-01-29 2007-10-23 Sun Microsystems, Inc. Simultaneous execution of test suites on different platforms
US20050172268A1 (en) * 2004-01-29 2005-08-04 Sun Microsystems, Inc. Mechanism for executing test suites written for different harnesses under one test execution harness
US7543275B2 (en) 2004-01-29 2009-06-02 Sun Microsystems, Inc. Mechanism for executing test suites written for different harnesses under one test execution harness
US7698405B2 (en) * 2005-01-07 2010-04-13 Lantronix, Inc. MILARRS systems and methods
US8219661B2 (en) * 2005-01-07 2012-07-10 Lantronix, Inc. MILARRS systems and methods
US20120016925A1 (en) * 2005-01-07 2012-01-19 Lantronix, Inc. Milarrs systems and methods
US20060156054A1 (en) * 2005-01-07 2006-07-13 Lantronix, Inc. Milarrs systems and methods
US7506204B2 (en) * 2005-04-25 2009-03-17 Microsoft Corporation Dedicated connection to a database server for alternative failure recovery
US20060248034A1 (en) * 2005-04-25 2006-11-02 Microsoft Corporation Dedicated connection to a database server for alternative failure recovery
WO2009014951A1 (en) 2007-07-20 2009-01-29 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
US8909978B2 (en) 2007-07-20 2014-12-09 Qualcomm Incorporated Remote access diagnostic mechanism for communication devices
EP2176755A1 (en) * 2007-07-20 2010-04-21 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
EP2176755A4 (en) * 2007-07-20 2013-01-23 Qualcomm Atheros Inc Remote access diagnostic device and methods thereof
US20090024872A1 (en) * 2007-07-20 2009-01-22 Bigfoot Networks, Inc. Remote access diagnostic device and methods thereof
US8543866B2 (en) 2007-07-20 2013-09-24 Qualcomm Incorporated Remote access diagnostic mechanism for communication devices
WO2009065744A1 (en) * 2007-11-22 2009-05-28 Robert Bosch Gmbh Method for diagnosing a control device for service
US20100042710A1 (en) * 2008-08-15 2010-02-18 Asustek Computer Inc. Remote management of computer system
US8554516B2 (en) 2008-11-25 2013-10-08 Electrolux Home Products, Inc. Enterprise wide system and methods for configuring, diagnosing, and updating appliances
US9450811B2 (en) 2008-11-25 2016-09-20 Electrolux Home Products, Inc. Enterprise wide system and methods for configuring, diagnosing, and updating appliances
US20100131241A1 (en) * 2008-11-25 2010-05-27 Electrolux Home Products, Inc. Enterprise wide system and methods for configuring, diagnosing, and updating appliances
EP2661901A2 (en) * 2011-01-03 2013-11-13 LG Electronics Inc. Method for providing remote control service and image display apparatus thereof
US8990871B2 (en) 2011-01-03 2015-03-24 Lg Electronics Inc. Method for providing remote control service and image display apparatus thereof
EP2661901A4 (en) * 2011-01-03 2014-05-21 Lg Electronics Inc Method for providing remote control service and image display apparatus thereof
US20160364323A1 (en) * 2013-02-28 2016-12-15 Apple Inc. Automatic remote execution of an application
US9336124B2 (en) * 2013-02-28 2016-05-10 Apple Inc. Automatic remote execution of an application
US20140245289A1 (en) * 2013-02-28 2014-08-28 Apple Inc. Automatic remote execution of an application
US9940224B2 (en) * 2013-02-28 2018-04-10 Apple Inc. Automatic remote execution of an application
US20180225960A1 (en) * 2013-03-13 2018-08-09 Masimo Corporation Systems and methods for monitoring a patient health network
US10672260B2 (en) * 2013-03-13 2020-06-02 Masimo Corporation Systems and methods for monitoring a patient health network
US20200394903A1 (en) * 2013-03-13 2020-12-17 Masimo Corporation Systems and methods for monitoring a patient health network
US11645905B2 (en) * 2013-03-13 2023-05-09 Masimo Corporation Systems and methods for monitoring a patient health network

Also Published As

Publication number Publication date
US6438711B2 (en) 2002-08-20

Similar Documents

Publication Publication Date Title
US6438711B2 (en) Method and apparatus for performing field diagnostics on a computer system
US8656147B2 (en) Methods and apparatus for integrity measurement of virtual machine monitor and operating system via secure launch
US7131035B2 (en) Serial bus host controller diagnosis
KR100620216B1 (en) Network Enhanced BIOS Enabling Remote Management of a Computer Without a Functioning Operating System
US6925570B2 (en) Method and system for setting a secure computer environment
US5875293A (en) System level functional testing through one or more I/O ports of an assembled computer system
US8566644B1 (en) System and method for debugging a target computer using SMBus
US6189114B1 (en) Data processing system diagnostics
US6321287B1 (en) Console redirection for a computer system
US5896534A (en) Operating system independent apparatus and method for supporting input/output devices unsupported by executing programs
US6721881B1 (en) System and method for determining if a display device configuration has changed by comparing a current indicator with a previously saved indicator
JPH0863340A (en) Method and equipment for communication of configuration information of system in network
US20050229160A1 (en) Method and system to provide debugging of a computer system from firmware
JP2007516535A (en) Method and apparatus for remote correction of system configuration
JP2003527654A (en) Method, system and computer readable storage medium for automatic device driver configuration
US6487464B1 (en) Power-on software for robust boot
US20030200428A1 (en) Method and system for booting a client computer system over a network
US6725396B2 (en) Identifying field replaceable units responsible for faults detected with processor timeouts utilizing IPL boot progress indicator status
US7334120B2 (en) Firmware emulation environment for developing, debugging, and testing firmware components including option ROMs
CN111708662B (en) Debugging method and device
US7281171B2 (en) System and method of checking a computer system for proper operation
US20030135683A1 (en) Method, system, and program for testing a bus interface
US6807629B1 (en) Apparatus and method for accessing POST 80h codes via a computer port
US20070157014A1 (en) Apparatus for remote flashing of a bios memory in a data processing system
JP3215092B2 (en) How to debug a keyboard basic input / output system (KB-BIOS) in notebook computer system development

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WOODRUFF, ROBERT J.;REEL/FRAME:009325/0795

Effective date: 19980707

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: LANDESK HOLDINGS, INC., UTAH

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEL CORPORATION;REEL/FRAME:013138/0799

Effective date: 20020916

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNOR:LANDESK HOLDINGS INC.;REEL/FRAME:013138/0803

Effective date: 20020918

AS Assignment

Owner name: SILICON VALLEY BANK, CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNORS:LANDESK HOLDINGS IRELAND LTD;LANDESK SOFTWARE LTD;LANDESK HOLDINGS INC;AND OTHERS;REEL/FRAME:015676/0516

Effective date: 20040123

FEPP Fee payment procedure

Free format text: PAT HOLDER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: LTOS); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: LANDESK SOFTWARE, LTD., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023510/0030

Effective date: 20091109

Owner name: LANDESK HOLDINGS IRELAND LTD., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023510/0030

Effective date: 20091109

Owner name: LANDESK HOLDINGS, INC., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023510/0030

Effective date: 20091109

Owner name: LANDESK DEVELOPMENT INC., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023510/0030

Effective date: 20091109

Owner name: LANDESK SOFTWARE, INC., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:023510/0030

Effective date: 20091109

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: LANDESK SOFTWARE, INC.,UTAH

Free format text: MERGER;ASSIGNOR:LANDESK HOLDINGS, INC.;REEL/FRAME:024045/0925

Effective date: 20080523

SULP Surcharge for late payment
AS Assignment

Owner name: LANDESK SOFTWARE, INC., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:INTEL CORPORATION;REEL/FRAME:024804/0390

Effective date: 20100723

AS Assignment

Owner name: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT, CALIFO

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LANDESK GROUP, INC.;LANDSLIDE HOLDINGS, INC.;LANDESK SOFTWARE, INC.;AND OTHERS;REEL/FRAME:025056/0391

Effective date: 20100928

AS Assignment

Owner name: D. E. SHAW DIRECT CAPITAL PORTFOLIOS, L.L.C. AS AG

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LAN DESK SOFTWARE, INC.;CRIMSON CORPORATION;REEL/FRAME:025095/0982

Effective date: 20100928

AS Assignment

Owner name: LANDESK SOFTWARE, INC., UTAH

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:D.E. SHAW DIRECT CAPITAL PORTFOLIOS, L.L.C., AS AGENT;REEL/FRAME:027783/0491

Effective date: 20120224

Owner name: CRIMSON CORPORATION, UTAH

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:D.E. SHAW DIRECT CAPITAL PORTFOLIOS, L.L.C., AS AGENT;REEL/FRAME:027783/0491

Effective date: 20120224

AS Assignment

Owner name: LANDESK GROUP, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913

Effective date: 20120619

Owner name: CRIMSON CORPORATION, UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913

Effective date: 20120619

Owner name: LANDESK SOFTWARE, INC., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913

Effective date: 20120619

Owner name: LANDSLIDE HOLDINGS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913

Effective date: 20120619

Owner name: CRIMSON ACQUISITION CORP., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913

Effective date: 20120619

AS Assignment

Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINIS

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:LANDESK SOFTWARE, INC.;REEL/FRAME:028541/0782

Effective date: 20120629

AS Assignment

Owner name: LANDESK SOFTWARE, INC., UTAH

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT;REEL/FRAME:030993/0622

Effective date: 20130806

AS Assignment

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YO

Free format text: SECURITY AGREEMENT;ASSIGNORS:LANDESK GROUP, INC.;LANDSLIDE HOLDINGS, INC.;CRIMSON ACQUISITION CORP.;AND OTHERS;REEL/FRAME:031029/0849

Effective date: 20130809

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: JEFFERIES FINANCE LLC, NEW YORK

Free format text: SECURITY AGREEMENT;ASSIGNORS:LANDESK SOFTWARE, INC.;CRIMSON CORPORATION;REEL/FRAME:032333/0637

Effective date: 20140225

AS Assignment

Owner name: CRIMSON CORPORATION, DELAWARE

Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNOR:LANDESK SOFTWARE, INC.;REEL/FRAME:039819/0845

Effective date: 20160921

AS Assignment

Owner name: CRIMSON CORPORATION, UTAH

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 032333/0637;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:040171/0037

Effective date: 20160927

Owner name: CRIMSON CORPORATION, UTAH

Free format text: RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 031029/0849;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:040171/0307

Effective date: 20160927

AS Assignment

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YORK

Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040183/0506

Effective date: 20160927

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YORK

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040182/0345

Effective date: 20160927

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YO

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040182/0345

Effective date: 20160927

Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YO

Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040183/0506

Effective date: 20160927

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, NEW YORK

Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041052/0762

Effective date: 20170120

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, NEW YORK

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041459/0387

Effective date: 20170120

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL

Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041052/0762

Effective date: 20170120

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041459/0387

Effective date: 20170120

AS Assignment

Owner name: CRIMSON CORPORATION, UTAH

Free format text: RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40183/0506;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:041463/0457

Effective date: 20170120

Owner name: CRIMSON CORPORATION, UTAH

Free format text: RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40182/0345;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:041463/0581

Effective date: 20170120

AS Assignment

Owner name: IVANTI, INC., UTAH

Free format text: MERGER;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:045983/0075

Effective date: 20180406

AS Assignment

Owner name: CRIMSON CORPORATION, UTAH

Free format text: RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41052/0762;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:054560/0857

Effective date: 20201201

Owner name: CRIMSON CORPORATION, UTAH

Free format text: RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41459/0387;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:054637/0161

Effective date: 20201201