summaryrefslogtreecommitdiffstats
path: root/x11vnc/help.c
diff options
context:
space:
mode:
authorrunge <runge>2009-01-04 03:10:39 +0000
committerrunge <runge>2009-01-04 03:10:39 +0000
commit4fdb4cc67f1563156593e5b3deca80acf35f39ed (patch)
tree18a6d6ddc102aa3c91ed8bd24c863893b8f8de1b /x11vnc/help.c
parent6876b85df3abc71feb26ce85bf2ef3bfae001af2 (diff)
downloadlibtdevnc-4fdb4cc67f1563156593e5b3deca80acf35f39ed.tar.gz
libtdevnc-4fdb4cc67f1563156593e5b3deca80acf35f39ed.zip
x11vnc: add -rmflag option, -rawfb vt support, bpp < 8 support
for rawfb, find /dev/video better. Fix reverse SSL connection for DH. Some improvements for CUPS TS helper, restart if needed.
Diffstat (limited to 'x11vnc/help.c')
-rw-r--r--x11vnc/help.c163
1 files changed, 118 insertions, 45 deletions
diff --git a/x11vnc/help.c b/x11vnc/help.c
index fbedbff..fa955cd 100644
--- a/x11vnc/help.c
+++ b/x11vnc/help.c
@@ -2471,6 +2471,13 @@ void print_help(int mode) {
" \"file\" in addition to stdout. This option could be\n"
" useful by wrapper script to detect when x11vnc is ready.\n"
"\n"
+"-rmflag file Remove \"file\" at exit to signal when x11vnc is done.\n"
+" The file is created at startup if it does not already\n"
+" exist or if \"file\" is prefixed with \"create:\".\n"
+" If the file is created, the x11vnc PID is placed in\n"
+" the file. Otherwise the files contents is not changed.\n"
+" Use prefix \"nocreate:\" to prevent creation.\n"
+"\n"
"-rc filename Use \"filename\" instead of $HOME/.x11vncrc for rc file.\n"
"-norc Do not process any .x11vncrc file for options.\n"
"\n"
@@ -3599,16 +3606,18 @@ void print_help(int mode) {
"-rawfb string Instead of polling X, poll the memory object specified\n"
" in \"string\".\n"
"\n"
-" For file polling to memory map mmap(2) a file use:\n"
+" For file polling, to memory map mmap(2) a file use:\n"
" \"map:/path/to/a/file@WxHxB\", with framebuffer Width,\n"
" Height, and Bits per pixel. \"mmap:...\" is the\n"
" same.\n"
"\n"
-" If there is trouble with mmap, use \"file:/...\"\n"
-" for slower lseek(2) based reading. Use \"snap:...\"\n"
-" to imply -snapfb mode and the \"file:\" access (this\n"
-" is for unseekable devices that only provide the fb all\n"
-" at once, e.g. a video camera provides the whole frame).\n"
+" If there is trouble with mmap, use \"file:/...\"\n"
+" for slower lseek(2) based reading.\n"
+"\n"
+" Use \"snap:...\" to imply -snapfb mode and the \"file:\"\n"
+" access (this is for unseekable devices that only provide\n"
+" the fb all at once, e.g. a video camera provides the\n"
+" whole frame).\n"
"\n"
" For shared memory segments string is of the form:\n"
" \"shm:N@WxHxB\" which specifies a shmid N and with\n"
@@ -3628,25 +3637,29 @@ void print_help(int mode) {
" discussion below where the device may be queried for\n"
" (and possibly set) the framebuffer parameters.\n"
"\n"
-" If the string begins with \"console\", \"/dev/fb\", or\n"
-" \"fb\", see the LINUX CONSOLE discussion below where\n"
-" the framebuffer device is opened and keystrokes (and\n"
-" possibly mouse events) are inserted into the console.\n"
+" If the string begins with \"console\", \"/dev/fb\",\n"
+" \"fb\", or \"vt\", see the LINUX CONSOLE discussion\n"
+" below where the framebuffer device is opened and\n"
+" keystrokes (and possibly mouse events) are inserted\n"
+" into the console.\n"
"\n"
" If the string begins with \"vnc\", see the VNC HOST\n"
" discussion below where the framebuffer is taken as that\n"
" of another remote VNC server.\n"
"\n"
" Optional suffixes are \":R/G/B\" and \"+O\" to specify\n"
-" red, green, and blue masks and an offset into the\n"
-" memory object. If the masks are not provided x11vnc\n"
-" guesses them based on the bpp.\n"
+" red, green, and blue masks (in hex) and an offset into\n"
+" the memory object. If the masks are not provided x11vnc\n"
+" guesses them based on the bpp (if the colors look wrong,\n"
+" you need to provide the masks.)\n"
"\n"
" Another optional suffix is the Bytes Per Line which in\n"
-" some cases is not WxB/4. Specify it as WxHxB-BPL\n"
+" some cases is not WxB/8. Specify it as WxHxB-BPL\n"
" e.g. 800x600x16-2048. This could be a normal width\n"
" 1024 at 16bpp fb, but only width 800 shows up.\n"
"\n"
+" So the full format is: mode:file@WxHxB:R/G/B+O-BPL\n"
+"\n"
" Examples:\n"
" -rawfb shm:210337933@800x600x32:ff/ff00/ff0000\n"
" -rawfb map:/dev/fb0@1024x768x32\n"
@@ -3657,6 +3670,7 @@ void print_help(int mode) {
" -rawfb video0\n"
" -rawfb video -pipeinput VID\n"
" -rawfb console\n"
+" -rawfb vt2\n"
" -rawfb vnc:somehost:0\n"
"\n"
" (see ipcs(1) and fbset(1) for the first two examples)\n"
@@ -3680,7 +3694,7 @@ void print_help(int mode) {
" If the device is not \"seekable\" (e.g. webcam) try\n"
" reading it all at once in full snaps via the \"snap:\"\n"
" mode (note: this is a resource hog). If you are using\n"
-" file: or map: and the device needs to be reopened for\n"
+" file: or map: AND the device needs to be reopened for\n"
" *every* snapfb snapshot, set the environment variable:\n"
" SNAPFB_RAWFB_RESET=1 as well.\n"
"\n"
@@ -3691,6 +3705,25 @@ void print_help(int mode) {
" 24bpp packed RGB. This is the default under \"video\"\n"
" mode if the bpp is 24.\n"
"\n"
+" Normally the bits per pixel, B, is 8, 16, or 32 (or\n"
+" rarely 24), however there is also some support for\n"
+" B < 8 (e.g. old graphics displays 4 bpp or 1 bpp).\n"
+" In this case you certainly must supply the masks as\n"
+" well: WxHxB:R/G/B. The pixels will be padded out to\n"
+" 8 bpp using depth 8 truecolor. The scheme currently\n"
+" does not work with snap fb (ask if interested.) B=1\n"
+" monochrome example: file:/dev/urandom@128x128x1:1/1/1\n"
+" Some other like this are 128x128x2:3/3/3 128x128x4:7/7/7\n"
+"\n"
+" For B < 8 framebuffers you can also set the env. var\n"
+" RAWFB_CGA=1 to try a CGA mapping for B=4 (e.g. linux\n"
+" vga16fb driver.) Note with low bpp and/or resolution\n"
+" VGA and VGA16 modes on the Linux console one's attempt\n"
+" to export them via x11vnc can often be thwarted due to\n"
+" special color palettes, pixel packings, and even video\n"
+" painting buffering. OTOH, often experimenting with the\n"
+" RGB masks can yield something recognizable.\n"
+"\n"
" VIDEO4LINUX: on Linux some attempt is made to handle\n"
" video devices (webcams or TV tuners) automatically.\n"
" The idea is the WxHxB will be extracted from the\n"
@@ -3777,37 +3810,76 @@ void print_help(int mode) {
" is not queried for the current values. Otherwise the\n"
" device will be queried.\n"
"\n"
-" LINUX CONSOLE: If the libvncserver LinuxVNC program\n"
-" is on your system you may want to use that instead of\n"
-" the following method because it will be faster and more\n"
-" accurate for Linux text console.\n"
+" LINUX CONSOLE: The following describes some ways to\n"
+" view and possibly interact with the Linux text/graphics\n"
+" console (i.e. not X11 XFree86/Xorg)\n"
+"\n"
+" Note: If the libvncserver LinuxVNC program is on your\n"
+" system you may want to use that instead of the following\n"
+" method because it will be faster and more accurate\n"
+" for the Linux text console and includes mouse support.\n"
+" There is, however, the basic LinuxVNC functionality in\n"
+" x11vnc if you replace \"console\" with \"vt\" in the\n"
+" examples below.\n"
"\n"
" If the rawfb string begins with \"console\" the\n"
-" framebuffer device /dev/fb0 is opened (this requires\n"
-" the appropriate kernel modules to be installed) and so\n"
-" is /dev/tty0. The latter is used to inject keystrokes\n"
+" framebuffer device /dev/fb0 is opened and /dev/tty0 is\n"
+" opened too. The latter is used to inject keystrokes\n"
" (not all are supported, but the basic ones are).\n"
-" You will need to be root to inject keystrokes.\n"
-" /dev/tty0 refers to the active VT, to indicate one\n"
-" explicitly, use \"console2\", etc. using the VT number.\n"
-"\n"
-" If the Linux version seems to be 2.6 or later and the\n"
-" \"uinput\" module appears to be present, then the uinput\n"
-" method will be used instead of /dev/ttyN. uinput allows\n"
-" insertion of BOTH keystrokes and mouse input and so it\n"
-" preferred when accessing graphical (e.g. QT-embedded)\n"
-" linux console apps. See -pipeinput UINPUT below for\n"
-" more information on this mode; you will have to use\n"
-" -pipeinput if you want to tweak any UINPUT parameters.\n"
-" You may also want to also use the -nodragging and\n"
-" -cursor none options. Use \"console0\", etc or\n"
-" -pipeinput CONSOLE to force the /dev/ttyN method.\n"
-"\n"
-" Note you can change VT remotely using the chvt(1)\n"
-" command. Sometimes switching out and back corrects\n"
-" the framebuffer state.\n"
-"\n"
-" To skip input injecting entirely use \"consolex\".\n"
+" You will need to be root to inject keystrokes, but\n"
+" not necessarily to open /dev/fb0. /dev/tty0 refers to\n"
+" the active VT, to indicate one explicitly, use, e.g.,\n"
+" \"console2\" for /dev/tty2, etc. by indicating the\n"
+" specific VT number.\n"
+"\n"
+" For the Linux framebuffer device, /dev/fb0, (fb1,\n"
+" etc) to be enabled the appropriate kernel drivers must\n"
+" be loaded. E.g. vesafb or vga16fb and also by setting\n"
+" the boot parameter vga=0x301 (or 0x314, 0x317, etc.)\n"
+" (The vga=... method is the preferred way; set your\n"
+" machines up that way.) Otherwise there will be a\n"
+" 'No such device' error. You can also load a Linux\n"
+" framebuffer driver specific to your make of video card\n"
+" for more functionality. Once the machine is booted one\n"
+" can often 'modprobe' the fb driver as root to obtain\n"
+" a framebuffer device.\n"
+"\n"
+" If you cannot get /dev/fb0 working on Linux, try\n"
+" using the LinuxVNC emulation mode by \"-rawfb vtN\"\n"
+" where N = 1, ... 6 is the Linux Virtual Terminal (aka\n"
+" virtual console) you wish to view, e.g. \"-rawfb vt2\".\n"
+" Unlike /dev/fb mode, it need not be the active Virtual\n"
+" Terminal. Note that this mode can only show text and\n"
+" not graphics. x11vnc polls the text in /dev/vcsaN\n"
+"\n"
+" Set the env. var. RAWFB_VCSA_BW=1 to disable colors in\n"
+" the \"vtN\" mode (i.e. black and white only.) If you\n"
+" do not prefer the default 16bpp set RAWFB_VCSA_BPP to\n"
+" 8 or 32. If you need to tweak the rawfb parameters by\n"
+" using the 'console_guess' string printed at startup,\n"
+" be sure to indicate the snap: method.\n"
+"\n"
+" uinput: If the Linux version appears to be 2.6 or\n"
+" later and the \"uinput\" module appears to be present\n"
+" (modprobe uinput), then the uinput method will be used\n"
+" instead of /dev/ttyN. uinput allows insertion of BOTH\n"
+" keystrokes and mouse input and so it preferred when\n"
+" accessing graphical (e.g. QT-embedded) linux console\n"
+" apps. See -pipeinput UINPUT below for more information\n"
+" on this mode; you will have to use -pipeinput if you\n"
+" want to tweak any UINPUT parameters. You may also want\n"
+" to also use the -nodragging and -cursor none options.\n"
+" Use \"console0\", etc or -pipeinput CONSOLE to force\n"
+" the /dev/ttyN method.\n"
+"\n"
+" Note you can change the Linux VT remotely using the\n"
+" chvt(1) command to make the one you want be the active\n"
+" one (e.g. 'chvt 3'). Sometimes switching out and back\n"
+" corrects the framebuffer's graphics state. For the\n"
+" \"-rawfb vtN\" mode there is no need to switch the VT's.\n"
+"\n"
+" To skip input injecting entirely use \"consolex\"\n"
+" or \"vtx\".\n"
"\n"
" The string \"/dev/fb0\" (1, etc.) can be used instead\n"
" of \"console\". This can be used to specify a different\n"
@@ -3817,8 +3889,8 @@ void print_help(int mode) {
"\n"
" If you do not want x11vnc to guess the framebuffer's\n"
" WxHxB and masks automatically (sometimes the kernel\n"
-" gives inaccurate information), specify them with a\n"
-" @WxHxB at the end of the string.\n"
+" gives incorrect information), specify them with a @WxHxB\n"
+" (and optional :R/G/B masks) at the end of the string.\n"
"\n"
" Examples:\n"
" -rawfb console\n"
@@ -3827,6 +3899,7 @@ void print_help(int mode) {
" -rawfb consolex (no keystrokes or mouse)\n"
" -rawfb console:/dev/nonstd\n"
" -rawfb console -pipeinput UINPUT:accel=4.0\n"
+" -rawfb vt3 (/dev/tty3 w/o /dev/fb0)\n"
"\n"
" VNC HOST: if the -rawfb string is of the form\n"
" \"vnc:host:N\" then the VNC display \"N\" on the remote\n"