Android(基于imx53开发板)修改内核支持HDMI显示

来源:互联网 发布:打谱软件 西贝柳斯 编辑:程序博客网 时间:2024/05/17 02:19

Android(基于imx53开发板)修改内核支持HDMI显示

这里需求是要求自HDMI屏幕上显示1920*1080P60分辨率的效果。

 

具体做法如下:

1、在目录/kernel_imx/arch/arm/mach-mx5下,修改文件mx53_smd.c:

在函数static int __init mxc_init_fb(void){}中,在di1_primary的条件中,即

1
2
3
4
5
6
7
8
9
10
if (primary_id) {
    printk(KERN_INFO "DI1 is primary\n");
       
    ......
       
    /* DI0 -> DC channel: */
--    mxc_register_device(&mxc_fb_devices[0], &fb_data[0]);
  else {
    printk(KERN_INFO "DI0 is primary\n");
  }

将上面代码中的

1
mxc_register_device(&mxc_fb_devices[0], &fb_data[0]);

修改为

1
mxc_register_device(&mxc_fb_devices[0], &fb_data[3]);

 

2、在目录/bootable/bootloader/uboot-imx/include/configs下修改文件mx53_smd_android.h文件如下:

修改#define CONFIG_EXTRA_ENV_SETTINGS下的内容,将

1
2
3
"bootargs=console=ttymxc0 init=/init " \
   "androidboot.console=ttymxc0 video=mxcdi1fb:RGB666,XGA " \
   "ldb=di1 di1_primary gpu_nommu gpu_memory=64M\0" \

修改为

1
"bootargs=console=ttymxc0 init=/init androidboot.console=ttymxc0  video=mxcdi0fb:RGB24,1920x1080P60 ldb=off di0_primary\0"\

 

3、在目录/device/fsl/imx5x目录下修改文件init.rc如下:

1
2
3
4
5
6
7
8
# Define UI to TVOUT,change this setting to 1 and uncomment below write commands
    setprop ro.UI_TVOUT_DISPLAY 0
    #write /sys/class/graphics/fb0/blank 1
    #write /sys/class/graphics/fb1/blank 1
    #write /sys/class/graphics/fb2/blank 1
    #write /sys/class/graphics/fb0/fsl_disp_property 1-layer-fb
    #write /sys/class/graphics/fb1/mode U:720x480i-60\n
    #write /sys/class/graphics/fb1/blank 0

之后添加如下语句:

1
2
3
#VELO HDMI
    setprop rw.SECOND_DISPLAY_CONNECTED 1
    write /proc/hdmi 1


重新编译内核,即可成功实现HDMI分辨率1920*1080P60的显示效果。