野火6ull开发板,运行qt程序出现两个光标,窗口显示不全的解决办法

最近因为学校任务,我需要使用Qt开发一个图形界面的软件,运行在野火的iMX 6ull嵌入式arm开发板上。我按照野火的教程将其拷贝到开发板中后,出现了一个问题:

其一,我的程序显示出界面之后,屏幕上出现了两个光标,一个是我写的程序的,一个是野火demo的,两个光标互相划破对方界面。整个屏幕上我做的程序界面和野火demo界面交织在一起,一片混乱。

其二,是我的程序界面在屏幕上显示不全。只能显示左上角部分。右侧和下方还有很大一块区域超出了屏幕外,没有显示。

针对这两个问题解决方案分别如下。

目录

界面冲突问题

分辨率问题


界面冲突问题

屏幕上出现两个光标,并且自己写的程序和野火demo的界面交织在一起。出现这个问题,是因为你运行自己写的程序的时候,没有关闭野火的demo,因此,你所写的程序界面和野火demo的界面发生了冲突。解决方法是,在运行自己写的程序之前,关闭野火demo。

在终端中输入以下命令:

sudo systemctl disable ebf-qtdemo

以上命令的功能便是停掉野火demo这项服务,在开发板启动后不加载它。我们执行完这个命令之后,重启开发板,会发现,屏幕是黑的,野火demo并没有启动。我们再启动我们的程序,就会发现,问题已经不存在了。

当然,在这之后,如果我们想要再去启动野火demo,也是可以的。在命令行中输入

sudo /usr/local/qt-app/run.sh

即可启动野火demo。

分辨率问题

软件窗口显示不全,实质上是因为当前板子的分辨率不够。虽说这块开发板的HDMI能输出1388x768的分辨率,但是我们查看一下设备树的源代码就会发现,初始的分辨率只有640x480,远达不到开发板支持的最高分辨率。

解决的办法便是,将开发板的分辨率调高。而调整开发板的分辨率,需要修改设备树的源代码,然后编译,将编译后的文件拷贝到开发板中然后重启即可。

首先先下载开发板设备树的源代码。接下来的操作都在Linux环境下完成。首先你的Linux系统下要安装有git。然后任意找一个目录(暂称其为目录A),之后在这个目录,也就是目录A中,执行以下两个命令:

git clone  https://gitee.com/Embedfire/ebf_linux_kernel_6ull_depth1
git clone https://gitee.com/Embedfire/embed_linux_driver_tutorial_imx6_code.git

之后在目录下会出现两个子目录:

前一个是内核代码,后一个是驱动代码。我们进入到ebf_linux_kernel_6ull_depth1文件夹下,之后进入其中的arch/arm/boot/dts目录下,此文件夹中有很多.dts格式的文件,这是开发板设备树的代码。

进入其中的overlays子文件夹下,如图所示:

 

这其中,有一个文件名为imx-fire-hdmi-overlay.dts,打开后如图所示:

 

 图中光标所处的位置,便是分辨率,可以看到其默认值为640x480。我们将其修改为想要的数值。比方说我们想要将其设置为1366x768,便做如下修改:

 

之后保存文件,然后编译。

搬移过程如下,进到ebf_linux_kernel_6ull_depth1目录下,在终端中输入如下命令:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- npi_v7_defconfig
make ARCH=arm -j4 CROSS_COMPILE=arm-linux-gnueabihf- dtbs

之后进到arch/arm/boot/dts/overlars目录下,可以看到,每个dts文件都出现了一个对应的dtbo文件,这是编译后的结果。

 我们在其中找到imx-fire-hdmi-overlay.dtbo文件,这便是新的hdmi驱动,现在要将其拷贝到开发板中。

启动开发板,进入开发版中的/usr/lib/linux-image-4.19.35-imx6/overlays文件夹下。将生成的imx-fire-hdmi-overlay.dtbo文件拷贝到其中,并替换该目录中原有的同名文件。

然后重新启动开发板,可以看到,程序界面已经能够完整显示了。

ps:关于嵌入式Linux中设备树相关的知识,可以参考这篇文章

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值