System information
4.2 Graphic Card Implementation Layout
Request Buffer
PCI Read #1
MARK
VGA
Driver
VGA
Driver
VGA
Driver
VGA
Driver
Video
Planes
Requested Data
Read Buffer
BAR Switch
Driver
Read Out
Execute Callback
Function
Read Out
Write To
1
2
3
4
Inform
PCI
Target Control
5
Figure 4.14: Processing of read requests.
VNC Server
The video screen content is served via the VNC
4
protocol [60]. A VNC server running on
the CHARM interfaces to the VGA kernel driver. Periodically the VNC server contacts
the VGA driver to generate the screen content. The VGA planes are converted to a VNC
related picture. In principal, the VNC server has the same task like the video output of a
generic VGA card.
First the VNC server determines the video mode. Therefore, the server sets the ioctl
request GET_SCREENINFO to the device file /dev/charm/vga/control. After that, the
server reads out the related video planes. A generic VNC client can contact the server
over the built-in Ethernet interface. There are a couple of free VNC clients for the most
operating systems. Hence, the host computer can be easily commanded by remote control.
A VNC server does not only provide an image of the screen. The client interacts with the
server. Commands like keystrokes and mouse movements are forwarded from the client to
the server. The server converts this commands to keystrokes and mouse movements on
the host computer. This is accomplished by several virtual devices provided to the host
computer. Device emulation realized by the USB interface is explained in section 5.1.
Terminal
Additionally, the video screen of the host computer can also be displayed directly on the
CHARM. The program "terminal" called on a CHARM command shell presents the screen
4
The Virtual Network Computing is a graphical desktop sharing system.
59