linux内核编程怎么获取屏幕分辨率

linux内核编程怎么获取屏幕分辨率,第1张

iocontl函数里面有一个参数是传递命令的,有一个命令就是用来获取驱动所设定的屏幕分辨率的。

如果iocontl不能用,就要看你的lcd驱动是否加载正确,在内核编译的时候。

Linux下用xrandr命令修改分辨率。

1、进入终端输入命令:xrandr

回车后会显示当前窗口的默认分辨率以及它支持最大的分辨率。在下面列出的是当前屏幕所有支持的分辨率,以及帧率。

2、接着根据自己的需要,然后复制其中的分辨率。这里选择1600x1200,然后复制它。

在终端下面输入命令:xrandr -s  1600x1200

回车后即可瞬间更改分辨率,不满意的话,可以按小键盘上的向上分辨率箭头,重新修改后面的值即可。需要注意的是这个分辨率只能够按上面的给出的分辨率范围修改,否则无效的。

扩展资料

xrandr是一款官方的扩展配置工具。它可以设置屏幕显示的大小、方向、镜像等,包括对多屏的设置。详细的使用方法可以通过man xrandr查看。

1、查询

使用xrandr -q或者xrandr命令可以查询当前的显示状态,使用xrandr --verbose将会显示更详细的信息。

2、设置分辨率

设置分辨率时需要指定设置的output及mode,如将eDP1的分辨率改为1920x1080,命令就是:

xrandr --output eDP1 --mode 1920x1080

1

--output:指定显示器。

--mode:指定一种有效的分辨率。

--rate:指定刷新率。

把这个程序运行下字符终端下到分辨率就出来了。

#include <stdio.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <linux/fb.h>

#include <sys/mman.h>

#include <math.h>

int w,h ,bpp

int *fbmem

int main(int argc , char *argv[])

{

int fd

struct fb_var_screeninfo fb_var

fd = open("/dev/fb0",O_RDWR)

//

//screen w , h , bpp

//get screen information

ioctl (fd,FBIOGET_VSCREENINFO,&fb_var)

w = fb_var.xres

h = fb_var.yres

bpp = fb_var.bits_per_pixel

printf ("Framebuffer %d*%d-%dbpp\n",w,h,bpp)

//fbmem = Framebuffer address

fbmem = mmap (0,w*h*bpp/8,PROT_WRITE|PROT_READ,

MAP_SHARED,fd,0)

//y = 10,x = 200, color = 0xF800

return 0;

}

如有问题联系我!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8732479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存