发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[香蕉派作品] 【LeMaker Guitar试用体验】解决Ubuntu Mate输出HDMI显示花屏现象
2016-3-12 12:31:47  2498 ubuntu 显示器 分辨率
分享
1720CA80D3EB74FCEC55B569EDDA1DFA.png
Ubuntu Mate For Guitar在bootloader在添加了HDMI分辨率自适应功能,它可以在启动阶段,由uboot获取EDID信息来自动调节HDMI的分辨率。EDID是显示器关键参数信息,一旦显示设备及HDMI转VGA线不支持EDID,就导致运行系统时显示器花屏。通过uboot启动时的log来判断是否支持EDID
  1. <font size="2">parse hdmi edid information successfully
  2. In:    serial
  3. Out:   serial
  4. Err:   serial
  5. Net:   owl_mac</font>
复制代码
如果EDID获取成功,输出" successfully ";反之,则输出" unsuccessfully "。
为了支持EDID获取失败的显示器,首先要关闭uboot阶段的EDID函数;
1、在ubuntu系统下,搭建交叉编译环境。
  1. <font size="2">wget http://releases.linaro.org/15.05/components/toolchain/binaries/ARM-linux-gnueabihf/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
  2. tar -xvf gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz -C /opt/</font>
复制代码
编辑/etc/bash.bashrc,并添加以下内容
  1. <font size="2"> IF [ -d /opt/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf ]; then
  2.    PATH=/opt/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf/bin:":${PATH}"
  3. fi</font>
复制代码
最后,使用下面的命令更新系统环境变量:
  1. <font size="2">source /etc/bash.bashrc</font>
复制代码
2、下载Lemaker Guitar相关源码。
  1. <font size="2">git clone https://github.com/LeMaker/linux-actions-bsp.git</font>
复制代码
在linux-actions-bsp目录下
  1. <font size="2">./configure</font>
复制代码
注:底板后面有标注型号,根据自己的型号选择
  1. <font size="2">make hwpack</font>
复制代码
make hwpack之后,经过很久很久。。。
3、修改Lemaker Guitar相关源码。
编辑u-boot-actions/arch/arm/dts/lemaker_guitar.dts文件
  1. <font size="2"> hdmi: hdmi@b02c0000{
  2.                 status="okay";
  3.                 hdcp_onoff = <0>;
  4.                 channel_invert = <0>;
  5.                 bit_invert = <0>;
  6.                 hotplugable = <0>;
  7.                 bootable = <0>;  0:disable 1:enable
  8.                 bootrotate = <0>;
  9.                 default_resolution = "auto";
  10.         };</font>
复制代码
bootable=<0>关闭uboot阶段的EDID函数
bootable=<1>时,打开uboot阶段的EDID函数。

执行命令:make hwpack
4、更新修改的配置。
我的板卡还没有配置nfs服务,于是使用U盘把
linux-actions-bsp/build/s500/u-boot/u-boot-dtb.img
linux-actions-bsp/build/s500/misc/kernel.dtb
两个文件转移到板卡/home/lemaker/下。
使用串口登陆板卡终端

  1. <font size="2">//更新uboot镜像:
  2. # sudo dd if=/home/lemaker/u-boot-dtb.img of=/dev/mmcblk0 bs=512 seek=6144
  3. //更新kernel的DTB文件
  4. # sudo mount /dev/mmcblk0p1 /mnt
  5. # sudo cp -f /home/lemaker/kernel.dtb /mnt
  6. # sudo umount /mnt
  7. //同步文件并重启系统
  8. # sudo sync && reboot</font>
复制代码
其实还有另外一个简单粗暴的方法
由于uboot阶段检测的HDMI的自适应参数,只要避开uboot的HDMI检测阶段由内核自身获取HDMI参数。
切断HDMI接口,重启系统。等系统启动完成后,重新插上HDMI设备。
QQ截图20160311203628.jpg
U跟D是神马意思?



0
2016-3-12 12:31:47   评论 分享淘帖

只有小组成员才能发言,加入小组>>

11个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

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