Feature suggestion:
Ability to turn on and off screen via commands.
Like:
console --sleep
Turns off screen.
console --wake
Turns on screen.
What I Think about, is using the Power save protocol of the Graphics card, to tell it to turn off the screen. (eg, indicate Power save mode to the attached screen)
What about it? Something that could be technically implemented?
I understand what you want, but _why_ would you want this? What is it that you're trying to solve that requires turning the screen off? If you want to hide what is happening you might try to use the colour and cpair commands to change both background and foreground color to the same color code. If you want to avoid printing passwords in URLs you might want to consider using HTTPS with POST to avoid including the verbatim password in the query string.
Just as a energy saving method.
So while the computers are logged off, the screens are in Power saving mode. Its easy then to put a notice "If the screen are blank, scan you access card".
I already use color + cpair command to "hide" sensitive processes, but the problem is that the screen backlight are on the whole day, generating heat, speeding up the wear of the screen hardware, and also wasting energy on the energy bill.
This can also be used with different scenarios, for example, computers that are booted with WOL can be put into screen energy saving mode until someone hits a key, with for example:
console --sleep
prompt
console --wake
will then implement a simple Power saving function, eg press any key to make the screen turn on again. Since the computers are logged off most of the day and its 20 computers, then it would save much on the energy bill to just turn off the screen during they are logged off.
Also good to prevent burn in of login texts and such.
Another usage example is for example:
:beginagain
menu Choose OS
item cps Enter Power saving mode
item linux Boot Ubuntu Linux
item windows Boot Windows 7
choose --default ps --timeout 15000 operatingsystem && goto ${operatingsystem}
:cps
console --sleep
prompt
console --wake
goto beginagain
:linux
...
:windows
...
For example. There much usage cases for this, and I Think many users will be happy of such a change.
Also, as you say, it can be used to protect passwords and such too. Its a multi-use function.
I see your point that leaving the screens on wastes a lot of energy and avoiding that is beneficial. But my question here is, why aren't you using WOL to wake the entire computer when they scan their access card instead? That way you wouldn't be leaving the computer wasting a lot of energy when it's not in use. I'm not sure how your access card scanner works, but you could have it scan the card and then type in the number of the computer they are going to use, which would be sent off to a server somewhere which issues the WOL packet to the correct computer.
The reason I think this feature would be shot down is because it would probably require an ACPI parser, which is a large amount of code for such a tiny feature, and code size is always at a premium in iPXE.
The reason is that the readers is "Keyboard HID" based. Using IP readers would be too expensive. These USB HID readers only cost 10$ a piece.
But what do you mean "ACPI parser"? Why would such a thing be required? Isnt "Turn off the screen" or "Turn on the screen" (eg energy saving function) a standarized function of all Graphics cards?
Eg you send some signal to the Graphics card to tell it to turn off or on the screen. If its different for Nvidia, Intel or ATI cards, it could be a setting inside one of the header files? Eg "screensaver = 0 /* 0 = turn off command console --sleep, console --Wake. 1 = Configure command for nvidia cards. 2 = Configure command for ATI cards. 3 = Configure command for intel integrated cards. * / ".
If this varies with different motherboards and Graphics cards of the same brand, you could even have it part of command, that the information parsed out on ACPI tables, must be specified in command. Like:
console --sleep 0x0f03424240f
console --wake 0x0f03424240f
And thus, a ACPI parser can be provided in a separate means. Theres numerious free ACPI parsers out there, so the user could pre-parse the ACPI table, and get the information required, which is then embedded in the boot script.