linuxfb简单说明

2023-10-27

framebuffer简介

Linux framebuffer(/dev/fb)是用来屏蔽图形显示硬件的抽象层。如果不对硬件进行抽象屏蔽,不同硬件显卡,可能需要编写不同的驱动和应用程序。而引入framebuffer进行统一的抽象后,开发人员可以不用关心硬件平台的差异,以统一的方式编写应用层和较高内核层程序。linuxfb提供接口,让用户的应用程序可以直接访问framebuffer(显示缓存区)来实现显示功能,而不用关心framebuffer的具体实现细节。

framebuffer提供了显卡的抽象描述,同时代表了显卡上的显存,往显示缓存中写入特定格式的数据就意味着向屏幕输出内容。用户将framebuffer映射到进程空间后,就可以直接进行读写操作,写操作会直接反映在屏幕显示的画面上。这种方式尤其适用于没有实际物理显存的嵌入式设备。
带GPU硬件的设备,在显示时,图形的旋转、渲染等,大部分由GPU完成。而framebuffer仅仅是一个映射,将用户写入的信息直接显示在屏幕上,所以所以的图形处理,都是在用户层实现、由CPU完成,因而CPU的负担会加重。
在这里插入图片描述

linuxfb设备

在linux内核嵌入式设备,或者linux内核的电脑上,执行ls -l | grep fb可以看到系统中的linuxfb设备。
正在调试嵌入式设备,有3个fb设备,分别为fb0、fb1、fb2:
在这里插入图片描述
装有Ubuntu系统的PC,有1个fb设备,fb0:
在这里插入图片描述
可以看到/dev/fbx设备的属性是crw,字符型设备。主设备号是29,从设备号从0到31,分别对应/dev/fb0到/dev/fb31。

linuxfb驱动

framebuffer属于驱动层,在linux内核源码下,/drivers/video/fbdev/vesafb.c是通用的framebuffer驱动,该目录下还有其他一些显示芯片framebuffer的驱动。

利用linuxfb截屏

在嵌入式开发中,有时想获取屏幕当前显示内容,可以利用指令,简单的从framebuffer中读取当前显示内容:

cat /dev/fb0 > frame.raw
ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt bgr24  -s 320X240 -i frame.raw -f image2 -vcodec png frame.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linuxfb简单说明 的相关文章

  • Jeesite4使用小结(技术选型)

    这段时间公司准备采用新技术来进行开速开发 自己也是接手了一个项目 目前处于一边熟悉框架 一边开发 中间也踩了很多坑 所以在这打算记录一下 希望能给后面接触这个快速开发框架的一点帮助 第一次接触这个框架 一定要先了解他这个框架的技术选型 当然
  • 06_Me and My Girlfriend:信息收集、漏洞利用、基础提权姿势总结回顾

    思路总结 总体来说 在利用nmap进行扫描以后发发现主机 正对主机ip进行端口与服务的扫描 发现网站开放的80端口 访问发现没有任何功能 尝试gobuster与工具的使用扫描目录与敏感文件 但是无可利用信息 查看网页源码发现暴出来的信息us
  • 字符游戏-智能蛇(上)

    字符游戏 智能蛇 上 上周的作业是写出字符游戏 贪吃蛇的小程序 在完成这个项目之后 我将理清思路 记录一下我的学习过程 让蛇动起来 放置奖励的食物 在蛇吃到食物时延长蛇的身体 设置游戏结束的机制 让蛇动起来 先设置一下相应的字符表示 cha
  • java爬取异步数据_Java 关于抓取异步的网页数据

    publicstaticStringgetHtmlCode Stringurl StringcharCode throwsIOException StringhtmlCode InputStreamin null HttpURLConnec
  • 宏的##嵌套问题

    宏的 嵌套问题 错误demo define VAL 55 define CAT STR A B A B int main void 当宏表达式的形参给 宏 VAL 出现问题 int CAT STR Temp VAL 展开得 int Temp
  • Docker:让应用程序轻松移植到任何地方的利器

    文章目录 容器概念 Java代码详解 Dockerfile 容器生命周期 创建 运行 停止 安全性考虑 限制权限 隔离网络 更新镜像 总结 镜像概念 Java代码详解 Dockerfile 镜像仓库 镜像标签 镜像层 总结 Dockerfi
  • unity四叉树视锥体剔除

    节点代码 using System Collections using System Collections Generic using UnityEngine public class Node public Bounds bound p
  • 领导力的1000+篇文章总结

    领导力的1000 篇文章总结 本文收集和总结了有关领导力的1000 篇文章 由于篇幅有限只能总结近期的内容 想了解更多内容可以访问 http www ai2news com 其分享了有关AI的论文 文章 图书 query 世纪领导力 中国新
  • Python之configparser模块详解和使用

    目录 1 configparser安装 2 configparser简介 3 表示方法 4 configparser详细使用 4 1 对象初始化 4 2 获取所有的sections 4 3 获取所有的sections对应的options 4
  • 嵌入式开发—浅析DMA

    文章目录 1 什么是DMA 2 DMA有什么用 3 怎么用DMA 3 1 常规的DMA配置 3 2 回绕传输 3 3 DMA中断 4 DMA的拓展应用 1 什么是DMA DMA全程Direct Memory Access 即直接存储器访问
  • LeetCode(13):罗马数字转整数

    描述 罗马数字包含以下七种字符 I V X L C D 和 M 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如 罗马数字 2 写做 II 即为两个并列的 1 12 写做 XII 即为 X II 2
  • 【笔试强训选择题】Day37.习题(错题)解析

    作者简介 大家好 我是未央 博客首页 未央 303 系列专栏 笔试强训选择题 每日一句 人的一生 可以有所作为的时机只有一次 那就是现在 文章目录 前言 一 Day37习题 错题 解析 总结 前言 今天是笔试强训第37天 一 Day37习题
  • 在SpringMVC中的Controller里面定义全局变量

    使用SpringMVC的时候 如果想要在Controller中定义一个全局变量 并且实现在不同用户访问程序的时候 所得到的全局变量不一样的 线程安全的 这个时候就可以用Spring的注解 Scope来实现 Controller 把这个bea
  • html网页打开自动弹出,打开一些软件经常自动弹出网页的解决办法

    1 浏览器可以阻止弹出网页啊 工具 gt 选项 gt 内容 阻止弹出网页 2 你应该可以在浏览器选项中设置 是继续打开上次浏览页面 还是打开新页面 空白页面 设定主页或者其他 3 处理 使用正确的软件和方法一般能够屏蔽大部分广告网页 a 对
  • flex弹性布局;justify-content:space-between;最后一行左对齐

    第一种方式 需要在父级元素使用一个伪类 设置flex 1 使伪类自动填充剩余的空间 这种方式会使最后一行的边距失效 after content flex 1 第二种方式 使用margin right计算 这种方式适合每一行固定列数的情况 假
  • android 根据联系姓名获取电话号码

    private String getContactNumber String name Log v geyuan name name String contactNumber ContentResolver cr getContentRes
  • WEB前端之html img标签引用本地图片

    我觉得语法大家都应该明白怎么写 img src img demo PNG 很简单 但是我在第一次写的时候总是出现图片加载不出来的情况 然后发现 只要把图片文件夹放在工程文件夹中就可以正常调用了 这样就解决了这个问题
  • 【格局】一张图看懂全球人工智能竞争格局

    5月24日 由科技部新一代人工智能发展研究中心 中国科学技术发展战略研究院联合国内外十余家机构编写 中国科学技术信息研究所 教育部学校规划建设中心 中国科学院自动化所 中国社科院工业经济研究所 上海市科学学研究所等科研机构 以及清华大学 中
  • Vue3+TypeScript+Router+Vuex+Ant-Design-Vue项目(二)—— Ant-Design-Vue基础组件使用

    新建一个组件 TestPage vue

随机推荐

  • Allegro 使用技巧

    这几个分别是通用 布局 布线 右键不一样 注意区别 最后一个是修剪直角 Allegro技巧有太多了 就先选择我们会用到的10个类型 Allegro封装神器FPM 写进教科书的网友作品 快速生成封装 快速丝印 丝印摆放总共分三步 第一步 调整
  • TensorFlow2模型的保存与恢复

    keras API 保存与加载 保存 Sequential 模型和 Functional 模型 建立用于实验的模型 Sequential 模型和 Functional 模型保存方法相同 用Functional 模型演示 from tenso
  • GAUSSIAN MIXTURE VAE: LESSONS IN VARIATIONAL INFERENCE, GENERATIVE MODELS, AND DEEP NETS

    Not too long ago I came across this paper on unsupervised clustering with Gaussian Mixture VAEs I was quite surprised es
  • 在idea中pom.xml添加sparkSQL依赖

    在idea中 如果没有sparkSQL的依赖 需要现在pom xml 中添加依赖
  • MindStudio算子开发案例(TensorFlow框架AI CPU算子开发全流程)

    1 介绍 B站视频链接 TensorFlow框架AICPU算子开发全流程 哔哩哔哩 bilibilihttps www bilibili com video bv1dY411c7sd 本文旨在帮助用户使用CANN架构和MindStudio平
  • 粒子群算法(PSO)优化的BP神经网络预测,PSO-BP回归预测

    关注 智能算法及其模型预测 clc clear all close all restoredefaultpath tic 导入数据 训练集 190个样本 P xlsread data training set B2 G191 T xlsre
  • nginx根据二级域名做请求转发

    在server 段中添加以下location location root html index index html index htm 处理二级域名fund cmbchina com转发 if http host cmbchina com
  • 华为数通HCIP-ISIS原理与配置

    IS IS的基本概念 isis 中间系统到中间路由协议 链路状态路由协议 IGP 无类路由协议 IS IS是一种链路状态路由协议 IS IS与OSPF在许多方面非常相似 运行IS IS协议的直连设备之间通过发送Hello报文发现彼此 然后建
  • 深入 AXI4 总线(一)握手机制

    VALID READY 握手机制 AXI 总线共有 5 个独立的通道 分别为写地址 写数据 写回应 读地址 读数据通道 5 条通道相互独立 有一些细小的差别 但共同使用一套握手机制 VALID READY 机制 VALID READY 机制
  • 笔记: C语言中的骚操作 (带参宏定义及三目运算实例)

    带参宏定义及三目运算实例 带参宏定义 就是带参数的宏定义 类似函数 三目运算 A B C 即 A为真 则输出B 为假则输出C n 1输出高电平 define CON1 1 PC12 n n HAL GPIO WritePin GPIOC G
  • 2022年度游戏本行业数据报告:十大热门品牌销量排行榜

    2022年游戏本市场的总体局面是 产品竞争极为激烈 同时又各具特色卖点 今年的游戏本市场 市场格局并未有较大的变化 但是新技术 新产品层出不穷 各个游戏本厂商们通过不断创新 提升产品性能 推出了体验感更好的产品 满足了用户不同场景的应用需求
  • HTTP协议和编程实现

    1 HTTP协议 http协议是建立在TCP IP协议之上应用层协议 默认端口为80或者8080 http协议的的特点是无状态 无连接 在访问数据的时候才进行连接 不是长连接 http协议的报文传输的是ASCII码 在TCP IP协议之上
  • 面向对象程序设计的几个基本概念

    面向对象程序设计由6个概念组成 1 类 它是每一个Java程序的基本结构 它包含数据域和数据操作机制 类提供了创建这些软件对象的模板 2 对象 对象是以类为模板创建的实例 以各类可以用来生成任意多个对象 3 封装性 允许或禁止访问类或对象的
  • Centos7 Shell脚本监控磁盘容量实现钉钉告警

    前言 此脚本用来监控服务器磁盘容量实现钉钉告警功能 一 编写Shell脚本 创建脚本存放目录 存放在 data shell 下 mkdir p data shell vim data shell DingTalk Alert bin bas
  • 七款好用的项目管理软件

    TeamLab 它是一个在线商业协作和项目管理的平台 主要功能包括 项目管理 里程碑管理 任务 报表 事件 博客 论坛 书签 Wiki 即时消息等 TeamLab是专为中小型企业 团队打造的系统 使用SaaS解决方案的网站 也就是说 您可以
  • linux 部署Django + apache2 + python3

    之前在本地部署了Django的restful应用Django 从零开始实现简单的restful应用 现在把它部署到服务器上 安装 在部署过程中 很多需要的东西之前已经安装好 所以 python 3 我的服务器是ubuntu 16 04 预装
  • Head First Design Mode(2)-设计模式入门(策略模式)

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 设计模式入门 欢迎来到设计模式世界 我们会看到设计模式的用途和优点 再看看关键的OO原则 通过实例来了解模式是如何运作的 以往是代码复用 现在是经验复用 模拟鸭子的应
  • Character Encoding Issues(good!!!)

    Character Encoding Issues Questions Why What is the default character encoding of the request or response body Why does
  • 【Verilog-26】Net线路连接

    Net是结构描述中为线路连接 连线和接线 建立的模型 net的值是由net的驱动所决定的 驱动器可以是门 UDP 实例模块或者连续赋值语句的输出 语法 1 supply0和supply1类型的net变量分别具有逻辑值0和1 并可以为它定义驱
  • linuxfb简单说明

    framebuffer简介 Linux framebuffer dev fb 是用来屏蔽图形显示硬件的抽象层 如果不对硬件进行抽象屏蔽 不同硬件显卡 可能需要编写不同的驱动和应用程序 而引入framebuffer进行统一的抽象后 开发人员可