2022.06.26 更新

1、关于h264 vnc

最近查找了一下H264的VNC相关信息,发现TigerVNC已经提前开始支持H264的解码,于是按照TigerVNC解码要求,在OB的ikvm基础上添加了H264的VNC服务器编码,效果非常不错,实测有fps 有45帧左右,远程播放高清视频都十分流畅,没感觉到一点卡顿,并且带宽占用极低,仅有10Mb/s左右(此为H264高画质配置,如果对带宽有及其苛刻的要求,可以进一步压缩H264质量,在X86桌面静止不动的情况下,实测带宽仅占用2.5Mb/s)。

实测的视频效果可以看这里:(视频是手机录制的,看着不是特别清晰,其实实际画面很高清,但至少可以看到视频流畅度,以及带宽占用的情况)

nas - Synology DiskStation

2、关于通过bmc 与远程x86主机互传文件

bmc中对于x86主机没有网络,而只有bmc有网络的情况,想要和x86进行文件互传是一件十分艰难的事情。

对于通常的VNC,比如tightVNC是可以通过服务端与客户端传文件的,但是此方式传文件的基础是VNC server直接运行在host的主机上,client和server之间有socket连接,因此可以直接发送文件到vnc server主机。

但BMC有所不同,BMC的VNC server并不是运行在host上,而是跑在bmc上,bmc再控制host端,因此常规的vnc传文件不适用于BMC方式。目前ob中的方式主要是将本地文件打成一个iso文件,通过虚拟光驱的方式挂在到x86 host端,此方式仅限于本地发送至x86远端,如果想从远端x86回传文件到本地是办不到的。

因此笔者只能考虑远程挂载U盘方式,但web上的挂载并不支持直接读写硬盘,因此也不支持挂载U盘,只能考虑自己写一个客户端与服务器来实现U盘挂载的功能,软件界面如下:

实现方式为:

BMC上实现一个TCP socket服务器监听,本地的NBDClient为 TCP client,当client连接到server时,server开一个线程去再创建一个nbd的server(需要理解nbd协议,自己实现一个nbd server),主线程去通过调用nbdclient程序去连本地实现的127.0.0.1的nbd server,再将/dev/nbdblock以U盘的形式挂载到x86去。当x86需要读取数据时,通过nbd client向nbd server取数据,nbd server再向 tcp socket server取数据,最终是NBDClient.exe这个本地客户端把本地的数据发送过去。

一开始笔者开发只是考虑到以挂载U盘方式可以方便远程传数据到远端x86,并且远端x86可以回传回数据到U盘,断开U盘挂载时,数据就可以回到本地来,或者可以远程挂载一个带linux 命令行的系统盘,可以实现远程启动u盘里的linux系统,但是实际使用时发现,大多数人并没有随身携带U盘的习惯,并且也害怕U盘被搞坏了导致数据丢失,因此U盘挂载这个功能反而显得十分鸡肋!!!笔者再三思考是不是有其他更好的实现方式,但最终还是没有找到更好的方法,只能迂回一下,考虑是不是可以通过模拟一个U盘来挂载,实现无需U盘也可以实现模拟U盘挂载到x86可以很方便的互传数据,这样也不怕自己的U盘坏了或数据掉了。

google查了一圈资料和软件,发现osfmount这个软件非常符合我的需求,该软件功能十分强大,可以实现模拟U盘、硬盘、ram盘等各种功能,因此将osfmount集成到了NBDClient客户端当中,以便于实现一键模拟和一键删除。实际效果如下:

笔者分别在aspeed 2500上和rock3a上进行了测试,效果十分不错~aspeed bmc受限于cpu,读写速度大概在4MB/s左右,而rock3a读写速度在28MB/s左右,互传数据十分的方便。

PS:部分人会担心自己开了一个socket server端口,会不会有漏洞,被攻击等等。

我的考虑是三种方式避免被攻击:

1、web添加控制开关,默认关闭,需要使用时通过ob的web再开启

2、和ob的obmc-console-client实现类似,通过ssh隧道方式,在ssh隧道之上收发数据。

3、添加用户名、密码校验机制,只有用户名密码验证正确情况下才运行连接(当前按此方式实现)

瑞芯微rk3568移植openbmc(二)----关于vnc h264软解码及U盘挂载和文件传输相关推荐

  1. 瑞芯微rk3568移植openbmc(四)----关于novnc h264 webcodec硬解码

    2022.11.04 更新 1.关于h264 novnc 软解码 上一篇中实现了novnc h264的webassembly软解码,kvm功能 运行一切正常,但帧率较低,且cpu负载相对较高,goog ...

  2. 瑞芯微rk3568移植openharmony3.1(鸿蒙)

    openharmony的移植推荐使用Ubuntu18.04,需要安装的依赖库文件. sudo apt-get update && sudo apt-get install binuti ...

  3. 国产处理器瑞芯微RK3568对比RK3399性能解析-迅为开发板

    迅为iTOP-RK3568开发板 iTOP-RK3568开发板采用瑞芯微RK3568处理器,22nm工艺制程,集成4核A55架构处理器和Mali G52 2EE图形处理器,接口丰富,支持4K解码和10 ...

  4. RK3568开发笔记(一):瑞芯微RK3568芯片介绍,入手开发板的核心板介绍

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/124900731 红胖子(红模仿)的博文大全:开发技术集 ...

  5. 瑞芯微RK3568控制板设计总结

    本周刚使用瑞芯微RK3568设计完成一款军用控制PCB板,特进行总结便于后续设计提升效率. 一.布局相关 器件布局效率及结果对于PCB设计至关重要,特别在使用一个新处理器如何高效的展开器件的布局设计非 ...

  6. Banana Pi开源社区开源硬件瑞芯微RK3568/RK3588全国产化支持计划

    随着国产芯片的崛起与电子供应链的国产化率越来越高,全国产替换从技术上成为了可能.加上近几年地缘政治的影响,全国产替换的呼声越来越高,已经提升到了国家战略层面.国产替换成为了一股技术前进的力量. Ban ...

  7. 不同应用场景瑞芯微RK3568主板方案定制

    随着物联网和智能设备的迅猛发展,瑞芯微RK3568主板方案作为一种高性能的系统System-on-a-chip(SoC),已经成为嵌入式系统.智能家居设备和工业自动化设备等应用场景的首选方案.定制瑞芯 ...

  8. 史上最全! 瑞芯微RK3568核心板评估板资源分享!

    ▎瑞芯微RK3568芯片 高性能处理器:采用四核A55架构CPU,G52 GPU:内置NPU,可提供1T算力 高可靠性设计:支持DDR及CPU Cache全链路ECC 内置自研ISP图像处理器:8M@ ...

  9. 瑞芯微RK3568芯片简介

    瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,集成4核arm架构A55处理器和Mali G52 2EE图形处理器,支持4K解码和1080P编码.RK3568支持SATA/ ...

最新文章

  1. 员工考勤信息管理小程序
  2. Spring Cloud(八)使用Zipkin进行分布式链路跟踪
  3. 快速理解binary cross entropy 二元交叉熵
  4. TensorFlow 教程 --教程--2.1 综述
  5. 迭代器,lower_bound说明
  6. Bootstrap 模态框(Modal)
  7. 31. HTTP 与 HTTPS 区别
  8. 台式计算机主板,台式电脑主板开机过程详解
  9. 项目管理软件-禅道-内网部署
  10. 业务方如何理解产品,更顺利地推进产品需求?
  11. 海康威视查询序列号 紫盘
  12. 4000元组装电脑配置清单2021 4000元台式电脑组装配置单
  13. hazy的leetcode刷题笔记(一)
  14. 【Win10 尝试解决】Win10文件资源管理器无限挂起重启
  15. 网络电视视频服务器所放位置,同样带宽,为什么用电视上的网络电视app看电视就卡,用运营商自己的iptv就不卡呢?...
  16. MBA-day8数学-路程练习题
  17. wechat-0050,微信公众号,带参数的二维码获取与扫码事件推送
  18. 我见过最全的剖析QEMU原理的文章[Z]
  19. 投票系统开发问题合集
  20. Linux系统中安装Oracle 数据库操作

热门文章

  1. 【力扣-141】 环形链表 + 【力扣-142】 环形链表 II
  2. python自动化处理word\ppt\excel\邮箱
  3. uc.php接口调试,ucenter整合对接自己的系统的方法及Authracation has expiried原因
  4. LibGdx tmx地图加载步骤
  5. 瞻仰了一下Gavin King的风采
  6. voliate解决重排序
  7. 19岁天才少年纯手工自制CPU,直呼NB
  8. 机器学习——模型评估、选择与验证
  9. web2.0图形设计风格指南
  10. 解密百信银行架构:如何构建全云系统