AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1795299
Accepted
fireshadow52
fireshadow52
Asked: 2023-07-11 03:25:01 +0800 CST2023-07-11 03:25:01 +0800 CST 2023-07-11 03:25:01 +0800 CST

使用 QEMU 套接字功能的正确方法是什么?

  • 772

我似乎在任何地方都找不到太多关于使用-serial unix:/path/to/some/file参数 to 的文档qemu-system-XXXX,所以我希望这里有人能对此有所启发。具体来说,我想知道将数据发送到主机上的此套接字并在 QEMU 来宾端接收数据的正确方法是什么。

更新: 作为测试,我使用 RHEL 8 主机和 Solaris 8 来宾。正如 LawrenceC 所建议的,我添加了这个-serial udp::xxxx论点。我还编写了一个 C 程序来连接到 UDP 端口 XXXX 并向其写入一些内容。但是,我没有看到 RHEL 8 端通过nc -u -l -p xxx. 我可能会缺少什么?

看来我对这种方法有一个根本性的误解,认为端口会在 QEMU 来宾上打开,但这只是将串行端口数据从来宾转换为主机上的本地 UDP 端口。

qemu
  • 2 2 个回答
  • 124 Views

2 个回答

  • Voted
  1. Best Answer
    LawrenceC
    2023-07-14T10:30:00+08:002023-07-14T10:30:00+08:00

    您是否尝试与终端程序交互地使用虚拟串行端口?如果是这样,minicom似乎能够让您与套接字而不是串行端口设备进行交互。来自https://www.man7.org/linux/man-pages/man1/minicom.1.html:

      Serial port setup
    
         A - Serial device
              /dev/tty1 or /dev/ttyS1 for most people.  [...]
              To use a UNIX socket for communication the device name
              must be prefixed with "unix#" following by the full path
              and the filename of the socket.  Minicom will then try to
              connect to this socket as a client. As long as it cannot
              connect to the socket it stays 'offline'. As soon as the
              connection establishes, minicom goes 'online'. If the
              server closes the socket, minicom switches to 'offline'
              again.
    

    如果您尝试使用程序向虚拟串口发送数据,请尝试使用 udp 选项,然后就可以使用 netcat。

    如果您只想要一个简单的只读控制台,您可以使用 netcat 或 nc,通过使用以下命令启动 QEMU:-serial udp::4555和ncas: nc -u -l -p 4555。任何时候 QEMU 向该端口写入内容时,它都会出现在 netconsole 会话中。

    如果您确实需要将 QEMU 的虚拟串行端口连接到 unix 套接字,请socat按照此处的建议进行尝试。

    • 1
  2. harrymc
    2023-07-18T17:22:29+08:002023-07-18T17:22:29+08:00

    QEmu -KVM 注释 包含此部分 Interaction based on Unix sockets ,它恢复了使用套接字的所有选项:

    基于Unix套接字的交互

    QEmu 虚拟机通常以带有 QEmu 窗口的图形模式使用,或者以控制台模式(-ngraphic 选项)使用,其中串行控制台重定向到标准输入/输出。第三种选择是使用 Unix 套接字与来宾进行通信。这可以通过两个 QEmu 选项来实现:

    -monitor unix:monitor.sock,server,nowait
    -serial unix:console.sock,server,nowait
    

    如果来宾计算机运行 Linux,则可以通过设备 ttyS0 使用虚拟串行端口。它可以用作带有以下内核命令行参数的早期内核消息的控制台:

    console=ttyS0,38400n8 earlyprint=serial,ttyS0,38400n8
    

    如果来宾计算机运行 systemd,则可以使用以下命令在串行端口上自动生成登录 shell:

    systemctl enable [email protected]
    

    然后可以:

    • 连接到 QEmu 监视器控制台,例如:

      # Use cfmakeraw to make TAB work and isig=1 to allow using Ctrl+C
      socat STDIO,cfmakeraw,isig=1 UNIX:monitor.sock
      
      # socat<1.7.3.0 does not support cfmakeraw. Use raw instead
      socat STDIO,raw,echo=0,isig=1 UNIX:monitor.sock
      
    • 连接到 QEmu 访客控制台,例如:

      socat STDIO,cfmakeraw UNIX:console.sock
      
      # or, with socat<1.7.3.0
      socat STDIO,raw,echo=0 UNIX:console.sock
      
    • 1

相关问题

  • 如何通过 Manjaro(主机/来宾)上的 virt-manager 提高 QEMU/KVM 中的显示分辨率?

  • 安装时设置 qcow2 镜像大小

  • Packer 和 Qemu - Qemu 在 SIGKILL 期间挂起 - 请求重启

  • qemu-system-x86_64 vs qemu-system-sh4 vs qemu-system-i386 哪个更好?

  • 我可以让虚拟机在过度使用时使用交换空间(交换文件)作为内存吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve