拿到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发行版,如:
但是如果想要运行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
# 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包管理器(它更适合于嵌入式系统,因为它不需要许多资源来工作)。
一旦下载源代码,并建立了构建系统会产生几个演示应用程序(qt5-image-demo)QT5(在写这篇文章所用的版本是Qt 5.3.2)。
cd ~/yocto
. poky-daisy/oe-init-build-env build-daisy
bitbake qt5-image-demo
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"
要在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卡上创建:
执行下面一组命令,如果使用了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
从计算机取出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 -platform eglfs
需要注意的是需要加入参数“-platform eglfs”来启动应用程序,否则会报错,它设置了Qt通过pluging EGLFS使用OpenGL的。
Qt5_CinematicExperience,应用截图
现在让我们运行QtSmartHome:
cd /usr/share/qtsmarthome-1.0/
./smarthome -platform eglfs
现在让我们运行Qt5EveryWhereDemo:
cd /usr/share/qt5everywheredemo-1.0
./QtDemo -platform eglfs
Qt5EveryWhereDemo的截图:
后面可以自己研究一下Qt的许多例子/usr/share/qt5,千万记得一定要在加载程序时传递参数“-platform eglfs”。
要删除闪烁的光标在屏幕上运行以下命令:
echo 0 > /sys/class/graphics/fbcon/cursor_blink
echo -e '\033[9;0]' > /dev/tty1
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环境的教程,有空再弄吧