如果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;
}
如有问题联系我!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)