mcpField
I
install-windows-3.11

install-windows-3.11

github.com/letta-aiCloud & DevOps1520 installsUpdated 4w ago
Repository

About install-windows-3.11

A skill for installing and running Windows 3.11 in a QEMU virtual machine. It covers display settings, VNC and web access setup, boot verification, and troubleshooting.

Key features

  1. 01QEMU settings for Windows 3.11
  2. 02Cirrus VGA and disk configuration
  3. 03VNC and noVNC web access
  4. 04QMP, connectivity, and boot checks
  5. 05Common configuration troubleshooting

Use cases

  1. 01Configure a Windows 3.11 virtual machine
  2. 02View its desktop through VNC or noVNC
  3. 03Troubleshoot display, monitor socket, or proxy issues

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/letta-ai/skills --skill install-windows-3.11

After installing, type/install-windows-3.11in Claude Code to confirm it loaded.

Details

From the project README

Install Windows 3.11 in QEMU

Overview

This skill provides procedural knowledge for installing and running Windows 3.11 in a QEMU virtual machine with VNC and web-based access. Windows 3.11 is a legacy 16-bit operating system that requires specific QEMU configuration for proper operation.

Pre-Installation Checklist

Before starting, verify the following:

  1. Check for expected file paths and naming conventions - Tests or acceptance criteria may expect specific paths (e.g., /tmp/qemu-monitor.sock vs /tmp/monitor-socket). Review any test files or documentation first.
  2. Identify the disk image location and format - Common locations include /app/isos/ or /var/lib/qemu/
  3. Determine QEMU version compatibility - If the image is known to work with a specific QEMU version, note any compatibility flags needed

QEMU Configuration for Windows 3.11

Essential Parameters

Windows 3.11 requires specific QEMU parameters for proper operation:

qemu-system-i386 \
  -drive file=/path/to/win311.img,format=raw,if=ide \
  -m 32 \
  -vga cirrus \
  -vnc :1 \
  -monitor unix:/tmp/qemu-monitor.sock,server,nowait \
  -snapshot \
  -k en-us
Critical Parameters Explained
ParameterPurposeNotes
-vga cirrusVGA adapter typeREQUIRED for Windows 3.11 display compatibility. Alternatives: -vga std. Without this, display may not work.
-m 32Memory allocation32MB is appropriate for Windows 3.11
-monitor unix:/tmp/qemu-monitor.sock,server,nowaitQMP monitor socketUse the expected socket path - check tests/docs for naming conventions
-snapshotImmutable disk modePrevents writes to the original image
-k en-usKeyboard layoutUS keyboard mapping
if=ideDisk interfaceIDE interface for legacy OS compatibility
Common VGA Options for Legacy Systems
  • -vga cirrus - Best compatibility for Windows 3.x/9x
  • -vga std - Standard VGA, good fallback option
  • -vga vmware - VMware SVGA (may not work with Windows 3.11)

VNC and Web Access Setup

VNC Configuration

When using -vnc :1, the VNC server runs on port 5901 (5900 + display number).

noVNC Web Interface

To provide web-based access to the VNC session:

  1. Install websockify: Bridges WebSocket connections to VNC

    pip install websockify
    
  2. Start websockify:

    websockify --web=/usr/share/novnc 6080 localhost:5901
    
  3. Configure nginx (if needed):

    • Check existing nginx configuration with nginx -T before making changes
    • Look for conflicting server blocks or port bindings
    • Create a dedicated configuration file in /etc/nginx/sites-available/

Verification Strategies

1. Verify QEMU Process
ps aux | grep qemu

Confirm the process is running with expected parameters.

2. Test QMP Monitor Connection
echo '{"execute": "qmp_capabilities"}' | nc -U /tmp/qemu-monitor.sock

Expected response should include {"return": {}}.

3. Test VNC Connectivity
nc -zv localhost 5901
4. Visual Verification (Critical)

Do not mark boot completion as verified without visual confirmation. Options:

  • Take a VNC screenshot using a tool like vncsnapshot
  • Use a headless browser to capture the noVNC web interface
  • Connect via VNC client and manually verify
5. Wait for Boot Completion

Windows 3.11 boot time varies. Wait at least 30-60 seconds before testing, not just 10 seconds.

Common Pitfalls

Missing VGA Configuration

Problem: QEMU starts but display is blank or garbled. Solution: Add -vga cirrus or -vga std to the QEMU command.

Wrong Socket Path

Problem: Tests fail to connect to QMP monitor. Solution: Check expected socket path in tests/documentation. Common paths:

  • /tmp/qemu-monitor.sock
  • /tmp/monitor-socket
  • /var/run/qemu-monitor.sock
Nginx Configuration Conflicts

Problem: Nginx fails to start or proxy doesn't work. Solution:

  1. Run nginx -T to see full configuration before making changes
  2. Check for conflicting server blocks
  3. Ensure no duplicate listen directives
Premature Completion Claims

Problem: Marking tasks complete without actual verification. Solution: Always verify visually that Windows 3.11 reaches the desktop before claiming completion.

QEMU Version Compatibility

Problem: Image created for older QEMU version doesn't work correctly. Solution:

  • Check if legacy machine types are needed: -M pc-i440fx-2.0
  • Review QEMU changelog for breaking changes between versions
  • Test with compatibility flags if available

Troubleshooting Workflow

  1. Check QEMU is running: ps aux | grep qemu
  2. Verify VNC port is open: netstat -tlnp | grep 590
  3. Test QMP socket: nc -U /tmp/qemu-monitor.sock
  4. Check QEMU logs: Run QEMU with -D /tmp/qemu.log for debugging
  5. Verify nginx status: systemctl status nginx and nginx -t
  6. Check websockify: ps aux | grep websockify

Approach Summary

  1. Research first: Check tests/docs for expected paths and configurations
  2. Configure QEMU properly: Include VGA adapter and correct socket path
  3. Set up access layer: VNC, websockify, nginx in sequence
  4. Verify each component: Test connectivity at each layer
  5. Visual confirmation: Always verify Windows 3.11 actually boots to desktop

Comments

Markdown supported