There is a server computer to which 20 client are connected. The distance between them is not great, you can connect them not only through network cards.

How to programmatically verify that client computers are turned on?

There is an opinion that the solution should be sought in the GPIO interface. That is, one pin corresponds to one computer, but I do not quite understand how to implement it?

  • 2
    A ping is not good? - avp
  • Unfortunately not. The thing is, I need to check all the boot steps: power up, BIOS start, OS start. The point is to know exactly why the computer did not turn on. - Droll80
  • one
    To control the consumer in the outlet, if the consumption began, it means that the power supply unit began to work. If it consumes little, it means that the calculations have not started and the Windows have not booted yet ... :-) (a joke, of course, but you can write an outlet controller). - pincher1519
  • 3
    oh jokers)) But the real challenge! There is such a card - Digital Input \ Output Card (DIO). It can read pin values. It is on the server. There is a GPIO interface on clients that works like this: voltage appeared - signal = 1, bios worked - signal = 0. This is a first approximation, I just hoped that someone could explain more and help with the implementation. - Droll80
  • one
    Thank you all for the advice, valuable and not only) If someone is interested in how this project will be implemented - please contact. - Droll80

6 answers 6

The solution has long been! Network remote control boards . Using them, you can perform BIOS settings remotely.

  • Thank you, but this option does not fit)) I do not need to control a remote computer, I need to get information from it about how the launch went. Example: the computer did not turn on, there may be several reasons, let us single out the main ones - there is no voltage, problems with the BIOS or at its level, the OS has not risen. And when the OS has risen, I do not need to configure anything, either in the BIOS or in the computer)) - Droll80

I think without good hardware support, your task cannot be solved, for example, because:

-The power check can be implemented, but only by the hardware method. (Outlet controller =) already offered)

-Further BIOS, well, it's more complicated, programmatically, by means of hardware hardcore. I will not describe them here, very funny =) At least I have not seen such an implementation.

... ect

    Let's say this - the problem is generally unsolvable. Indeed, it requires a deep knowledge of the PC hardware platform and its private nuances. For example, it was possible to install a so-called in each PC. post card with any external interface and read the boot status of the BIOS, but even the universal scheme of codes between different motherboards is not. Another caveat that the network interface rises very early - after all, the function of network boot is in any modern board. Therefore, it turns out that you can be hammered into pinging the computer and for reasonable tasks this will be enough. Then display the status of all computers on a certain software panel and monitor it. It is clear that when the PC is displayed as offline, the sysadmin's intervention will be ALL REQUIRED - regardless of the real cause of the failure - communication problems (overwrite the power cord), OS problems (reinstalling or replacing the drive with a previously prepared copy of the OS) or hardware problems (diagnostics and repair of a specific PC or its replacement with a backup).

      Only ideas. http://www.insidepro.com/kk/046/046r.shtml If you can do this, then you can send some data. This is a bios, well, with the same OSes. But I don’t know how to turn on the computer, it seems that I’m just checking for current in the circuit. Those. you hook up to some conclusion and determine whether there is food on it. Usb starts working only when turned on, I don’t know about pc. Where there can still be stuck)

        And if you connect to the interface of the post-card output, provide data transfer to the arduino pins, pick up a web server and read data from there? Naturally, each motherboard will be known and, depending on it, already interpret the status code.

          Perhaps you should pay attention to Intel® Active Management Technology . The SDK is available, but, of course, certain knowledge is required and it is sharpened all for a specific platform.