framebuffer
双缓冲framebuffer功能需要自行修改内核源码适配
内核修改:
-
修改 fb_fix_screeninfo.smem_len 这个参数,而固定参数不能在应用层修改,所以需要在内核里扩充它的长度
-
修改内核中mmap函数的分配内存的长度,dma的传输范围
-
修改内核中fb_pan_display,以适配显示
应用层修改:
-
在应用层需要把xres_virtual扩充到xres的两倍
-
如果想在主屏幕上显示的话,需要设置 fb_var_screeninfo.xoffset=0;在副屏幕上显示的话,需要设置 fb_var_screeninfo.xoffset=xres;
-
通过ioctl(fd, FBIOPUT_VSCREENINFO, &var);修改参数
-
通过ioctl(fd, FBIOPAN_DISPLAY, &var);把参数传入到内核里,就可以切换屏幕了
LCD设备驱动框架分析(数据结构) - 代码天地 (codetd.com)
c - 在 fb_var_screeninfo 中设置 yres_virtual 时出现无效参数错误 | http (lmlphp.com)
(33条消息) framebuffer_sgc_bf的博客-CSDN博客
Linux 驱动开发 / fbdev 双缓存 / 快速入门 - 知乎 (zhihu.com)
信息挖掘 - Linux 帧缓冲驱动程序 (vonos.net)
Ubuntu 8.10控制台启用FrameBuffer模块 (ngui.cc)
FrameBuffer 的几种使用方式 | AWStudio专业版 (zlg.cn) 双缓存
(33条消息) 在ubuntu虚拟机中使用framebuffer画图_ubuntu 画图_SGuniver_22的博客-CSDN博客
ubuntu下framebuffer的操作 - 哔哩哔哩 (bilibili.com) 有代码
18. 屏幕显示(framebuffer) — [野火]Linux基础与应用开发实战指南——基于LubanCat-RK系列板卡 文档 (embedfire.com) 双缓存
需要实现一个非标准的framebuffer驱动,是否有比较好的方案? - 知乎 (zhihu.com)
【正点原子I.MX6U-MINI应用篇】3、Framebuffer应用编程,操作屏幕 (betheme.net)
Linux应用开发【第一章】Framebuffer应用开发 - 知乎 (zhihu.com)
(1条消息) 最简单的DRM应用程序 (plane-test)_drm plane_LIUHUING的博客-CSDN博客
(1条消息) drm学习笔记4-ubuntu DRM API演示_libdrm安装_菜卓的博客-CSDN博客
linux系统上drm的简单demo程序_云季的博客-CSDN博客
GUI比较,EFL介绍
(33条消息) 主流嵌入式开源GUI比较(二)_anyuliuxing的博客-CSDN博客
全志系列开发板 Tina Linux图形系统框架详解 - 哔哩哔哩 (bilibili.com)
条件一:使用ctrl+alt+F1切换到命令行显示模式(恢复ctrl+alt+F7);
(新版本ubuntu20,更改为ctrl+alt+F6进入命令行,ctrl+alt+F1恢复)
条件二:使用sudo运行程序。