Firefly开源社区

修复Firefly-rk3288 android5.1接VGA显示器黑屏无显示问题

89

积分

0

威望

0

贡献

技术小白

积分
89
发表于 2016-9-18 23:28:28     
本帖最后由 guoke5 于 2016-9-19 17:51 编辑

下载了Firefly-rk3288 android5.1 最新的代码,按照官网的介绍成功编译ROM,并将Android5.1的ROM镜像烧到板子上,板子是接着VGA显示器(最高分辨率1280×1024)的,烧ROM后板子重新开机,显示器却一直是黑屏的,没有显示内容,VGA显示器一直提示“输入不支持”。
除了VGA显示器没有显示,其他系统都是正常的,adb shell也可以正常接入,于是查看了一下当前设置的VGA分辨率,不查不知道 ,一查吓一跳:
  1. shell@firefly:/ $ cat sys/class/display/VGA/mode                              
  2. 1920x1080p-60
复制代码


什么?设置给系统的VGA分辨率居然为1920x1080!我的显示器根本支持不了那么高的分辨率,难怪显示器会黑屏。

按照同样的编译方法,试了Android4.4的ROM,发现是OK的
  1. shell@firefly:/ $ cat sys/class/display/display0.vga/mode
  2. 1280x1024p-60
复制代码



于是查看了Android5.1关于VGA显示部分的内核代码(kernel/drivers/video/rockchip/vga),发现Android5.1代码在设置默认VGA分辨率时,固定设置为VGA分辨率列表的最大值(1920*1080).kernel/drivers/video/rockchip/vga/firefly-vga.c (vga_find_best_mode直接使用了vga_find_max_mode的返回值,而vga_find_max_mode的返回值却是1920*1080)

对比了Android4.4的SDK,发现vga_find_best_mode里面并没有直接使用vga_find_max_mode的返回值来设置系统分辨率。5.1的代码,vga_find_best_mode里面最后强制使用了vga_find_max_mode返回的值来设置分辨率,而vga_find_max_mode里面返回的却是1920×1080!因此导致显示器黑屏,只要却掉该处代码,显示即可正常。
  1. diff --git a/kernel/drivers/video/rockchip/vga/firefly_vga.c b/kernel/drivers/video/rockchip/vga/firefly_vga.c
  2. index 06a7df4..6bcde3c 100644
  3. --- a/kernel/drivers/video/rockchip/vga/firefly_vga.c
  4. +++ b/kernel/drivers/video/rockchip/vga/firefly_vga.c
  5. @@ -292,7 +292,7 @@ static struct fb_videomode *vga_find_best_mode(void)
  6.                 printk("vga-ddc: read and parse edid failed errno:%d.\n", res);
  7.         }
  8.         
  9. -       best  = vga_find_max_mode();
  10. +
  11.         return best;
复制代码
猜测:vga_find_max_mode里面有bug,没有过滤掉显示器不支持的分辨率,导致直接取了分辨率列表的最大值。        




Selection_001.png
Selection_002.png
Selection_003.png
Selection_004.png
回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2016-9-19 10:22:14     
{:3_48:}赞一个
回复

使用道具 举报

30

积分

0

威望

0

贡献

游客

积分
30
发表于 2016-9-21 22:10:56     
你好
“修复Firefly-rk3288 android5.1接VGA显示器黑屏无显示问题”
http://developer.t-firefly.com/f ... 7&highlight=VGA
我也遇到这个问题 苦于技术能力无法编译固件 能否发个你改过的固件

我的QQ 254561683 不胜感激
回复

使用道具 举报

89

积分

0

威望

0

贡献

技术小白

积分
89
发表于 2016-9-21 23:53:45     
hardy_bbs 发表于 2016-9-21 22:10
你好
“修复Firefly-rk3288 android5.1接VGA显示器黑屏无显示问题”
http://developer.t-firefly.com/f . ...

我明天上传到百度云给你
回复

使用道具 举报

30

积分

0

威望

0

贡献

游客

积分
30
发表于 2016-9-22 07:50:36     
非常感激 作为报答 本人愿意无偿提供价值50元的神器账号一个  :)
回复

使用道具 举报

89

积分

0

威望

0

贡献

技术小白

积分
89
发表于 2016-9-25 15:07:45     
hardy_bbs 发表于 2016-9-22 07:50
非常感激 作为报答 本人愿意无偿提供价值50元的神器账号一个  :)

已经上传完毕,发你qq?
回复

使用道具 举报

57

积分

0

威望

0

贡献

技术小白

积分
57
发表于 2017-7-17 12:01:15     
赞一个。。此贴帮助很大。。。
回复

使用道具 举报

22

积分

0

威望

0

贡献

游客

积分
22
发表于 2017-10-26 17:31:06     
感謝樓主  學到很多東西
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表