请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

嵌入式天空

 找回密码
 我要注册

扫一扫,访问微社区

查看: 1591|回复: 0

x6818开发板SDK补丁,刷入内核、uboot 屏幕花屏解决办法

[复制链接]

3

主题

9

帖子

97

积分

版主

Rank: 7Rank: 7Rank: 7

积分
97
发表于 2018-10-10 10:48:50 | 显示全部楼层 |阅读模式
6818开发板SDK下载路径:http://www.embsky.com/forum.php?mod=viewthread&tid=725&highlight=6818


注意:按照上面路径下载的SDK,内核和Uboot无法支持部分开发板的LCD和触摸屏,具体的问题表现是LCD花屏、触摸屏坐标和LCD不对应,如果出现如上问题,需要按照下面的方法修改uboot和linux内核源码。



注意:下面方法中标注为红色的是需要特别注意的,如果出现了相关问题则修改,如果没有相关问题直接忽略红色部分


编译uboot
1.解压源码
cd /opt/UEA_10_08/s5p6818sdk_lzy1/Linux/src
tar -xvf uboot6818.tar.bz2

2.进入 uboot 源码目录修改 Makefile
cd uboot
vim Makefile
    # 将 203 行修改为下面的值
    CROSS_COMPILE=/opt/UEA_10_08/s5p6818sdk_lzy1/Linux/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-

3.修改 board/s5p6818/x6818/config.mk 文件
vim board/s5p6818/x6818/config.mk
    # 将 27 行修改为下面的值
    CROSS_COMPILE=/opt/UEA_10_08/s5p6818sdk_lzy1/Linux/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-

4.花屏再做如下修改
vim board/s5p6818/x6818/x6818-lcds.c
    #将 215行替换为如下内容
    CFG_DISP_MIPI_PLLPMS = 0x2281;
    #将 216行替换为如下内容
    CFG_DISP_MIPI_BANDCTL = 0x8;


5.重新编译
make x6818_config
make -j4

6.烧写 uboot
sudo fastboot flash ubootpak ubootpak.bin

编译内核
1.解压内核源码
cd /opt/UEA_10_08/s5p6818sdk_lzy1/Linux/src/
tar -xvf linux-3.4.tar.bz2

2.进入内核目录,修改Makefile
cd kernel/
vim Makefile
    #将 Makefile 的 196 行替换为下面的内容
    CROSS_COMPILE ?= /opt/UEA_10_08/s5p6818sdk_lzy1/Linux/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-

3.修改屏幕花屏问题
vim arch/arm/plat-s5p6818/x6818/x6818-lcds.c
    //将208行替换为以下内容
    CFG_DISP_MIPI_BANDCTL = 0x8;

4.修改触摸屏幕的触摸点与实际相反的问题
vim drivers/input/touchscreen/gslX680.c
    //在36行下面添加
    extern unsigned char lcdname[32];
    // 在50行下面添加
    static int is_rotate= 0;
    /*
        注释 703 行附近的这几行
        id = cinfo.id;
        x = cinfo.x;
        y = cinfo.y;
    */

    //添加如下几行
    if(is_rotate > 0){
        id = cinfo.id;
        x = SCREEN_MAX_Y - cinfo.x;
        y = SCREEN_MAX_X - cinfo.y;
    } else {
        id = cinfo.id;
        x = cinfo.x;
        y = cinfo.y;
    }
    //在1153 行下面添加以下内容
    if(strcasecmp(lcdname, "wy070ml") == 0){
        printk("wy070ml: gslx680 Touch Driver\n");
        is_rotate =1;
    } else {
        is_rotate = 0;
    }


5.修改内核编译过程中找不到 lcdname 变量的问题
vim arch/arm/plat-s5p6818/x6818/x6818-lcds.c
    //替换59行为
    unsigned char lcdname[32] = "vs070cxn";
    //在 59 行下添加
    EXPORT_SYMBOL(lcdname);



6.使用默认配置,并编译内核
make x6818_defconfig
make -j4

7.生成uImge镜像
make uImage
注:如何执行出错,修要下载mkimage命令
sudo apt install u-boot-tools







回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|EBMSKY Inc. ( 冀ICP备17022971号-1  

GMT+8, 2019-11-18 15:22 , Processed in 0.082228 second(s), 36 queries .

Powered by Discuz! X3.2

© 2014-2018 Comsenz Inc. 【嵌入式天空】设计

快速回复 返回顶部 返回列表