Firefly开源社区

12
发表新贴

【技术分享】关于LUbuntu下分辨率和色深问题

263

积分

22

威望

24

贡献

技术达人

Rank: 2

积分
263
QQ
发表于 2016-4-6 17:55:38     
本帖最后由 hongyin 于 2016-5-5 11:28 编辑

经过一段时间的苦苦摸索,终于搞定了lubuntu下固定分辨率(自适应还在研究,后期会更新)和色深的修改(16位改成32位),现在来和大家分享一下研究成果,目前的修改是基于VGA显示的,HDMI的暂时还没研究,但各位可以参考:
http://developer.t-firefly.com/thread-853-1-1.html,现在开始介绍:

固定分辨率的修改:
第一步:
打开 ”kernel/drivers/video/rockchip/vga/sda7123_vga.c“ 找到如下代码(18行):
[mw_shl_code=c,false]
const struct fb_videomode sda7123_vga_mode[] = {
[/mw_shl_code]
第二步:
打开屏幕配置文件 ”kernel/arch/arm/boot/dts/lcd-box.dtsi“在最后面添加一份timing,里面的参数按照第一步源码里面的参数进行配置,一一对应即可。
第三步:
配置完成后修改”kernel/drivers/video/rockchip/vga/firefly_vga.c“
文件里面的宏定义(18行):#define DEFAULT_MODE 10(此值需要修改成对应的值,即第一步里面对应分辨率的下标值加1);
最后编译内核烧写即可;

修改色深为32位:
第一步:
打开“kernel/drivers/video/rockchip/rk_fb_box.c,跳到2300行作如下修改:
[mw_shl_code=c,false]
static struct fb_var_screeninfo def_var = {
/*
#if defined(CONFIG_LOGO_LINUX_BMP)
        .red = {16, 8, 0},
        .green = {8, 8, 0},
        .blue = {0, 8, 0},
        .transp = {0, 0, 0},
        .nonstd = HAL_PIXEL_FORMAT_BGRA_8888,
*/
//modify by hongyin at 2016-04-06
#if 1
        .red = {16, 8, 0},
        .green = {8, 8, 0},
        .blue = {0, 8, 0},
        .transp = {0, 0, 0},
        .nonstd = HAL_PIXEL_FORMAT_RGBX_8888,
        .bits_per_pixel = 32,
#else
        .red = {11, 5, 0},
        .green = {5, 6, 0},
        .blue = {0, 5, 0},
        .transp = {0, 0, 0},
        .nonstd = HAL_PIXEL_FORMAT_RGB_565,     /* (ypos<<20+xpos<<8+format) format */
        .bits_per_pixel = 16,
#endif
        .grayscale = 0,         /* (ysize<<20+xsize<<8) */
        .activate = FB_ACTIVATE_NOW,
        .accel_flags = 0,
        .vmode = FB_VMODE_NONINTERLACED,
};
[/mw_shl_code]
然后跳到2850行左右注掉以下代码:
[mw_shl_code=c,false]
#if defined(CONFIG_LOGO_LINUX_BMP)
                fbi->var.bits_per_pixel = 32;
#else
                fbi->var.bits_per_pixel = 16;
#endif
[/mw_shl_code]
第二步:
打开“kernel/drivers/video/rockchip/lcdc/rk3288_lcdc.c”,调到2180行作如下修改:
[mw_shl_code=c,false]           
           case XBGR888:
           case ABGR888:
                        fmt_cfg = 0;
                        win->swap_rb = 0;                                                            
                        win->fmt_10 = 0;
                        break;
[/mw_shl_code]
最后编译烧写,OK:victory:
已有 1评分威望 +10 灯泡 +11 贡献 +12 收起 理由
0000li + 10 + 11 + 12 很给力!

查看全部评分

回复

使用道具 举报

263

积分

22

威望

24

贡献

技术达人

Rank: 2

积分
263
QQ
发表于 2016-4-6 18:00:18     
修改kernel/arch/arm/boot/dts/lcd-box.dtsi里面的参数完成后,记得把“native-mode = <&timing1>;”里面的1改成自己对应的值
回复

使用道具 举报

发表于 2016-4-7 10:24:54     
已设置精华
暴走的创客!
回复

使用道具 举报

263

积分

22

威望

24

贡献

技术达人

Rank: 2

积分
263
QQ
发表于 2016-4-20 13:42:48     
自适应也已经搞定,但看到没什么人关心,懒得更新了。
回复

使用道具 举报

78

积分

0

威望

0

贡献

技术小白

积分
78
发表于 2016-4-25 15:15:09     
将分辨率自适应的方法贴出来分享下?
回复

使用道具 举报

24

积分

0

威望

0

贡献

游客

积分
24
发表于 2016-4-26 17:19:05     
hongyin 发表于 2016-4-6 18:00
修改kernel/arch/arm/boot/dts/lcd-box.dtsi里面的参数完成后,记得把“native-mode = ;”里面的1改成自己 ...

谢谢楼主到提醒。。终于可以了
回复

使用道具 举报

24

积分

0

威望

0

贡献

游客

积分
24
发表于 2016-4-26 17:20:10     
hongyin 发表于 2016-4-20 13:42
自适应也已经搞定,但看到没什么人关心,懒得更新了。

我百分百关心,希望楼主能更新一些自适应,先谢谢了
回复

使用道具 举报

210

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
210
发表于 2016-6-7 10:53:29     
hongyin 发表于 2016-4-20 13:42
自适应也已经搞定,但看到没什么人关心,懒得更新了。

关注,期待你的自适应更新。
回复

使用道具 举报

210

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
210
发表于 2016-6-7 15:27:49     
其实针对HDMI输出,只需要修改framebuffer的位深就OK了。
回复

使用道具 举报

83

积分

0

威望

0

贡献

技术小白

积分
83
发表于 2016-6-30 11:18:22     
麻烦分享一下自适应的教程,谢谢了,我按照你的方法试过了,但是显示效果还是有点朦胧,不清晰,是怎么回事?
回复

使用道具 举报

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

本版积分规则

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