在Beaglebone Black板上使用Yocto移植Qt5

拿到Beaglebone Black(懒得打英文,后面先简称狗板吧)已经好久了,一直也没拿来干什么事情,最近比较清闲,在Qt官网上注意到Qt creation(一个收费工具)可以跑在狗板上,搞了半天也搞到源码,官方说可以试用30天,注册申请,好麻烦,看了一些官方文档,发现可以使用Yocto来编译Qt,实现官方所说的Boot to Qt,跟了教程走了好久,基本都要Qt Creation才行,后来各种谷歌,发现一篇神文,中文贴子找了好多也没发现啥相关的,于是我就跟着国外大神帖子内容搞了一下,完美移植。

原帖:http://www.embarcados.com.br/beaglebone-black-qt5-yocto-parte-1/

可能需要梯子才能看,推荐lantern,github上搜搜就有了。

翻译内容可能会加入一些我自己的感悟。我也全都跑通,可以正常使用。也方便自己以后查看。

----------------------------------分割线------------------------------------------------

在本篇文章中我们将借助Yocto项目(是一个开源工具),我们将了解如何编译一个Linux文件系统,其中包含QT5 for Beaglebone Black,并驱动起图形加速器SGX530 。在后面的文章中,我们将看到如何生成一个SDK,并将其布置到Qt Creator,让我们可以正常编译目标板应用程序。

 

以前的一系列出版为相同的目的,但使用QtEmbedded版本(Qt4)。

  

准备环节

 

Yocto项目正式支持以下GNU / Linux发行版,如:

  • Ubuntu的12.04,13.10-14.04;
  • Fedora的19-20;
  • CentOS的6.4-6.5;
  • Debian的7.0,7.1,7.2,7.3-7.4;
  • openSUSE的12.2,12.3-13.1。

 

但是如果想要运行Yocto,我们需要安装一下组件。

 

Ubuntu:

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath libsdl1.2-dev xterm

Fedora:

sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
     diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
     ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue SDL-devel xterm

openSUSE:

sudo zypper install python gcc gcc-c++ git chrpath make wget python-xml \
     diffstat texinfo python-curses patch libSDL-devel xterm

CentOS:

sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
     diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath SDL-devel xterm


搭建构建环境

 

我们将创建目录,并下载必要的组件:


mkdir -p ~/yocto/dl
cd ~/yocto
git clone -b daisy git://git.yoctoproject.org/poky poky-daisy
cd poky-daisy
git clone -b daisy git://git.yoctoproject.org/meta-ti
git clone -b dizzy https://github.com/meta-qt5/meta-qt5.git
git clone -b daisy git://git.openembedded.org/meta-openembedded
git clone -b daisy https://bitbucket.org/embarcados/meta-embarcados.git

请注意,我们使用Yocto项目的“daisy”版本。要想让Beaglebone Black能够正常运行,我们还需要获取底层包 meta-ti  包括 BSP(板级支持包)提供必要的资源(u-boot,kernel,图形加速器等驱动程序)。另外,我们将使用 meta-qt5(其中包括构建Qt5的组件) meta-OpenEmbedded(具有额外的应用程序)meta-embarcados [17] (必要的图形生成测试)。

 

现在让我们来设置环境为我们生成软件构件:

cd ~/yocto
. poky-daisy/oe-init-build-env build-daisy


修改文件~/yocto/build-daisy/conf/bblayers.conf,删除原有文件内容,增加一下内容:

# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  ${TOPDIR}/../poky-daisy/meta-embarcados \
  ${TOPDIR}/../poky-daisy/meta-embarcados/meta-bbb \
  ${TOPDIR}/../poky-daisy/meta-ti \
  ${TOPDIR}/../poky-daisy/meta-qt5 \
  ${TOPDIR}/../poky-daisy/meta-openembedded/meta-oe \
  ${TOPDIR}/../poky-daisy/meta \
  ${TOPDIR}/../poky-daisy/meta-yocto \
  "
文件bblayers.conf告诉构建系统应该使用哪些路径。


增加一下内容在~/yocto/build-daisy/conf/local.conf的开始:

MACHINE = "beaglebone"
DISTRO = "poky"
DL_DIR = "${TOPDIR}/../dl"
PACKAGE_CLASSES = "package_ipk"
DISTRO_FEATURES_remove = "x11 wayland"


需要注意的是构建设备是  beaglebone  (使用黑白两种版本),我们改变了下载目录,以便重复使用下载的其他项目的源代码,并将使用IPK包管理器(它更适合于嵌入式系统,因为它不需要许多资源来工作)。

 

 

生成Image

 

一旦下载源代码,并建立了构建系统会产生几个演示应用程序(qt5-image-demo)QT5(在写这篇文章所用的版本是Qt 5.3.2)。

cd ~/yocto
. poky-daisy/oe-init-build-env build-daisy
bitbake qt5-image-demo


这是构建配置,自动生成的(目前应该会有所改变DISTRO版本会变为1.6.3)

Build Configuration:
BB_VERSION        = "1.22.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "beaglebone"
DISTRO            = "poky"
DISTRO_VERSION    = "1.6.2"
TUNE_FEATURES     = "armv7a vfp thumb neon callconvention-hard cortexa8"
TARGET_FPU        = "vfp-neon"
meta-embarcados   
meta-bbb          = "daisy:434dc81fcb7fe630c107ef172afc33ce62e335db"
meta-ti           = "daisy:5532d8df96caaa6ac73ff825f36e7f11793c7060"
meta-qt5          = "dizzy:0208b397d1929444aef2dca1780fe7fc1d898157"
meta-oe           = "daisy:d3d14d3fcca7fcde362cf0b31411dc4eea6d20aa"
meta              
meta-yocto        
meta-yocto-bsp    = "daisy:5fcab03423d56c0f638e281db52e992a3f647903"


布置Image

 

要在microSD卡上布置Image,必须进行分区,并根据板子协议的标准格式。要达到目的,我们创造了一个脚本,其可以用下面的命令获取:

cd ~/yocto/
git clone https://github.com/henriqueprossi/beaglebone-black.git bbb-sdcard-prepare

 

将您的PC或笔记本电脑(主机系统)上的microSD卡,并找出操作系统创建的那些  /dev/sdb 。试试下面的命令:

dmesg
sudo fdisk -l


例如,我的备节点 创建是  /dev/sdb,请使用以下命令:

cd ~/yocto/bbb-sdcard-prepare/scripts
chmod +x format_sd_card.sh
sudo ./format_sd_card.sh /dev/sdb


一旦分区和格式化的过程完成后,两个分区的microSD卡上创建:

    • boot (FAT32);
    • rootfs (ext4).

 

执行下面一组命令,如果使用了Ubuntu发行版,只需移除设备,并在其连接器重新插入设备。然后把我们编译好的引导文件和文件系统布置到我们之前格式化的microSD中,在设备节点  /media/boot 和 /media/rootfs下:

cd ~/yocto/build-daisy/tmp/deploy/images/beaglebone
cp MLO /media/boot
cp u-boot.img /media/boot
sudo tar xzf qt5-image-demo-beaglebone.tar.gz -C /media/rootfs ; sync

测试Image


从计算机取出microSD并将其插入到BBB,它通过HDMI电缆连接到显示器,并通过USB连接器连接鼠标。您需要通过串行连接来访问系统 。为了使主机和BBB之间的连接,推荐使用官方的串口调试线。

 

注意:

如果您已经在BBB的eMMC安装其他的操作系统,需要长按microSD插槽旁边的按钮。这样会使处理器通过microSD卡启动并引导系统。

 

下面是系统启动后,串口的日志: 

U-Boot SPL 2014.07 (Oct 21 2014 - 11:05:17)
MMC: block number 0x100 exceeds max(0x0)
MMC: block number 0x200 exceeds max(0x0)
*** Error - No Valid Environment Area found
Using default environment

reading u-boot.img
reading u-boot.img


U-Boot 2014.07 (Oct 21 2014 - 11:05:17)

I2C:   ready
DRAM:  512 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Using default environment

Net:    not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
reading uEnv.txt
** Unable to read file uEnv.txt **
4881552 bytes read in 322 ms (14.5 MiB/s)
31676 bytes read in 66 ms (467.8 KiB/s)
Kernel image @ 0x82000000 [ 0x000000 - 0x4a7c90 ]
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8fff5000, end 8ffffbbb ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.14.19 (dsueiro@dsueiro-N46VM) (gcc version 4.8.2 (GCC) ) #1 Tue Oct 21 10:27:29 BRST 2014
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: TI AM335x BeagleBone
[    0.000000] cma: CMA: reserved 24 MiB at 9e000000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.0 (sgx neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129792
[    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 478672K/523264K available (6491K kernel code, 436K rwdata, 2520K rodata, 327K init, 5513K bss, 44592K reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc08d5198   (9013 kB)
[    0.000000]       .init : 0xc08d6000 - 0xc0927e8c   ( 328 kB)
[    0.000000]       .data : 0xc0928000 - 0xc0995350   ( 437 kB)
[    0.000000]        .bss : 0xc0995350 - 0xc0ef79a8   (5514 kB)
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000011] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
[    0.000051] OMAP clocksource: timer1 at 24000000 Hz
[    0.000705] Console: colour dummy device 80x30
[    0.000751] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000758] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000764] ... MAX_LOCK_DEPTH:          48
[    0.000770] ... MAX_LOCKDEP_KEYS:        8191
[    0.000776] ... CLASSHASH_SIZE:          4096
[    0.000782] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000788] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000794] ... CHAINHASH_SIZE:          16384
[    0.000800]  memory used by lock dependency info: 3695 kB
[    0.000806]  per task-struct memory footprint: 1152 bytes
[    0.000847] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.079199] pid_max: default: 32768 minimum: 301
[    0.079416] Security Framework initialized
[    0.079493] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.079505] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.096475] CPU: Testing write buffer coherency: ok
[    0.097588] Setting up static identity map for 0x80628ce8 - 0x80628d58
[    0.101484] devtmpfs: initialized
[    0.105081] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.133556] omap_hwmod: tptc0 using broken dt data from edma
[    0.133851] omap_hwmod: tptc1 using broken dt data from edma
[    0.134132] omap_hwmod: tptc2 using broken dt data from edma
[    0.141047] omap_hwmod: debugss: _wait_target_disable failed
[    0.199476] pinctrl core: initialized pinctrl subsystem
[    0.203700] regulator-dummy: no parameters
[    0.207293] NET: Registered protocol family 16
[    0.211911] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.218313] cpuidle: using governor ladder
[    0.218336] cpuidle: using governor menu
[    0.229828] platform 49000000.edma: alias fck already exists
[    0.229861] platform 49000000.edma: alias fck already exists
[    0.229878] platform 49000000.edma: alias fck already exists
[    0.233687] OMAP GPIO hardware version 0.1
[    0.263501] No ATAGs?
[    0.263527] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.326186] bio: create slab  at 0
[    0.361117] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[    0.363290] vmmcsd_fixed: 3300 mV 
[    0.369485] vgaarb: loaded
[    0.370795] i2c-core: driver [palmas] using legacy suspend method
[    0.370808] i2c-core: driver [palmas] using legacy resume method
[    0.372233] SCSI subsystem initialized
[    0.375713] usbcore: registered new interface driver usbfs
[    0.376111] usbcore: registered new interface driver hub
[    0.376678] usbcore: registered new device driver usb
[    0.378876] omap_i2c 44e0b000.i2c: could not find pctldev for node /pinmux@44e10800/pinmux_i2c0_pins, deferring probe
[    0.378917] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral
[    0.379876] pps_core: LinuxPPS API ver. 1 registered
[    0.379890] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti 
[    0.380207] PTP clock support registered
[    0.384987] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.386934] Advanced Linux Sound Architecture Driver Initialized.
[    0.391545] Switched to clocksource timer1
[    0.532780] NET: Registered protocol family 2
[    0.534641] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.534813] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
[    0.536162] TCP: Hash tables configured (established 4096 bind 4096)
[    0.536303] TCP: reno registered
[    0.536323] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.536510] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.537450] NET: Registered protocol family 1
[    0.538691] RPC: Registered named UNIX socket transport module.
[    0.538711] RPC: Registered udp transport module.
[    0.538719] RPC: Registered tcp transport module.
[    0.538727] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.540920] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available
[    0.547400] futex hash table entries: 256 (order: 1, 11264 bytes)
[    0.704375] VFS: Disk quotas dquot_6.5.2[13]
[    0.704458] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.706080] NFS: Registering the id_resolver key type
[    0.706449] Key type id_resolver registered
[    0.706466] Key type id_legacy registered
[    0.706566] jffs2: version 2.2. (NAND) (SUMMARY)  �© 2001-2006 Red Hat, Inc.
[    0.706923] msgmni has been set to 982
[    0.711182] NET: Registered protocol family 38
[    0.711429] io scheduler noop registered
[    0.711442] io scheduler deadline registered
[    0.711483] io scheduler cfq registered (default)
[    0.714949] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[    0.725645] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.733414] omap_uart 44e09000.serial: no wakeirq for uart0
[    0.734200] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88, base_baud = 3000000) is a OMAP UART0
[    1.406657] console [ttyO0] enabled
[    1.414244] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[    1.422154] [drm] Initialized drm 1.1.0 20060810
[    1.452066] brd: module loaded
[    1.469875] loop: module loaded
[    1.473922] (hci_tty): inside hci_tty_init
[    1.479395] (hci_tty): allocated 249, 0
[    1.489631] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.505239] usbcore: registered new interface driver asix
[    1.511338] usbcore: registered new interface driver ax88179_178a
[    1.518076] usbcore: registered new interface driver cdc_ether
[    1.524613] usbcore: registered new interface driver smsc95xx
[    1.531032] usbcore: registered new interface driver net1080
[    1.537282] usbcore: registered new interface driver cdc_subset
[    1.543867] usbcore: registered new interface driver zaurus[13]
[    1.550193] usbcore: registered new interface driver cdc_ncm
[    1.557454] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.564342] ehci-pci: EHCI PCI platform driver
[    1.569496] ehci-omap: OMAP-EHCI Host Controller driver
[    1.576030] usbcore: registered new interface driver cdc_wdm
[    1.582466] usbcore: registered new interface driver usb-storage
[    1.591754] mousedev: PS/2 mouse device common for all mice
[    1.602468] i2c-core: driver [rtc-ds1307] using legacy suspend method
[    1.609205] i2c-core: driver [rtc-ds1307] using legacy resume method
[    1.617976] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[    1.625608] 44e3e000.rtc: already running
[    1.631481] i2c /dev entries driver
[    1.635561] Driver for 1-wire Dallas network protocol.
[    1.646205] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.729031] mmc0: host does not support reading read-only switch. assuming write-enable.
[    1.741024] mmc0: new high speed SDHC card at address b368
[    1.751186] mmcblk0: mmc0:b368 SD8GB 7.48 GiB 
[    1.762402]  mmcblk0: p1 p2
[    1.766131] ledtrig-cpu: registered to indicate activity on CPUs
[    1.775032] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    1.789398] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    1.803188] usbcore: registered new interface driver usbhid
[    1.809018] usbhid: USB HID core driver
[    1.814101]  remoteproc0: wkup_m3 is available
[    1.818752]  remoteproc0: Note: remoteproc is still under development and considered experimental.
[    1.828395]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[    1.839977]  remoteproc0: Direct firmware load failed with error -2
[    1.846577]  remoteproc0: Falling back to user helper
[    1.863515] oprofile: using arm/armv7
[    1.867529] nf_conntrack version 0.5.0 (7863 buckets, 31452 max)
[    1.873962] mmc1: BKOPS_EN bit is not set
[    1.879903] ip_tables: (C) 2000-2006 Netfilter Core Team
[    1.886729] TCP: cubic registered
[    1.890200] Initializing XFRM netlink socket
[    1.894876] NET: Registered protocol family 17
[    1.899582] NET: Registered protocol family 15
[    1.904761] mmc1: new high speed MMC card at address 0001
[    1.911413] Key type dns_resolver registered
[    1.916903] mmcblk1: mmc1:0001 MMC02G 1.78 GiB 
[    1.923174] cpu cpu0: of_pm_voltdm_notifier_register: Failed to get cpu0 regulator/voltdm: -517
[    1.932363] cpu cpu0: cpu0 clock notifier not ready, retry
[    1.938580] mmcblk1boot0: mmc1:0001 MMC02G partition 1 1.00 MiB
[    1.945098] mmcblk1boot1: mmc1:0001 MMC02G partition 2 1.00 MiB
[    1.951783] platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
[    1.962762]  mmcblk1: p1 p2 p3 p4
[    1.966539] PM: bootloader does not support rtc-only!
[    1.974537] ThumbEE CPU extension supported.
[    1.979050] Registering SWP/SWPB emulation handler
[    1.987906]  mmcblk1boot1: unknown partition table
[    1.997478] regulator-dummy: disabling
[    2.004335]  mmcblk1boot0: unknown partition table
[    2.012015] slave hdmi.6: could not get i2c
[    2.016519] platform hdmi.6: Driver slave requests probe deferral
[    2.024278] platform 4830e000.lcdc: Driver tilcdc requests probe deferral
[    2.043171] DCDC1: at 1500 mV 
[    2.048663] vdd_mpu: 925 <--> 1375 mV at 1325 mV 
[    2.055593] vdd_core: 925 <--> 1150 mV at 1125 mV 
[    2.062573] LDO1: at 1800 mV 
[    2.067633] LDO2: at 3300 mV 
[    2.072656] LDO3: 1800 mV 
[    2.077376] LDO4: at 3300 mV 
[    2.082803] tps65217 0-0024: TPS65217 ID 0xe version 1.2
[    2.088440] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    2.095493] cpu cpu0: of_pm_voltdm_notifier_register: Fail calculating voltage latency[950000<->1260000]:-22
[    2.245072] tilcdc 4830e000.lcdc: found TDA19988
[    2.252136] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.259059] [drm] No driver support for vblank timestamp query.
[    2.510594] Console: switching to colour frame buffer device 240x67
[    2.510721] tilcdc 4830e000.lcdc: timeout waiting for framedone
[    2.566940] tilcdc 4830e000.lcdc: fb0:  frame buffer device
[    2.573968] tilcdc 4830e000.lcdc: registered panic notifier
[    2.580631] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0
[    2.661756] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    2.668274] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[    2.681223] libphy: 4a101000.mdio: probed
[    2.685711] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[    2.699631] cpsw 4a100000.ethernet: Detected MACID = c8:a0:30:b3:d5:d7
[    2.718150] omap_rtc 44e3e000.rtc: setting system clock to 2014-10-29 15:13:44 UTC (1414595624)
[    2.776183] ALSA device list:
[    2.779379]   No soundcards found.
[    2.825345] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.834487] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    2.846624] devtmpfs: mounted
[    2.851287] Freeing unused kernel memory: 324K (c08d6000 - c0927000)
INIT: version 2.88 booting
Starting udev
[    3.603009] udevd[836]: starting version 182
[    4.320186] 47401300.usb-phy supply vcc not found, using dummy regulator
[    4.491004] 47401b00.usb-phy supply vcc not found, using dummy regulator
[    4.590836]  remoteproc0: powering up wkup_m3
[    4.625520]  remoteproc0: Booting fw image am335x-pm-firmware.elf, size 150796
[    4.759117] PM: CM3 Firmware Version = 0x189
[    4.882198]  remoteproc0: remote processor wkup_m3 is now up
[    4.903847] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or directory
bootlogd.
[    5.641639] random: nonblocking pool is initialized
[    6.188882] davinci_evm sound.10: hdmi-hifi <-> 48038000.mcasp mapping ok
[    6.854319] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver
[    6.943030] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1
[    7.014042] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    7.021211] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    7.028850] usb usb1: Product: MUSB HDRC host driver
[    7.034080] usb usb1: Manufacturer: Linux 3.14.19 musb-hcd
[    7.039826] usb usb1: SerialNumber: musb-hdrc.0.auto
[    7.188277] hub 1-0:1.0: USB hub found
[    7.208579] hub 1-0:1.0: 1 port detected
[    7.265627] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[    7.302013] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 2
[    7.332183] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    7.339318] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    7.346934] usb usb2: Product: MUSB HDRC host driver
[    7.352187] usb usb2: Manufacturer: Linux 3.14.19 musb-hcd
[    7.357955] usb usb2: SerialNumber: musb-hdrc.1.auto
[    7.395561] hub 2-0:1.0: USB hub found
[    7.409686] hub 2-0:1.0: 1 port detected
ALSA: Restoring mixer settings...
INIT: Entering runlevel: 5
Configuring network interfaces... [    8.328746] net eth0: initializing cpsw version 1.12 (0)
[    8.412395] net eth0: phy found : id is : 0x7c0f1
[    8.417460] libphy: PHY 4a101000.mdio:01 not found
[    8.422527] net eth0: phy 4a101000.mdio:01 not found on slave 1
udhcpc (v1.22.1) started
Sending discover...
Sending discover...
Sending discover...
No lease, failing
Starting system message bus: dbus.
Starting rpcbind daemon...rpcbind: cannot create socket for udp6
rpcbind: cannot create socket for tcp6
done.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting syslogd/klogd: done
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
   ...done.
Starting Telephony daemon
[   18.591008] Bluetooth: Core ver 2.18
[   18.599622] NET: Registered protocol family 31
[   18.604447] Bluetooth: HCI device and connection manager initialized
[   18.620685] Bluetooth: HCI socket layer initialized
[   18.630830] Bluetooth: L2CAP socket layer initialized
[   18.659019] Bluetooth: SCO socket layer initialized
Starting PVR
Starting Linux NFC daemon
Stopping Bootlog daemon: bootlogd.

Poky (Yocto Project Reference Distro) 1.6.1 beaglebone /dev/ttyO0

beaglebone login:

让我们运行Qt5_CinematicExperience 这是一个好玩的例子,可以测试同行以经济加速器的各种功能。 对于这个以root身份登录并运行该程序: 
Qt5_CinematicExperience -platform eglfs

需要注意的是需要加入参数“-platform eglfs”来启动应用程序,否则会报错,它设置了Qt通过pluging EGLFS使用OpenGL的

 

Qt5_CinematicExperience,应用截图

在Beaglebone Black板上使用Yocto移植Qt5_第1张图片

图1 - Qt5 Cinematics Experience

 

现在让我们运行QtSmartHome:

cd /usr/share/qtsmarthome-1.0/
./smarthome -platform eglfs

图2显示了QtSmartHome的截图:

在Beaglebone Black板上使用Yocto移植Qt5_第2张图片

图2 - Qt Smart Home

 

现在让我们运行Qt5EveryWhereDemo:

cd /usr/share/qt5everywheredemo-1.0
./QtDemo -platform eglfs

Qt5EveryWhereDemo的截图:

在Beaglebone Black板上使用Yocto移植Qt5_第3张图片

图3 - Qt5 Every Where Demo

 

后面可以自己研究一下Qt的许多例子/usr/share/qt5,千万记得一定要在加载程序时传递参数“-platform eglfs”

 

 

技巧和窍门

 

要删除闪烁的光标在屏幕上运行以下命令:

echo 0 > /sys/class/graphics/fbcon/cursor_blink

要禁用运行此命令的视频输出的关闭:

echo -e '\033[9;0]' > /dev/tty1

图形加速在高清分辨率(1280×720)有更好的表现,如果你的电视或显示器以全高清(1920×1080),您可以更改使用以下命令高清分辨率:

mount /dev/mmcblk0p1 /media/
echo "optargs=video=HDMI-A-1:1280x720@60" > /media/uEnv.txt
reboot


---------------------------------------------------------分割线--------------------------------------------------------

以上就是我照着自动翻译手动美化了的内容,我使用virtualbox虚拟机,ubuntu12.04 64位系统编译,期间需要借助lantern下载内容。

中间有一部分编译不过,印象里是alsa-util模块,处理方法是清一下状态在构建步骤时执行:

bitbake -ccleansstate ncurses alsa-utils; bitbake alsa-utils

后面还有搭建Qt creator的kit环境的教程,有空再弄吧



你可能感兴趣的:(在Beaglebone Black板上使用Yocto移植Qt5)