linux虚拟机打开lcd显示屏的途径

linux虚拟机打开lcd显示屏的途径,第1张

1.打开/dev/fbX

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

2.获取可变参数,固定参数

ioctl(fp,FBIOGET_VSCREENINFO,&vinfo)  可变参数

ioctl(fp,FBIOGET_FSCREENINFO,&finfo)  固定参数

3.内存映射(mmap)

screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8

/*这就是把fp所指的文件中从开始到 screensize 大小的内容给映射出来,得到一个指向这块空间的指针*/

fbp =(unsigned char *) mmap (0, screensize,

PROT_READ | PROT_WRITE,

MAP_SHARED, fp,0)

4.使用映射后的地址对屏进行 *** 作。

使用上面得到的 fbp 指针来 *** 作显示缓冲区了。

把lcd看成是一块内存,使用mmap函数把它的缓冲区映射到进程空间中,然后通过映射后的地址直接 *** 作驱动中的显示缓冲区,往这块缓冲写数据,lcd就会按数值转换成相应颜色显示在LCD屏上。

在Linux下,当机器处于睡眠或待机状态时,想通过网络进行唤醒(WOL,wake on lan)时,可以通过如下相关命令来实现:

在A机(嵌入式设备)上,让其睡眠,可以使用如下命令:

ethtool -s eth0 wol g

echo standby>/sys/power/state 或echo mem>/sys/power/state

对于echo到state里面的内容,可以cat下state,就知道可以设置什么值了,而eth0可以根据实际需要通过哪个网口来唤醒设置。

在B机上(嵌入式设备或PC),唤醒A时需先知道A的MAC地址,才可以通过局域网进行唤醒,唤醒时使用如下命令:

ether-wake -i eth0 XX:XX:XX:XX:XX:XX

对于eth0可以根据实际设置,必须是跟A机连接到同一网段的网卡接口,而XX:XX:XX:XX:XX:XX则是A机的MAC地址。

对于上面用到的所有命令,要根据实际看有没有,没有则需要安装或交叉编译移植下,还有要注意电源管理部分内容,看能不能提供相关 *** 作。

关于WOL,可以参考如下网址了解:

http://hi.baidu.com/jzinfo/blog/item/158203e978d58a3fb90e2d03.html

关于睡眠、待机等概念,可以参考如下网址了解:

http://hi.baidu.com/buypro/blog/item/4e6d706737c8ef29aa184c1a.html

http://www.cublog.cn/u3/90973/showart_2281851.html#sec-5.1

ubuntu系统熄屏无法唤醒

解决办法:重启后,安装laptop-mode-tools工具包。

1.检查是否安装了grep laptop-mode-tools 工具包

$ dpkg -l | grep laptop-mode-tools

如果执行命令无结果输出,表示未安装(如果已安装,忽略第2步)

2.安装laptop-mode

执行命令:$ sudo apt-get install laptop-mode-tools

安装完成后查看结果,再次输入1的命令

3.判断Laptop是否启用了laptop_mode模式

修改配置文件:/etc/default/acpi-support,

$ sudo vim /etc/default/acpi-support

更改 ENABLE_LAPTOP_MODE=true

直接在终端中输入 sudo laptop_mode start 启动了laptop_mode之后,在ubuntu挂起后,基本上就不会遇到无法唤醒的情况了

注:有些用户在acpi-support中并未找到 ENABLE_LAPTOP_MODE=true 被注释的项.看文件最后一行的提示

提示我们在/etc/laptop-mode/laptop-mode.conf 中进行配置

那么就输入命令:$ sudo vim /etc/laptop-mode/laptop-mode.conf

在文件中查找 :ENABLE_LAPTOP_MODE_ON_BATTERY、ENABLE_LAPTOP_MODE_ON_AC、ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED

看注释大体明白什么意思 当用电池,外接电源,合上显示屏的时候是否启用 LAPTOP_MODE,将这些全部设置为 1 就可以了。

通过 i  进入修改,然后ESC退出修改,输入:q准备保存退出,会发现无法保存退出,那么就需要强制保存通过指令 :w !sudo tee %

然后:q!就可以退出了

最后启动laptop_mode并查看结果:命令:sudo laptop_mode start


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

原文地址: https://outofmemory.cn/yw/7349390.html

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

发表评论

登录后才能评论

评论列表(0条)

保存