瑞芯微Rockchip开发者社区
直播中

贾桂林

7年用户 1478经验值
私信 关注
[问答]

imx6ul-c3核心板升级libc后应用程序画面不能显示怎么办

在使用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卡方式对核心板进行烧写,烧写完成后,系统可正常启动,并且显示开机画面正确。

问题来了:

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

查看屏幕分辨率:
  • root@tonhe:/etc# cat /sys/class/graphics/fb0/virtual_size
  • 800,960
  • root@tonhe:/etc#

直接修改virtual_size文件:
  • root@tonhe:/etc# echo 800,480 > /sys/class/graphics/fb0/virtual_size
  • root@tonhe:/etc#

画面居然显示出来了,当然触摸是无法用的,但是用 ts_test测试屏幕是可以正常使用的。
重启系统又回到800,960的分辨率,通过fbset查看屏幕信息:
  • root@tonhe:~# fbset
  • mode "800x480-57"
  •         # D: 33.000 MHz, H: 31.220 kHz, V: 57.496 Hz
  •         geometry 800 480 800 960 32
  •         timings 30303 88 121 39 21 48 3
  •         accel false
  •         rgba 8/16,8/8,8/0,0/0
  • endmode
  • root@tonhe:~#
显示画面分辨率是800,480,但是屏幕分辨率是:800,960(不太专业,可能说的名词都不对,了解的专家可以给解释一下这个数字的意义)。

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

  • &lcdif {
  •     pinctrl-names = "default";
  •     pinctrl-0 = <&pinctrl_lcdif_dat
  •              &pinctrl_lcdif_ctrl>;
  •     display = <&display0>;
  •     status = "okay";
  •     display0: display {
  •         bits-per-pixel = <24>;
  •         bus-width = <24>;
  •         display-timings {
  • /*            native-mode = <&timing0>;
  •             timing0: timing0 {
  •             clock-frequency = <9200000>;
  •             hactive = <480>;
  •             vactive = <272>;
  •             hfront-porch = <8>;
  •             hback-porch = <4>;
  •             hsync-len = <41>;
  •             vback-porch = <2>;
  •             vfront-porch = <4>;
  •             vsync-len = <10>;
  •             hsync-active = <0>;
  •             vsync-active = <0>;
  •             de-active = <1>;
  •             pixelclk-active = <0>;
  •             };
  • */
  •             timing0: timing0 {
  •             clock-frequency = <33000000>;
  •             hactive = <800>;
  •             vactive = <480>;
  •             hfront-porch = <121>;
  •             hback-porch = <88>;
  •             hsync-len = <48>;
  •             vback-porch = <39>;
  •             vfront-porch = <21>;
  •             vsync-len = <3>;
  •             hsync-active = <0>;
  •             vsync-active = <0>;
  •             de-active = <1>;
  •             pixelclk-active = <0>;
  •             };
  •         };
  •     };
  • };
文件系统启动信息:
  • U-Boot 2015.04-gcab9885 (Jul 11 2019 - 15:45:19)
  • CPU:   Freescale i.MX6UL rev1.1 at 396 MHz
  • CPU:   Temperature 48 C
  • Reset cause: POR
  • Board: MX6UL 14x14 EVK
  • I2C:   ready
  • DRAM:  256 MiB
  • NAND:  256 MiB
  • MMC:   FSL_SDHC: 0
  • Display: TFT70AB-800x480 (800x480)
  • Video: 800x480x24
  • NAND read: device 0 offset 0x400000, size 0x200000
  • 2097152 bytes read: OK
  • display bmp cfb_console.c
  • In:    serial
  • Out:   serial
  • Err:   serial
  • Net:   Phy 2 not found
  • PHY reset timed out
  • FEC0
  • Error: FEC0 address not set.
  • Normal Boot
  • Hit any key to stop autoboot:  0
  • nand boot..........
  • NAND read: device 0 offset 0xa00000, size 0x800000
  • 8388608 bytes read: OK
  • NAND read: device 0 offset 0x700000, size 0x40000
  • 262144 bytes read: OK
  • Kernel image @ 0x80800000 [ 0x000000 - 0x5e0c78 ]
  • ## Flattened Device Tree blob at 83000000
  •    Booting using the fdt blob at 0x83000000
  •    Using Device Tree in place at 83000000, end 8300b76b
  • Starting kernel ...

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

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



回帖(1)

马聪

2022-1-7 10:09:38

  • 您不是已经知道设定哪个文件的值可以正常显示了吗,开机的时候写入数据或者源码里找找这个文件的值是从哪获取的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分