Skip to content

boards: Add Nano-X Default Configs and Documents for Nuttx - #19912

Draft
Acfboy wants to merge 5 commits into
apache:masterfrom
Acfboy:add-microwindows-doc
Draft

boards: Add Nano-X Default Configs and Documents for Nuttx#19912
Acfboy wants to merge 5 commits into
apache:masterfrom
Acfboy:add-microwindows-doc

Conversation

@Acfboy

@Acfboy Acfboy commented Aug 20, 2026

Copy link
Copy Markdown

Summary

This PR provides documentation and defconfigs for apache/nuttx-apps#3689 in nuttx-apps, and will be converted into an official PR after the previous documentation changes #19572 are merged.

Acfboy added 5 commits August 20, 2026 22:09
Add the sim:mw defconfig and board documentation entry for the
Microwindows demo.  This configuration uses the virtual keyboard
(event mode), touchscreen, and X11-based framebuffer.

Signed-off-by: Acfboy <AcfboyU@outlook.com>
Assisted-by: Opencode/Deepseek-V4-pro
Add the qemu-intel64:mw defconfig and board documentation entry. This configuration uses the Multiboot2 framebuffer, USB HID keyboard event input at /dev/kbda, and USB HID mouse.

Signed-off-by: Acfboy <AcfboyU@outlook.com>

Assisted-by: Opencode/Deepseek-V4-pro
This page covers the Microwindows integration, quick start for both
sim:mw and qemu-intel64:mw configurations, available Kconfig options
for keyboard/mouse/framebuffer drivers, the mwdemo demo application,
and porting guidance for new hardware.

Signed-off-by: Acfboy <AcfboyU@outlook.com>
Assisted-by:  Opencode/Deepseek-V4-pro
Add sim:nanox and qemu-intel64:nanox defconfigs for the Nano-X terminal and calculator examples.

Signed-off-by: Acfboy <AcfboyU@outlook.com>
Assisted-by: Opencode/Deepseek-V4-pro
Document Nano-X client/server support, quick-start instructions, board configurations, terminal and calculator examples, and the simulator screenshot.

Signed-off-by: Acfboy <AcfboyU@outlook.com>
Assisted-by: Opencode/Deepseek-V4-pro
@github-actions

Copy link
Copy Markdown

MemBrowse Memory Report

No memory changes detected for:

@acassis

acassis commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

@Acfboy please rebase your nuttx-apps now that microwindow/nano-x was merged and please fix the errors reported here in our CI:

"Configuration/Tool: qemu-intel64/mw
2026-08-20 18:10:44

Cleaning...
Configuring...
Building NuttX...
/github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c: In function 'ConvBMP':
Warning: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c:379:32: warning: declaration of 'p' shadows a previous local [-Wshadow]
379 | unsigned char p = imagebits + ipitch;
| ^
/github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c:255:8: note: shadowed declaration is here
255 | UCHAR *p = (UCHAR *)&l;
| ^
Warning: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c:404:32: warning: declaration of 'p' shadows a previous local [-Wshadow]
404 | unsigned char p = imagebits + ipitch;
| ^
/github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c:255:8: note: shadowed declaration is here
255 | UCHAR *p = (UCHAR *)&l;
| ^
/github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c: In function 'DecodeRLE4':
Warning: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c:577:66: warning: 'c1' may be used uninitialized [-Wmaybe-uninitialized]
577 | put4((c1 >> 4) & 0x0f);
| ~~~~^~~~~
/github/workspace/sources/apps/graphics/microwindows/microwindows/src/images/tools/convbmp.c:549:23: note: 'c1' was declared here
549 | int c, n, c1, c2;
| ^~
In file included from /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windows.h:21,
from mwdemo.c:20:
Error: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windef.h:168:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
168 | typedef int (FAR *FARPROC)();
| ^~~~~~~
Error: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windef.h:169:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
169 | typedef int (NEAR *NEARPROC)();
| ^~~~~~~
Error: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windef.h:170:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
170 | typedef int (*PROC)();
| ^~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [/github/workspace/sources/apps/Application.mk:257: mwdemo.c.github.workspace.sources.apps.examples.microwindows.o] Error 1
In file included from /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windows.h:21,
from mwdemo_main.c:31:
Error: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windef.h:168:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
168 | typedef int (FAR *FARPROC)();
| ^~~~~~~
Error: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windef.h:169:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
169 | typedef int (NEAR *NEARPROC)();
| ^~~~~~~
Error: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/include/windef.h:170:1: error: function declaration isn't a prototype [-Werror=strict-prototypes]
170 | typedef int (*PROC)();
| ^~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [/github/workspace/sources/apps/Application.mk:348: mwdemo_main.c.github.workspace.sources.apps.examples.microwindows.o] Error 1
make[2]: Target 'all' not remade because of errors.
make[1]: *** [Makefile:54: /github/workspace/sources/apps/examples/microwindows_all] Error 2
/github/workspace/sources/apps/graphics/microwindows/microwindows/src/drivers/fb.c: In function 'select_fb_subdriver':
Error: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/drivers/fb.c:108:27: error: unused variable 'memplan4' [-Werror=unused-variable]
108 | extern PSUBDRIVER memplan4[4];
| ^~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [/github/workspace/sources/apps/Application.mk:257: /github/workspace/sources/apps/graphics/microwindows/microwindows/src/drivers/fb.c.github.workspace.sources.apps.graphics.microwindows.o] Error 1
make[2]: *** [/github/workspace/sources/apps/Application.mk:257: microwindows/src/mwin/winuser.c.github.workspace.sources.apps.graphics.microwindows.o] Error 1
make[2]: Target 'all' not remade because of errors.
make[1]: *** [Makefile:54: /github/workspace/sources/apps/graphics/microwindows_all] Error 2
make[1]: Target 'all' not remade because of errors.
make: *** [tools/LibTargets.mk:248: /github/workspace/sources/apps/libapps.a] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 397: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
[1/1] Normalize qemu-intel64/mw
7a8

CONFIG_ARCH_INTEL64_HAVE_PCID is not set

26a28

CONFIG_DEBUG_SYMBOLS=y
27a30
CONFIG_DEV_SIMPLE_ADDRENV=y
32,35c35,38
< CONFIG_MICROWINDOWS_KBD_EVENT=y
< CONFIG_MICROWINDOWS_KBD_EVENT_PATH="/dev/kbda"
< CONFIG_MICROWINDOWS_MOUSE_RELATIVE=y
< CONFIG_MICROWINDOWS_MWIN=y


CONFIG_HIDKBD_STACKSIZE=10240
CONFIG_HIDMOUSE_STACKSIZE=10240
CONFIG_HIDMOUSE_XMAX=1024
CONFIG_HIDMOUSE_YMAX=768
37a41,44
CONFIG_INIT_PRIORITY=20
CONFIG_LIBM=y
CONFIG_MICROWINDOWS_KBD_EVENT_PATH="/dev/kbda"
CONFIG_MICROWINDOWS_MWIN=y
39a47
CONFIG_PCI_MSIX=y
55,64d62
< CONFIG_PCI_MSIX=y
< CONFIG_HIDKBD_STACKSIZE=10240
< CONFIG_HIDMOUSE_STACKSIZE=10240
< CONFIG_HIDMOUSE_XMAX=1024
< CONFIG_HIDMOUSE_YMAX=768
< CONFIG_DEV_SIMPLE_ADDRENV=y
< CONFIG_LIBM=y
< CONFIG_DEBUG_SYMBOLS=y
< CONFIG_INIT_PRIORITY=20
< # CONFIG_ARCH_INTEL64_HAVE_PCID is not set
Saving the new configuration file
HEAD detached at pull/19912/merge
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: boards/x86_64/qemu/qemu-intel64/configs/mw/defconfig
modified: boards/x86_64/qemu/qemu-intel64/configs/nanox/defconfig

no changes added to commit (use "git add" and/or "git commit -a")
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
(use "git add ..." to include in what will be committed)
examples/microwindows/convbmp
examples/microwindows/images/

nothing added to commit but untracked files present (use "git add" to track)
/github/workspace/sources/nuttx /github/workspace/sources/nuttx
HEAD detached at pull/19912/merge
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: boards/x86_64/qemu/qemu-intel64/configs/mw/defconfig
modified: boards/x86_64/qemu/qemu-intel64/configs/nanox/defconfig"

@Acfboy

Acfboy commented Aug 22, 2026

Copy link
Copy Markdown
Author

please fix the errors reported here in our CI:

@acassis It looks like all the problems are in the microwindows code itself. Should I add a patch in the nuttx-apps repo to fix them?

@xiaoxiang781216

Copy link
Copy Markdown
Contributor

please fix the errors reported here in our CI:

@acassis It looks like all the problems are in the microwindows code itself. Should I add a patch in the nuttx-apps repo to fix them?

the most error come from microwindows self, it's better to upstream the fix to microwindows directly as much as possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: Documentation Improvements or additions to documentation Board: simulator Board: x86_64 Size: L The size of the change in this PR is large

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants