嵌入式爱好者

查看: 59920|回复: 1

[Linux] IMX6UL升级libc后屏幕显示出现异常

[复制链接]

1

主题

1

帖子

10

积分

AM335x通行证i.MX6UL通行证TCU通行证

扫一扫,手机访问本帖
发表于 2020-11-28 14:54:08 | 显示全部楼层 |阅读模式
本帖最后由 bsaver 于 2020-11-28 14:55 编辑

在使用imx6ul-c3核心板,由于工作原因需要对libc进行升级。
------------------------------------------------------------------

  • 内   核:linux3.14.38(飞凌官方提供)
  • 编译链:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux,里面集成:
  •              libc2.19,
  •              linux头文件版本3.1.1,
  •              gcc版本:4.9
------------------------------------------------------------------

  • 使用buildroot重做了文件系统(busybox1.29),并且交叉编译了zImage、modules、dtb
  • 交叉编译并移植tslib、Qt5.6.2

-----------------------------------------------------------------


使用飞凌官方提供的uboot(由于不开源,未重新编译),内核设备树有修改并且在飞凌官方提供的文件系统下验证可用。
使用飞凌推荐的SD卡方式对核心板进行烧写,烧写完成后,系统可正常启动,并且显示开机画面正确。

问题来了:

系统运行起来后,应用程序画面不能显示、触摸屏校准画面无法显示。

查看屏幕分辨率:
  1. root@tonhe:/etc# cat /sys/class/graphics/fb0/virtual_size
  2. 800,960
  3. root@tonhe:/etc#
复制代码
直接修改virtual_size文件:
  1. root@tonhe:/etc# echo 800,480 > /sys/class/graphics/fb0/virtual_size
  2. root@tonhe:/etc#
复制代码
画面居然显示出来了,当然触摸是无法用的,但是用 ts_test测试屏幕是可以正常使用的。
重启系统又回到800,960的分辨率,通过fbset查看屏幕信息:
  1. root@tonhe:~# fbset

  2. mode "800x480-57"
  3.         # D: 33.000 MHz, H: 31.220 kHz, V: 57.496 Hz
  4.         geometry 800 480 800 960 32
  5.         timings 30303 88 121 39 21 48 3
  6.         accel false
  7.         rgba 8/16,8/8,8/0,0/0
  8. endmode

  9. root@tonhe:~#
复制代码
显示画面分辨率是800,480,但是屏幕分辨率是:800,960(不太专业,可能说的名词都不对,了解的专家可以给解释一下这个数字的意义)。

设备树是根据飞凌官方资料修改的(只修改了GPIO,并且在飞凌原文件系统下验证可用):

  1. &lcdif {
  2.     pinctrl-names = "default";
  3.     pinctrl-0 = <&pinctrl_lcdif_dat
  4.              &pinctrl_lcdif_ctrl>;
  5.     display = <&display0>;
  6.     status = "okay";

  7.     display0: display {
  8.         bits-per-pixel = <24>;
  9.         bus-width = <24>;

  10.         display-timings {
  11. /*            native-mode = <&timing0>;
  12.             timing0: timing0 {
  13.             clock-frequency = <9200000>;
  14.             hactive = <480>;
  15.             vactive = <272>;
  16.             hfront-porch = <8>;
  17.             hback-porch = <4>;
  18.             hsync-len = <41>;
  19.             vback-porch = <2>;
  20.             vfront-porch = <4>;
  21.             vsync-len = <10>;

  22.             hsync-active = <0>;
  23.             vsync-active = <0>;
  24.             de-active = <1>;
  25.             pixelclk-active = <0>;
  26.             };
  27. */
  28.             timing0: timing0 {
  29.             clock-frequency = <33000000>;
  30.             hactive = <800>;
  31.             vactive = <480>;
  32.             hfront-porch = <121>;
  33.             hback-porch = <88>;
  34.             hsync-len = <48>;
  35.             vback-porch = <39>;
  36.             vfront-porch = <21>;
  37.             vsync-len = <3>;

  38.             hsync-active = <0>;
  39.             vsync-active = <0>;
  40.             de-active = <1>;
  41.             pixelclk-active = <0>;
  42.             };
  43.         };
  44.     };
  45. };
复制代码
文件系统启动信息:
  1. U-Boot 2015.04-gcab9885 (Jul 11 2019 - 15:45:19)

  2. CPU:   Freescale i.MX6UL rev1.1 at 396 MHz
  3. CPU:   Temperature 48 C
  4. Reset cause: POR
  5. Board: MX6UL 14x14 EVK
  6. I2C:   ready
  7. DRAM:  256 MiB
  8. NAND:  256 MiB
  9. MMC:   FSL_SDHC: 0
  10. Display: TFT70AB-800x480 (800x480)
  11. Video: 800x480x24

  12. NAND read: device 0 offset 0x400000, size 0x200000
  13. 2097152 bytes read: OK
  14. display bmp cfb_console.c
  15. In:    serial
  16. Out:   serial
  17. Err:   serial
  18. Net:   Phy 2 not found
  19. PHY reset timed out
  20. FEC0
  21. Error: FEC0 address not set.

  22. Normal Boot
  23. Hit any key to stop autoboot:  0
  24. nand boot..........

  25. NAND read: device 0 offset 0xa00000, size 0x800000
  26. 8388608 bytes read: OK

  27. NAND read: device 0 offset 0x700000, size 0x40000
  28. 262144 bytes read: OK
  29. Kernel image @ 0x80800000 [ 0x000000 - 0x5e0c78 ]
  30. ## Flattened Device Tree blob at 83000000
  31.    Booting using the fdt blob at 0x83000000
  32.    Using Device Tree in place at 83000000, end 8300b76b

  33. Starting kernel ...
复制代码

问题到现在还没有解决,有一个疑问需要大家给点意见:

  • 未交叉编译uboot会不会影响屏幕分辨率?
  • 如果不是uboot导致的,是那些原因导致出现这个问题?
  • 这个问题提问飞凌官方:是否可以帮忙交叉编译一下uboot?



回复

使用道具 举报

0

主题

1173

帖子

2202

积分

发表于 2020-11-30 10:43:57 | 显示全部楼层
您不是已经知道设定哪个文件的值可以正常显示了吗,开机的时候写入数据或者源码里找找这个文件的值是从哪获取的
点评回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 08:49

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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