diff options
author | runge <runge> | 2009-01-04 03:10:39 +0000 |
---|---|---|
committer | runge <runge> | 2009-01-04 03:10:39 +0000 |
commit | 4fdb4cc67f1563156593e5b3deca80acf35f39ed (patch) | |
tree | 18a6d6ddc102aa3c91ed8bd24c863893b8f8de1b /x11vnc/help.c | |
parent | 6876b85df3abc71feb26ce85bf2ef3bfae001af2 (diff) | |
download | libtdevnc-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.c | 163 |
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" |