mirror of
https://github.com/apache/nuttx.git
synced 2026-05-09 23:12:17 +08:00
boards/lckfb-szpi-esp32s3: add vncviewer defconfig and documentation
Build Documentation / build-html (push) Has been cancelled
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:
@@ -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
|
||||
Reference in New Issue
Block a user