码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • virtio-wayland


    在这里插入图片描述

    • CrosVM是Chrome操作系统中,用于创建虚拟机的应用。是一个Rust编写的轻量级的虚拟机。借助于CrosVM
      用户可以很容易的在ChromeOS中运行Linux、Android以及Windows应用程序

    概述

    在这里插入图片描述

    • 目前crosvm实现了virtio wayland协议,实现了对linux虚拟机wayland协议支持
      Linux内核主线没有virtio_wl驱动,只有在chromiumos有virtio_wl驱动实现。
      https://chromium.googlesource.com/chromiumos/third_party/kernel/+/chromeos-4.19/drivers/virtio/virtio_wl.c
    #配套程序,等同于一个wayland server,接收wayland client连接并将socket消息转发到/dev/wl0
    virtwl_guest_proxy
    #guest驱动程序,对用户态暴露/dev/wl,提供VFD,与Host通过2VirtQueue交互(recv,send)
    virtio_wl.ko
    
    • 1
    • 2
    • 3
    • 4

    控制协议

    #参考chromeos-4.19/include/uapi/linux/virtio_wl.h
    VIRTIO_WL_CMD_VFD_NEW = 0x100, /* virtio_wl_ctrl_vfd_new */
    VIRTIO_WL_CMD_VFD_CLOSE, /* virtio_wl_ctrl_vfd */
    VIRTIO_WL_CMD_VFD_SEND, /* virtio_wl_ctrl_vfd_send + data */
    VIRTIO_WL_CMD_VFD_RECV, /* virtio_wl_ctrl_vfd_recv + data */
    VIRTIO_WL_CMD_VFD_NEW_CTX, /* virtio_wl_ctrl_vfd_new */
    VIRTIO_WL_CMD_VFD_NEW_PIPE, /* virtio_wl_ctrl_vfd_new */
    VIRTIO_WL_CMD_VFD_HUP, /* virtio_wl_ctrl_vfd */
    VIRTIO_WL_CMD_VFD_NEW_DMABUF, /* virtio_wl_ctrl_vfd_new */
    VIRTIO_WL_CMD_VFD_DMABUF_SYNC, /* virtio_wl_ctrl_vfd_dmabuf_sync */
    VIRTIO_WL_CMD_VFD_SEND_FOREIGN_ID, /* virtio_wl_ctrl_vfd_send + data */
    VIRTIO_WL_CMD_VFD_NEW_CTX_NAMED, /* virtio_wl_ctrl_vfd_new */
    VIRTIO_WL_RESP_OK = 0x1000,
    VIRTIO_WL_RESP_VFD_NEW = 0x1001, /* virtio_wl_ctrl_vfd_new */
    VIRTIO_WL_RESP_VFD_NEW_DMABUF = 0x1002, /* virtio_wl_ctrl_vfd_new */
    VIRTIO_WL_RESP_ERR = 0x1100,
    VIRTIO_WL_RESP_OUT_OF_MEMORY,
    VIRTIO_WL_RESP_INVALID_ID,
    VIRTIO_WL_RESP_INVALID_TYPE,
    VIRTIO_WL_RESP_INVALID_FLAGS,
    VIRTIO_WL_RESP_INVALID_CMD,
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    前端

    • 没找到前端代码

    后端

    • 后端crosvm实现了对wayland支持,参考:
      https://crosvm.dev/book/devices/wayland.html

    Cuttlefish WL

    • Cuttlefish在启动时,已经使用virtio-wayland,用于host、guest间传递frame,该特性仅在crosvm支持,qemu不支持
    #默认启动命令行
    --wayland-sock=/cuttlefish_runtime.1/internal/frames.sock 
    
    • 1
    • 2

    环境搭建

    Kernel 5.16
    Rootfs
    运行

  • 相关阅读:
    智慧校园管理系统全套源码 智慧学校源码(小程序端、电子班牌、人脸识别系统)
    我用ChatGPT写了一个简单的Python自动化测试脚本
    【数据结构】B : DS图应用--最短路径
    C++PrimerPlus(第6版)中文版:Chapter16.4泛型编程_为何使用迭代器_迭代器类型
    找不到工作,软件测试真的不香了?
    如何利用DGL官方库中的rgcn链接预测代码跑自己的数据集(如何在DGL库的链接预测数据集模块定义自己的数据集类)
    智慧社区管理系统03(用户列表增删查改)
    本地部署大语言模型
    【Redis】事务、lua脚本、发布订阅、异步连接
    计算机网络考点复习
  • 原文地址:https://blog.csdn.net/stray2b/article/details/138187591
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号