123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- #
- # For a description of the syntax of this configuration file,
- # see the file kconfig-language.txt in the NuttX tools repository.
- #
- menuconfig VNCSERVER
- bool "VNC server"
- default n
- depends on NET_TCP && !NX_LCDDRIVER
- select NET_TCP_READAHEAD
- select NX_UPDATE
- ---help---
- Enable support for a VNC Remote Frame Buffer (RFB) server.
- if VNCSERVER
- choice
- prompt "VNC server protocol"
- default VNCSERVER_PROTO3p8
- config VNCSERVER_PROTO3p3
- bool "Version 3.3"
- depends on EXPERIMENTAL
- config VNCSERVER_PROTO3p8
- bool "Version 3.8"
- endchoice # VNC server protocol
- config VNCSERVER_NDISPLAYS
- int "Number of displays"
- default 1
- range 1 99
- ---help---
- Specifies the number of RFB displays supported by the server.
- Normally this should be one.
- config VNCSERVER_NAME
- string "VNC display name"
- default "NuttX"
- config VNCSERVER_PRIO
- int "VNC server task priority"
- default 100
- config VNCSERVER_STACKSIZE
- int "VNC server stack size"
- default 2048
- config VNCSERVER_UPDATER_PRIO
- int "VNC updater thread priority"
- default 100
- config VNCSERVER_UPDATER_STACKSIZE
- int "VNC updater thread stack size"
- default 2048
- choice
- prompt "VNC color format"
- default VNCSERVER_COLORFMT_RGB16
- config VNCSERVER_COLORFMT_RGB8
- bool "RGB8 3:3:2"
- config VNCSERVER_COLORFMT_RGB16
- bool "RGB16 5:6:5"
- config VNCSERVER_COLORFMT_RGB32
- bool "RGB32 8:8:8"
- endchoice # VNC color format
- config VNCSERVER_SCREENWIDTH
- int "Framebuffer width (pixels)"
- default 320
- ---help---
- This setting defines the width in pixels of the local framebuffer.
- Memory usage: PixelWidth * ScreenWidth * ScreenHeight
- So, for example, a 320x240 screen with RGB16 pixels would require
- 2x320x240 = 150 KB of RAM.
- config VNCSERVER_SCREENHEIGHT
- int "Framebuffer height (rows)"
- default 240
- ---help---
- This setting defines the height in rows of the local framebuffer.
- Memory usage: PixelWidth * ScreenWidth * ScreenHeight
- So, for example, a 320x240 screen with RGB16 pixels would require
- 2x320x240 = 150 KB of RAM.
- config VNCSERVER_NUPDATES
- int "Number of pre-allocate update structures"
- default 48
- ---help---
- This setting provides the number of pre-allocated update structures
- that will be used. Dynamic memory allocations are never made. In
- the likely event that we run out of update structures, the graphics
- subsystem will pause and wait for the next structures to be released.
- Overhead is 12-bytes per update structure.
- config VNCSERVER_UPDATE_BUFSIZE
- int "Max update buffer size (bytes)"
- default 1024
- ---help---
- A single buffer is pre-allocated for rendering updates. This
- setting specifies the maximum in bytes of that update buffer. For
- example, an update buffers of 32 pixels at 8-bits per pixel and
- 32-rows would yield a buffer size of 1024!
- There is a very strong interaction with this setting and the network MTU.
- Ideally, this buffer should fit in one network packet to avoid accessive
- re-assembly of partial TCP packets.
- REVISIT: In fact, if the buffer does not fit in one network packet,
- then there appears to be reliability issues in the connection. I am
- not sure why that is; TCP is a stream so it should not matter how
- many packets are in a transfer.
- Example: Negotiated pixel depth = 8 BPP, window width = 800 pixels.
- CONFIG_VNCSERVER_UPDATE_BUFSIZE needs to be the payload size (MSS)
- of the transfer or 800 bytes. The MTU is then:
- MSS = MTU - sizeof(IP Header) - sizeof(VNC FramebufferUpdate Header)
- For IPv4, the IP Header is 20 bytes; 40 bytes for IPv6. The
- FramebufferUpdate header is 16 bytes so. The desired MSS is 800 bytes
- so MTU = 836 or 856. For Ethernet, this is a total packet size of 870
- bytes.
- config VNCSERVER_KBDENCODE
- bool "Encode keyboard input"
- default n
- depends on LIB_KBDCODEC
- ---help---
- Use a special encoding of keyboard characters as defined in
- include/nuttx/input/kbd_coded.h.
- config VNCSERVER_INBUFFER_SIZE
- int "Input buffer size"
- default 80
- config VNCSERVER_DEBUG
- bool "VNC Server debug"
- default n
- depends on DEBUG_FEATURES && !DEBUG_GRAPHICS
- ---help---
- Normally VNC debug output is selected with DEBUG_GRAPHICS. The VNC
- server server support this special option to enable GRAPHICS debug
- output for the VNC server while GRAPHICS debug is disabled. This
- provides an cleaner, less cluttered output when you only wish to
- debug the VNC server versus enabling DEBUG_GRAPHICS globally.
- config VNCSERVER_UPDATE_DEBUG
- bool "Detailed updater debug"
- default n
- depends on DEBUG_GRAPHICS || VNCSERVER_DEBUG
- endif # VNCSERVER
|