boards/lckfb-szpi-esp32s3: add vncviewer defconfig and documentation
Build Documentation / build-html (push) Has been cancelled

Add vncviewer board configuration and documentation:
- boards: add lckfb-szpi-esp32s3:vncviewer defconfig
- Documentation: add system/vncviewer application doc with host
  VNC server setup examples (Xvfb, clip, scale modes) and images

Assisted-by: GitHubCopilot:claude-4.6-opus
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
This commit is contained in:
wangjianyu3
2026-04-26 02:11:24 +08:00
committed by CeDeROM
parent 64cf22628f
commit f97b29c4c4
4 changed files with 239 additions and 0 deletions
@@ -0,0 +1,128 @@
===========================
``vncviewer`` VNC Viewer
===========================
A lightweight VNC viewer that renders a remote desktop on an LCD display via
the NuttX LCD character device interface (``/dev/lcd0``).
Features:
- RFB 3.8 protocol with VNC Authentication (pure software DES, no external library)
- Auto-detect pixel format from LCD driver
- Raw encoding with row-by-row rendering — minimal RAM usage
- Automatic reconnection on disconnect
Prepare
==========================
- Enable the VNC Viewer application (Device):
.. code-block:: bash
CONFIG_NET_TCP=y
CONFIG_LCD=y
CONFIG_SYSTEM_VNCVIEWER=y
- Ensure the device has a working LCD driver (``/dev/lcd0``) and TCP/IP network connectivity.
- Install a VNC server on the host. For example, on Ubuntu:
.. code-block:: bash
sudo apt install x11vnc xvfb openbox xterm
Usage
==========================
.. code-block:: bash
vncviewer [options] <host> [port]
Options:
- ``-p <password>`` — VNC password
- ``-d <devno>`` — LCD device number (default: 0)
- ``-h`` — Show help
Default port: 5900
Host VNC Server Configuration
==============================
Three server modes are supported:
1. Xvfb Virtual Desktop (Pixel-Perfect 1:1)
---------------------------------------------
Create a virtual framebuffer matching the LCD resolution (e.g., 320×240):
.. code-block:: bash
# Start virtual display
Xvfb :1 -screen 0 320x240x16 &
DISPLAY=:1 openbox &
DISPLAY=:1 xterm -geometry 38x11+0+0 -fa Monospace -fs 10 &
# Start VNC server
x11vnc -display :1 -rfbport 5901 -passwd mypasswd -shared -forever -xkb -add_keysyms -bg
On the device:
.. code-block:: bash
vncviewer -p mypasswd <host_ip> 5901
.. figure:: vncviewer_xvfb.png
:align: center
Xvfb virtual desktop — host side (320×240 xterm in VNC viewer)
.. figure:: vncviewer_xvfb_lcd.jpg
:align: center
Xvfb virtual desktop — device side (rendered on ST7789 LCD)
2. Physical Desktop Clip (Top-Left Region)
-------------------------------------------
Clip a region of the physical desktop matching the LCD resolution:
.. code-block:: bash
x11vnc -display :0 -rfbport 5901 -passwd mypasswd -shared -forever -xkb -add_keysyms -bg -clip 320x240+0+0
On the device:
.. code-block:: bash
vncviewer -p mypasswd <host_ip> 5901
3. Physical Desktop Scaled
-------------------------------------------
Scale the full desktop down to the LCD resolution:
.. code-block:: bash
x11vnc -display :0 -rfbport 5901 -passwd mypasswd -shared -forever -xkb -add_keysyms -bg -scale 320x240
On the device:
.. code-block:: bash
vncviewer -p mypasswd <host_ip> 5901
Examples
==========================
Connect to a VNC server with password:
.. code-block:: bash
vncviewer -p mypasswd 192.168.1.100 5901
Connect using a different LCD device:
.. code-block:: bash
vncviewer -d 1 -p mypasswd 192.168.1.100 5900
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@@ -0,0 +1,111 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_ARCH_LEDS is not set
# CONFIG_NSH_ARGCAT is not set
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
CONFIG_ALLOW_BSD_COMPONENTS=y
CONFIG_ARCH="xtensa"
CONFIG_ARCH_BOARD="lckfb-szpi-esp32s3"
CONFIG_ARCH_BOARD_COMMON=y
CONFIG_ARCH_BOARD_ESP32S3_LCKFB_SZPI=y
CONFIG_ARCH_CHIP="esp32s3"
CONFIG_ARCH_CHIP_ESP32S3=y
CONFIG_ARCH_CHIP_ESP32S3WROOM1N16R8=y
CONFIG_ARCH_INTERRUPTSTACK=2048
CONFIG_ARCH_IRQ_TO_NDX=y
CONFIG_ARCH_MINIMAL_VECTORTABLE_DYNAMIC=y
CONFIG_ARCH_NUSER_INTERRUPTS=2
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_XTENSA=y
CONFIG_BOARD_LOOPSPERMSEC=16717
CONFIG_BUILTIN=y
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEV_GPIO=y
CONFIG_DRIVERS_IEEE80211=y
CONFIG_DRIVERS_VIDEO=y
CONFIG_DRIVERS_WIRELESS=y
CONFIG_ESP32S3_GPIO_IRQ=y
CONFIG_ESP32S3_I2C0=y
CONFIG_ESP32S3_SPI2=y
CONFIG_ESP32S3_SPI2_CLKPIN=41
CONFIG_ESP32S3_SPI2_CSPIN=-1
CONFIG_ESP32S3_SPI2_MISOPIN=-1
CONFIG_ESP32S3_SPI2_MOSIPIN=40
CONFIG_ESP32S3_SPIFLASH=y
CONFIG_ESP32S3_SPIFLASH_SPIFFS=y
CONFIG_ESP32S3_SPI_SWCS=y
CONFIG_ESP32S3_SPI_UDCS=y
CONFIG_ESP32S3_UART0=y
CONFIG_ESPRESSIF_LEDC=y
CONFIG_ESPRESSIF_LEDC_CHANNEL0_PIN=42
CONFIG_ESPRESSIF_LEDC_TIMER0=y
CONFIG_ESPRESSIF_WIFI=y
CONFIG_FS_PROCFS=y
CONFIG_GPIO_LOWER_HALF=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_IDLETHREAD_STACKSIZE=3072
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INIT_STACKSIZE=3072
CONFIG_INTELHEX_BINARY=y
CONFIG_IOB_BUFSIZE=400
CONFIG_IOB_NBUFFERS=100
CONFIG_IOB_NCHAINS=32
CONFIG_IOB_THROTTLE=40
CONFIG_IOEXPANDER=y
CONFIG_IOEXPANDER_NPINS=8
CONFIG_IOEXPANDER_PCA9557=y
CONFIG_LCD=y
CONFIG_LCD_DEV=y
CONFIG_LCD_FRAMEBUFFER=y
CONFIG_LCD_ST7789=y
CONFIG_LCD_ST7789_DATA_ENDIAN_LITTLE=y
CONFIG_LCD_ST7789_FREQUENCY=40000000
CONFIG_LINE_MAX=64
CONFIG_NETDB_DNSCLIENT=y
CONFIG_NETDEV_LATEINIT=y
CONFIG_NETDEV_PHY_IOCTL=y
CONFIG_NETDEV_WIRELESS_IOCTL=y
CONFIG_NET_ETH_PKTSIZE=1514
CONFIG_NET_ICMP_SOCKET=y
CONFIG_NET_TCP=y
CONFIG_NET_TCP_DELAYED_ACK=y
CONFIG_NET_TCP_WRITE_BUFFERS=y
CONFIG_NET_UDP=y
CONFIG_NET_UDP_WRITE_BUFFERS=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_READLINE=y
CONFIG_PREALLOC_TIMERS=4
CONFIG_PTHREAD_MUTEX_TYPES=y
CONFIG_RAM_SIZE=114688
CONFIG_RAM_START=0x20000000
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_WAITPID=y
CONFIG_SPI_CMDDATA=y
CONFIG_START_DAY=6
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2011
CONFIG_SYSLOG_BUFFER=y
CONFIG_SYSTEM_DHCPC_RENEW=y
CONFIG_SYSTEM_NSH=y
CONFIG_SYSTEM_PING=y
CONFIG_SYSTEM_VNCVIEWER=y
CONFIG_TIMER=y
CONFIG_TLS_TASK_NELEM=4
CONFIG_UART0_SERIAL_CONSOLE=y
CONFIG_VIDEO=y
CONFIG_VIDEO_FB=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_WAPI=y
CONFIG_WIRELESS_WAPI_CMDTOOL=y
CONFIG_WIRELESS_WAPI_STACKSIZE=4096