Accessing the Text-Mode Video Buffer
While the silly module showed you how to access video
memory in the 640KB-1MB address range, a more ``visible'' demo
program can help you get comfortable with readb and writeb.
The silly module features two more device nodes:
/dev/sillytxt
(minor number 4) and /dev/silliest
(minor number
5).
Warning
Such devices can be used only with a VGA-compatible video board running in text mode; using the devices on systems without a VGA adapter is potentially destructive, like any uncontrolled access to hardware resources.
The first device, sillytxt
, is just a window on the VGA text
buffer. Unlike the other silly nodes, it can be the target of
output redirection and can be used to overwrite the contents of your console.
This is reminiscent of /dev/vcs
, but the silly
implementation is neither portable nor integrated into the kernel as
vcs
is.
The last device is kind of a joke: it drops the letters off your text screen. Each byte written to the device causes a character on your screen to drop to the bottom of the screen. This device is provided only to show a more complex action on the I/O memory--the same code can be used to operate on a VGA buffer or on other memory, such as network packets or the video data of a frame grabber.
Remember that any modification to the text screen is volatile and interferes with the kernel’s own text management. If you really need to access the text buffer from an application, there are better ways to accomplish the task: either ...
Get Linux Device Drivers now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.