Enabling a pre-boot screen to be accessed remotely
A pre-boot screen can be accessed remotely. A remote access BIOS module can be employed on a computing system to logically split a GPU into a local screen rendering part and a remote access part and to logically split GPU memory into a local screen memory region and a remote access memory region. The remote access part of the GPU can access a pre-boot screen that has been copied to the remote access memory region and create network packets with payloads containing the pre-boot screen. The remote access part can then cause the network packets to be transferred to a NIC for delivery to a remote computing system. A remote access application on the remote computing system can extract and display the pre-boot screen. The remote access application can relay any user input back to the remote access BIOS module which can then cause the user input to be implemented locally.
1. A method for enabling a pre-boot screen to be accessed remotely, the method comprising:
during pre-boot on a computing system, creating, by a remote access basic input/output system (BIOS) module that is executed on a central processing unit (CPU) of the computing system, a remote access part in a graphics processing unit (GPU) of the computing system and a remote access memory region in GPU memory;
copying, by the remote access BIOS module, a pre-boot screen from a local screen memory region in the GPU memory to the remote access memory region;
creating, by the remote access part, one or more network packets that include the pre-boot screen that was copied to the remote access memory region; and
transferring, by the remote access part, the one or more network packets to a network interface card (NIC) to thereby cause the NIC to send the one or more network packets to a remote access application executing on a remote computing system.
2. The method of claim 1 , wherein the remote access BIOS module is a Driver Execution Environment (DXE) driver.
3. The method of claim 1 , further comprising:
in conjunction with creating the remote access part in the GPU and the remote access memory region in GPU memory, creating a local screen rendering part in the GPU and the local screen memory region.
4. The method of claim 1 , further comprising:
in conjunction with copying the pre-boot screen from the local screen memory region to the remote access memory region, sending, by the remote access BIOS module, a remote access request to the remote access part;
wherein the remote access part creates the one or more network packets in response to the remote access request.
5. The method of claim 4 , wherein the remote access request specifies an IP address of the remote computing system.
6. The method of claim 5 , wherein creating the one or more network packets comprises including the IP address in each of the one or more network packets.
7. The method of claim 1 , wherein creating the one or more network packets that include the pre-boot screen comprise encapsulating the pre-boot screen in a payload of the one or more network packets.
8. The method of claim 7 , wherein encapsulating the pre-boot screen in the payload of the one or more network packets comprises formatting the payload in accordance with an application layer protocol.
9. The method of claim 7 , wherein encapsulating the pre-boot screen in the payload of the one or more network packets comprises formatting the pre-boot screen in accordance with a markup language.
10. The method of claim 1 , wherein transferring the one or more network packets to the NIC comprises using a peer-to-peer protocol.
11. The method of claim 1 , further comprising:
receiving, by the remote access BIOS module, user input that was received at the remote computing system while the pre-boot screen was displayed on the remote computing system; and
implementing the user input on the computing system.
12. The method of claim 1 , wherein creating the one or more network packets that include the pre-boot screen comprises encrypting the pre-boot screen.
13. One or more computer storage media storing computer executable instructions which when executed on a computing system implement a method for enabling a pre-boot screen of the computing system to be accessed on a remote computing system, the method comprising:
copying, by a remote access BIOS module that executes on a CPU of the computing system, a pre-boot screen from a local screen memory region in GPU memory to a remote access memory region in GPU memory;
in conjunction with copying the pre-boot screen, sending, by the remote access BIOS module, a remote access request to a remote access part of a GPU of the computing system;
in response to the remote access request, creating, by the remote access part, one or more network packets containing the pre-boot screen that was copied to the remote access memory region, the one or more network packets including an IP address of the remote computing system; and
transferring, by the remote access part, the one or more network packets from the remote access memory region to a NIC of the computing system to thereby cause the one or more network packets to be sent to the remote computing system.
14. The computer storage media of claim 13 , wherein the method further comprising:
creating, by the remote access BIOS module, the local screen memory region, the remote screen memory region and the remote access part.
15. The computer storage media of claim 13 , wherein the IP address is included in the remote access request.
16. The computer storage media of claim 13 , wherein creating the one or more network packets containing the pre-boot screen comprises formatting a payload of the one or more network packets in accordance with an application layer protocol.
17. The computer storage media of claim 13 , wherein the method further comprises:
receiving, from the remote computing system, user input that was received while the pre-boot screen was displayed on the remote computing system; and
implementing the user input on the computing system.
18. A method for enabling a pre-boot screen to be accessed remotely, the method comprising:
in response to a pre-boot screen being updated on a computing system, copying, by a remote access BIOS module executing on a CPU, the pre-boot screen from a local screen memory region in GPU memory to a remote access memory region in GPU memory;
in response to the pre-boot screen being copied to the remote access memory region, creating, by a remote access part executing on a GPU, one or more network packets that include the pre-boot screen and storing the one or more network packets in a packet queue in the remote access memory region; and
transferring, by the remote access part, the one or more network packets from the packet queue to a NIC to thereby cause the NIC to send the one or more network packets to a remote access application executing on a remote computing system.
19. The method of claim 18 , wherein the remote access BIOS module sends a remote access request to the remote access part when the pre-boot screen has been copied to the remote access memory region.
20. The method of claim 19 , wherein creating the one or more network packets comprises including, in each network packet, an IP address of the remote computing system.