【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用:QT与触摸屏(3)
2016-07-31 19:01
966 查看
前面我们已经构建好了基本的Rootfs,并且可以启动起来的,但是我们也会发现这个roofs非常的小,相当于一个busybox搭建的一样,当然这个无法满足我们的需求,因此我们下面将开始扩展我们的rootfs,添加一些工具让我们可以方便的开发。
因此可以推断出我们的驱动并没有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的开机动画了。
在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就搭建完整了。接下来将是项目。
显示问题
使用前面的方法启动后,我们会发现在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就搭建完整了。接下来将是项目。
相关文章推荐
- 【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用(2)
- 【EVB-335X-II试用体验】 Yocto环境的建立及Rootfs的构建与使用
- 【EVB-335X-II试用体验】 上手试用与资源使用
- 【EVB-335X-II试用体验】 基于Yocto的嵌入式的敏捷项目开发:以电子相册为例
- 【EVB-335X-II试用体验】 u-boot与kernel的编译以及本地repo的建立
- NXP LPC54110试用体验2:在keil中使用J-LINK烧录环境搭建篇
- 使用Coin3D VS2010 Qt 5.3.1构建三维图形开发环境
- PHP 开发环境的选择、建立及使用(8)
- 安装与建立 Qt 桌面开发运行环境
- 嵌入式QT-3开发环境建立
- 使用PVCS系列软件构建配置管理环境(四)
- 使用OpenEmbedded构建交叉编译环境 [转]
- ubuntu 建立qt4 开发环境
- 使用ELDK4.1构建交叉编译环境及AT91RM9200EK的引导攻略
- 安装与建立 Qt 桌面开发运行环境
- 使用PVCS系列软件构建配置管理环境(一)
- 使用PVCS系列软件构建配置管理环境(三)
- PHP 开发环境的选择、建立及使用(1)
- Qt/Embedded开发环境建立的过程
- 9200的QT开发环境的建立