【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用:QT与触摸屏(3)

来源:互联网 发布:淘宝严查沙河 编辑:程序博客网 时间:2024/05/18 03:58
前面我们已经构建好了基本的Rootfs,并且可以启动起来的,但是我们也会发现这个roofs非常的小,相当于一个busybox搭建的一样,当然这个无法满足我们的需求,因此我们下面将开始扩展我们的rootfs,添加一些工具让我们可以方便的开发。

显示问题

使用前面的方法启动后,我们会发现在uboot阶段是有图片的,但是在linux之后却没有发现有boot logo,然后启动之后我们也没有发现有/dev/fb0这个设备,同时也没用在dmesg中找到fb相关的内容,而device driver中却已经配置好了驱动:

因此可以推断出我们的驱动并没有probe,那么就可能是我们的device没有和driver match,或者根本就没有加载这个驱动,然后我们注意到在内核中的启动参数中有一个lcd相关的参数:


当然也可以认为那个consoleblank=0也是相关的,关于这个consoleblank,其实是这样子的:
我们在内核中配置了使用console on framebuffer,那么过10分钟,就会自动关闭掉这个console,其实就相当于关闭掉了这个屏幕,所以这里将其设置为0是为了不让屏幕在10分钟之后关闭,变成黑屏。

因此我们改一下bootargs,重新启动:
set ipaddr 192.168.1.111;set serverip 192.168.1.100
set bootargs 'console=ttyO0,115200n8 ip=192.168.1.111 root=/dev/nfs nfsroot=192.168.1.100:/home/hexiongjun/nfs/evb335xii_mini rootwait  consoleblank=0 lcdtype=AUO_AT070TN94'
tftp 82000000 uImage; bootm 82000000
然后就可以看到我们的Linux boot logo,以及Yocto的开机动画了。

Qt

在前面的文章中各种基本组件都有了,我们接下来构建QT。
在Yocto中编译包是非常容易的,如果recipes已经有了。我们要构建qt,那么首先是将qt的recipes加入到layer中,但是因为qt4的包默认就在poky中了,因此我们不需要在添加了,因此直接编译:
bitbake qt4e-demo-image
编译完成后同样的解压到nfs,将modules install,那么就可以启动了。
启动后发现没有出来Qt的界面,然后详细看log,可以看到:
Starting Telephony daemon
Starting Linux NFC daemon
Starting qtdemo
/etc/rc5.d/S99qtdemo: line 9: /usr/bin/ts_calibrate: not found

Poky (Yocto Project Reference Distro) 2.0.2 beaglebone /dev/ttyO0
里面有一行说没有ts_calibrate程序,因此我们需要安装这个包。安装的方法也是非常容易的,直接在image的bb文件中添加即可:
IMAGE_INSTALL += "\
    fb-test \
    tslib \
    tslib-tests \
    tslib-calibrate \
    tslib-conf \
"


然后重新编译image,并解压到nfs启动,然后我们这个时候是可以出来一个界面,但是这个界面是calibrate的界面:

但是我们发现点击触摸屏之后没有反应,这个是因为我们的rootfs中配置的input device env有问题。


在正常的系统中的变量是这样子的:

因此我们search并更改一下我们的rootfs中的TSLIB_TSDEVICE:

配置的位置位于:


然后我们再启动就可以使用触摸屏了,在之后就会出现qt的程序了:



在PS中可以看到运行的demo:


l

到这里我们的环境与rootfs就搭建完整了。接下来将是项目。
0 0
原创粉丝点击