Beaglebone Black + Qt5 + Yocto – Parte 1

Beaglebone Black Qt Creator
Este post faz parte da série Beaglebone Black + Qt5 + Yocto

Nesta série de artigos sobre o uso do Yocto Project veremos como criar uma distribuição Linux embarcado com o Qt5 para a Beaglebone Black usando seu acelerador gráfico SGX530. Na segunda parte veremos como gerar um SDK e integrá-lo ao QtCreator para que possamos desenvolver e compilar aplicações para o nosso target. Se você ainda não teve contato com o Yocto, sugiro que faça o tutorial do Henrique Rossi sobre Beaglebone Black + Yocto.

Preparando o Host

O Yocto Project suporta oficialmente as seguintes distribuições GNU/Linux como ambiente de construção:

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

Para que ele execute no Host alguns pacotes necessitam ser instalados.

Ubuntu e Debian:

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

Montando o Ambiente de construção

Vamos criar os diretórios e baixar os fontes necessários:

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

Note que estamos usando a versão “daisy” do Yocto Project. E baixamos também o layer meta-ti  que possui o BSP (Board Support Package) com os fontes necessários (u-boot, kernel, drivers para o acelerador gráfico, etc.) para rodar a nossa distribuição na Beaglebone Black. Além disso iremos utilizar os layers meta-qt5  (que possuem as receitas para compilar o Qt5), meta-openembedded (com aplicativos adicionais) e o meta-embarcados (com as customizações necessárias para gerarmos a imagem de testes).

Agora vamos configurar o ambiente para gerarmos os artefatos de software:

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

Edite o arquivo ~/yocto/build-daisy/conf/bblayers.conf para que fique da seguinte maneira:

# 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 \
  "

O arquivo bblayers.conf configura quais serão as camadas a serem consideradas pelo sistema de build.

Adicione as seguintes variáveis no começo do arquivo ~/yocto/build-daisy/conf/local.conf:

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

Note que configuramos nossa machine como sendo a beaglebone (serve tanto para a white como a black), mudamos o diretório de download para podermos reutilizar os fontes baixados em outros projetos e usaremos o gerenciador de pacotes ipk (ele é mais indicado para sistemas embarcados porque não exige muitos recursos para funcionar).

Gerando a imagem

Depois de baixado os fontes e ter configurado o sistema de build , vamos gerar uma imagem com diversos aplicativos de demostração (qt5-image-demo) do Qt5 (no momento de escrita desse artigo a versão do Qt utilizada é a 5.3.2).

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

Esta é a configuração de build que foi utilizada:

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"

Gravando a imagem

Este procedimento é praticamente o mesmo utilizado no tutorial do Henrique mencionado no começo deste post. 

Para a gravação das imagens no microSD card, o mesmo deve ser particionado e formatado de acordo o padrão aceito pelo placa. Para isso foi criado um script, que pode ser obtido com os seguintes comandos:

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

Insira um microSD card no computador PC ou notebook (sistema host) e descubra qual o device node criado pelo sistema operacional. Tente um dos seguintes comandos:

dmesg
sudo fdisk -l

Caso, por exemplo, o device node criado seja /dev/sdb, use o seguinte comando:

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

Assim que o processo de particionamento e formatação terminar, duas partições no microSD card são criadas:

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

Execute a “montagem” dessas duas partições no sistema de arquivos do sistema host. Caso esse faça uso da distribuição Ubuntu, basta remover e inserir novamente o dispositivo no seu conector. Dado que, por exemplo, os pontos de montagem criados sejam /media/boot e /media/rootfs, a imagem gerada anteriormente é copiada da seguinte forma para o microSD :

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

Testando a imagem

Remova o microSD do computador e insira-o na BBB, conecte-a a uma TV por um cabo HDMI, e a um mouse através do conector USB da placa. Você precisará acessar o sistema via conexão serial. Para fazer a conexão entre o HOST e a BBB siga os passos da seção “Configuring Serial Communication” do tutorial da Timesys.

NOTA:

Se você tiver instalado algum outro sistema operacional no eMMC da BBB energize a placa pressionando a switch que fica próxima ao slot do microSD. Isso fará com que o processador busque o MLO e u-boot que estão contidos no microSD ao invés do eMMC.

Abaixo segue o log da serial depois do boot do sistema: 

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<code>
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:   <ethaddr> 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 <bio-0> 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 <giometti@linux.it>
[    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:

Vamos rodar o Qt5 Cinematic Experience que é um exemplo bastante interessante que visa explorar diversos recursos usando aceleração gráfica por hardware. Para isso faça o login como root e execute o programa: 

Qt5_CinematicExperience -platform eglfs

Note que subimos o aplicativo com a opção “-platform eglfs”, isso configura o Qt para utilizar o OpenGL através do pluging EGLFS.

A figura 1 mostra um screenshot do Qt5 Cinematic Experience.

Qt5 Cinematics Experience
Figura 1 – Qt5 Cinematics Experience

Agora vamos rodar o exemplo do QtSmartHome:

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

A figura 2 mostra um screenshot do QtSmartHome:

Figura 2 - Qt Smart Home
Figura 2 – Qt Smart Home

Agora vamos rodar o exemplo Qt5EveryWhereDemo:

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

A figura 3 mostra um screenshot do Qt5EveryWhereDemo:

Figura 3 - Qt5 Every Where Demo
Figura 3 – Qt5 Every Where Demo

Aproveite para explorar os diversos exemplos presentes no caminho /usr/share/qt5 e lembre-se de sempre passar a opção “-platform eglfs” quando carregar os programas.

Dicas e Truques

Para remover o cursor piscante na tela rode o comando:

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

Para desabilitar o desligamento da saída de vídeo rode o comando:

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

A aceleração gráfica tem uma melhor performance na resolução HD (1280×720) e caso sua TV ou monitor seja FULL-HD (1920×1080) você pode alterar a resolução para HD com os seguintes comandos:

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

O que vem por aí

Na próxima parte veremos como gerar uma toolchain com o Qt5 para ser integrada a IDE QtCreator para desenvolvimento e compilação das aplicações Qt.

Saiba mais

Beaglebone Black + Qt Embedded + Yocto – parte 1

Desvendando Yocto Project – Primeiros passos

BeagleBone Black + Yocto

Referências

https://beagleboard.org/Products/BeagleBone%20Black
https://en.wikipedia.org/wiki/PowerVR#Series_5
https://qt-project.org/wiki/Category:Tools::QtCreator
https://qt-project.org/doc/qt-4.8/qt-embedded-linux.html
https://en.wikipedia.org/wiki/Graphics_processing_unit
https://blog.qt.digia.com/blog/2011/05/09/thoughts-about-qt-5/
https://elinux.org/Beagleboard:BeagleBone_Black_Serial
https://linuxlink.timesys.com/docs/gsg/beaglebone_black

Beaglebone Black + Qt5 + Yocto

Beaglebone Black + Qt5 + Yocto – Parte 2
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Inscrever-se
Notificar de
150 Comentários
mais recentes
mais antigos Mais votado
Feedbacks embutidos
Ver todos os comentários
Premjith
Premjith
29/07/2019 02:33

Is there any way to do this build with 4.14 kernel, this build is bind to 3.14 kernel ? Thanks

Gabriel Habib
Gabriel Habib
27/10/2015 11:51

Sueiro, eu gostaria de entender um pouco mais sobre a questao do Yocto, falaste sobre conectar um mause na USB da mesma, fiquei me perguntando como eu faria para por exemplo, adicionar um touch screen via USB. Em qual parte do cozimento eu defino isso?

Diego Sueiro
Diego Sueiro
Responder para  Gabriel Habib
28/10/2015 08:03

Gabriel,

Este tipo de característica é manipulada pelo Yocto através da variável MACHINE_FEATURES:

https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#ref-features-machine

Gabriel Habib
Gabriel Habib
14/10/2015 16:12

Muitos Warnings pos o bitbake 🙁

WARNING: Failed to fetch URL https://zlib.net/pigz/pigz-2.3.1.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL ftp://ftp.astron.com/pub/file/file-5.16.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL ftp://ftp.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.5.29.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL ftp://sourceware.org/pub/libffi/libffi-3.0.13.tar.gz, attempting MIRRORS if available

Sera que existe algo mais atualizado que esse tutorial?

obrigado!!!

Diego Sueiro
Diego Sueiro
Responder para  Gabriel Habib
14/10/2015 16:18

Não que eu saiba.
Recebeu algum erro?

Gabriel Habib
Gabriel Habib
Responder para  Diego Sueiro
14/10/2015 16:37

Diego Sueiro, muito obrigado pela atencao, nao sabia que voces eram tao atenciosos dessa maneira.

Bem, ate o momento nenhum erro, porem estou achando estranho que o processo esteja demorando tanto, eu rodei o comando bitbake e ate o momento ja foram 8 horas ( 760 de 2581 ), fiquei imaginando que poderia ser por contas desses warnings.

Diego Sueiro
Diego Sueiro
Responder para  Gabriel Habib
14/10/2015 17:12

Olá Gabriel,

A primeira vez que você roda o construção da imagem demora um pouco mesmo.
O Yocto vai baixar uma infinidade de código e compilar as ferramentas do host.
Dependendo da configuração da tua máquina esse processo será bastante lento.

Gabriel Habib
Gabriel Habib
Responder para  Diego Sueiro
14/10/2015 17:19

Obrigado! vou ficar no aguardo!

erakis
erakis
07/04/2015 16:20

Hi Diego I tried following your instructions but using poky dizzy version and Qt 5.3.2 but I’m getting a compile error. Here is my configuration : https://pastebin.com/jnvKJCDD And here is the compilation error : https://pastebin.com/i3np03Ey The problem seem to an internal compiler error while compiling QtTools module recpipes. Could it be the internal compiler of Yocto toolchain being not enough recent ? Also, you mention that using Yocto Dizzy 1.7 will not correctly handle 3d hardware on Beaglebone, does it mean we have to wait for meta-ti release their dizzy version ? Thank for sharing your work with us, it… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  erakis
08/04/2015 06:33

Martin, Note that I used the dizzy branch for meta-qt5 and daisy branch for the others. Unfortunately I don’t have enough time now to build in the same configuration as you. You can try ti use the same configuration as me and try to reproduce the issue, but do this delete your “tmp” folder. You can also try to send an e-mail to openembedded-devel mailing list (https://lists.openembedded.org/mailman/listinfo/openembedded-devel) asking for some help on this. Where did I mention that using Yocto Dizzy 1.7 will not correctly handle 3d hardware on Beaglebone? Actually I didn’t tested it yet. Sorry for not helping… Leia mais »

erakis
erakis
Responder para  Diego Sueiro
08/04/2015 12:29

Hi Diego, First of all thank for you quick response. I have sent detail of the problem to the Yocto and OpenEmbedded list. Hope they will find what wrong. Maybe I misread about Hardware Acceleration, I’m not talking Spanish so I translated your instructions to English that is my second language. I’m talking french. I though I was read that using the Dizzy version was using a kernel that is not handling correctly all the beaglebone hardware. Do we still need to use your meta-bbb if we use meta-yocoto-bsp ? Is Dizzy offering GPU hardware acceleration (qt over elgfs ?)… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  erakis
08/04/2015 12:41

Martin,

The hardware graphics acceleration comes from meta-ti, so you have to it instead of meta-yocto-bsp (which doesn’t provides the hw accel).

I used Daisy because Dizzy was not available when I wrote the article. But the main differences are related to the package versions.

The meta-bbb is needed to correct set libgles libraries and configure qt-base package.

Did you tried to use all layers on daisy branch and only meta-qt5 on dizzy branch?

erakis
erakis
Responder para  Diego Sueiro
08/04/2015 12:56

No I did not tried, but I will now.

But will I applied some changes on your meta-embarcados ?
Will I have to rename 5.3.% to 5.4.% on this file (meta-embarcados/meta-bbb/recipes-qt/qt5/qtbase_5.3.%.bbappend) ?

Best regards,

Diego Sueiro
Diego Sueiro
Responder para  erakis
08/04/2015 13:00

Martin,

Since meta-qt5 on dizzy branch uses qt-5.3.2 you don’t have to change the filename.

erakis
erakis
Responder para  Diego Sueiro
08/04/2015 13:26

Oups sorry, I was talking abou the “otavio/master” branch of meta-qt5 ?

Because I would like to use Qt5.4 or newest if possible.

Diego Sueiro
Diego Sueiro
Responder para  erakis
08/04/2015 13:37

In this case you will have to rename this recipe.

erakis
erakis
Responder para  Diego Sueiro
08/04/2015 17:04

I tried with your advise —————————————————————– Build Configuration: BB_VERSION = “1.22.0” BUILD_SYS = “x86_64-linux” NATIVELSBSTRING = “Ubuntu-14.10” 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 meta-yocto = “daisy:02e603e48c6e0b0492f596890adadf6590fa692c” meta-oe = “daisy:d3d14d3fcca7fcde362cf0b31411dc4eea6d20aa” meta-ti = “daisy:d63fd7691e99f9d8dfb9704f634a970b8e44dffd” meta-qt5 = “otavio/master:d02ea33262489f6892db857f9674d14a08f7ca54” meta-embarcados meta-bbb = “daisy:60ea816afabce0ab85a974a6c8b60683ccdab4bc” ——————————————————————– But I get error while fetching Qt from (qt.gitorious.org/qt/qt3d) —————————————————– ERROR: Function failed: Fetcher failure for URL: ‘git://qt.gitorious.org/qt/qt3d.git;branch=dev’. Unable to fetch URL from any source. ERROR: Logfile of failure stored in: /home/test/poky/beaglebone/tmp/work/cortexa8t2hf-vfp-neon-poky-linux-gnueabi/qt3d/5.4.0+gitAUTOINC+8a9723d742-r0/temp/log.do_fetch.27984 ERROR: Task 284 (/home/test/poky/beaglebone/../meta-qt5/recipes-qt/qt5/qt3d_git.bb, do_fetch) failed with exit code ‘1’… Leia mais »

erakis
erakis
Responder para  erakis
08/04/2015 23:20

I finally succeed with this configuration :

Build Configuration:
BB_VERSION = “1.22.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “Ubuntu-14.10”
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
meta-yocto = “daisy:02e603e48c6e0b0492f596890adadf6590fa692c”
meta-oe = “daisy:d3d14d3fcca7fcde362cf0b31411dc4eea6d20aa”
meta-ti = “daisy:3a95559c124d3ce8c076b3fae5859435977d1ac2”
meta-qt5 = “master:87235825459d376bf4537c9523eb2496e15893aa”
meta-embarcados
meta-bbb = “daisy:60ea816afabce0ab85a974a6c8b60683ccdab4bc”.

But no success with yocto dizzy 🙁 Hope you will have some time to test it. If you find some time to test it, please post me a message here.

Best regards,

Diego Sueiro
Diego Sueiro
Responder para  erakis
10/04/2015 08:56

Martin,

Why are you using otavio/master branch for meta-qt5? I realized that it is not up to date with Qt repo source URL. Please use master branch instead.

I’m going to investigate the libgles error.

erakis
erakis
Responder para  Diego Sueiro
13/04/2015 09:27

Hi Diego, I realize too so I decide to use the master branch. I though I have to use the same branch as yocto (daisy) to get less trouble. But I got a successful build using the master branch. Now I’m having another problem with the LCD (Topway : LMT070DICFWD). I’m using your qt5-image-demo layer. I used the dtb-rebuilder of Robert C Nelson (https://github.com/RobertCNelson/dtb-rebuilder/tree/3.14-ti), build the file (am335x-bone-4dcape-70t.dts) to dtb. I have copy this file to the /boot partition and then add the following to the uEnv.txt (dtb=am335x-bone-4dcape-70t.dtb). When Beaglebone booting I notice this error in console tilcdc 4830e000.lcdc: No… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  erakis
13/04/2015 09:53

Martin,

The TI’s kernel doesn’t have the “capemgr” and “bone-pinmux-helper” support, and I don’t think that this dts is going to work.

You can try to create a kernel recipe for Robert’s kernel and use it instead of TI’s kernel, or you can use am335x-evmsk.dts as a reference to create the am335x-bone-4dcape-70t.dts :
https://git.ti.com/ti-linux-kernel/ti-linux-kernel/blobs/ti-linux-3.14.y/arch/arm/boot/dts/am335x-evmsk.dts

erakis
erakis
Responder para  Diego Sueiro
13/04/2015 11:15

I guess that cape manager is not implemented in the meta-ti as it is specific too BEAGLEBONE ? Maybe I misread but DTS is only required with kernel > 3.10 ? The meta-ti kernel is 3.14 so it is not supposed to handle the dts ? Is the cape manager is only available to kernel <=3.8 ? Anyway I don't think I will need the cape manager. Unless you tell me that I NEED the cape manager to get my LCD working ? If there no need of the cape manager, why my LCD is not working ? It is… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  erakis
13/04/2015 11:26

Martin,

The capemgr is implemented by beagleboard community and that’s why it is not presented on the TI’s kernel. The same applies to bone-pinmux-helper.

I think that on this case the problem is related to the bone-pinmux-helper. If you look at the dtsi files included on the am335x-bone-4dcape-70t.dts it invokes the pinmux-helper and since it’s not implemented on TI’s kernel, its not going to work.

All the ARM kernels above 3.8 suppose to work only with device-tree implementation.

you can use am335x-evmsk.dts as a reference to create the am335x-bone-4dcape-70t.dts :
https://git.ti.com/ti-linux-kernel/ti-linux-kernel/blobs/ti-linux-3.14.y/arch/arm/boot/dts/am335x-evmsk.dts

erakis
erakis
Responder para  Diego Sueiro
13/04/2015 12:26

Diego, First thank you for you patience. I’ll come to understand… I took a look to the Robert Nelson config (https://github.com/beagleboard/linux/blob/3.14/arch/arm/configs/bb.org_defconfig) and then I notice this flag : CONFIG_BEAGLEBONE_PINMUX_HELPER=y If I well understand, the uBoot is supporting reading the DTB file but the ti kernel can’t handle it. Is it right ? Some other question to help me understand : 1) Robert C Nelson kernel is a fork of the meta-ti kernel ? 2) But he add patch and different kernel configuration to support more specific uses of the beaglebone, right ? As probably the cape manager (pixmux, dts). 3)… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  erakis
13/04/2015 13:28

Martin, Checkout my answers bellow: If I well understand, the uBoot is supporting reading the DTB file but the ti kernel can’t handle it. Is it right ? Diego: No, both kernel (from Robert and TI) and u-boot supports the DTB. As I told you before all the ARM kernels above 3.8 suppose to work only with device-tree implementation. 1) Robert C Nelson kernel is a fork of the meta-ti kernel ? Diego: I do think so. 2) But he add patch and different kernel configuration to support more specific uses of the beaglebone, right ? As probably the cape… Leia mais »

erakis
erakis
Responder para  Diego Sueiro
13/04/2015 15:19

Diego, Nice, now I understand. So I have 2 options : The first one is keeping the yocto + meta-ti and trying to find how works the DTS to get my LCD working without pixmux (based on am335x-evmsk.dts from TI) ? I think that the road will be really long because I really don’t understand much about the device tree. The am335x-evmsk.dts is a based configuration ? I need to add HDMI + LCD cape functionality according the schematic of the beaglebone black ? The second one could be using yocto + meta-ti + applying patch from Robert C Nelson… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  erakis
14/04/2015 06:30

Martin, The dts to get LCD working is not to difficult to implement. It’s just a matter of inserting and adjusting the “panel” parameter. This values you can copy from Robert’s dts. There is a lots of materials explaining the device tree and how to use it. Yes, you can apply the Robert’s patches to get the bone-pinmux-helper on TI’s kernel (but I don’t if it is going to be applied cleanly), or you can create a kernel recipe to build the Robert’s kernel. I didn’t looked at the code, but I think that the bone-pinumux-helper is on the top… Leia mais »

erakis
erakis
Responder para  Diego Sueiro
14/04/2015 14:59

Hi Diego, Thank you again for supporting me, it’s very nice. Ok I will try to adapt the DTS. What I have learn from now is that I have to based my DTS from the TI starter kit (https://git.ti.com/ti-linux-kernel/ti-linux-kernel/blobs/ti-linux-3.14.y/arch/arm/boot/dts/am335x-evmsk.dts) Now when looking to Robert C Nelson dts, I saw the following files that could help me : https://github.com/RobertCNelson/dtb-rebuilder/blob/3.14-ti/src/arm/am335x-evmsk.dts (Starter kit) https://github.com/RobertCNelson/dtb-rebuilder/blob/3.14-ti/src/arm/am335x-bone-lcd7-01-00a3.dtsi (Recipes to get LCD + touchscreen) Now each part : https://github.com/RobertCNelson/dtb-rebuilder/blob/3.14-ti/src/arm/am335x-bone-bl-gpio1-18.dtsi (Backlight) https://github.com/RobertCNelson/dtb-rebuilder/blob/3.14-ti/src/arm/am335x-bone-panel-800×480.dtsi (LCD) https://github.com/RobertCNelson/dtb-rebuilder/blob/3.14-ti/src/arm/am335x-bone-ti-tscadc-4-wire.dtsi (TouchScreen) What I have to do is to append or merge this to my am335x-evmsk.dts ? I produce my final DTS by helping me… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  erakis
14/04/2015 15:46

Martin,

Glad to hear that you got it working.

To include your custom dts you will have to create a bbappend file for the kernel recipe (for example: meta-embarcados/meta-bbb/recipes-kernel/linux/linux-ti-staging_3.14.bbappend). With the following content:
https://pastebin.com/swJAQNMY

Put your am335-custom-dts.dts file on the following path: meta-embarcados/meta-bbb/recipes-kernel/linux/linux-ti-staging/am335-custom-dts.dts

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
20/04/2015 22:44

HI Diego,
I am following your tutorial to get “qt5-image-demo” working on TI AM335x EVM Kit.
I have added a kernel recipe to use am335x-evm.dts file.
Wanted to know whether I need a recipe for u-boot or not ?
If yes, then how to do so ?
Also, if I want to use latest meta-qt5 (master) instead of dizzy, what shall I change in my qt5 recipe ?
I am new to Yocto so any explanation to above questions will be highly appreciated.
Thanks

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
21/04/2015 06:46

Ankur,

You don’t have to create kernel, u-boot or other recipes to build to am335x-evm. You just have to set your machine in the local.conf file. Make sure that you have:
MACHINE = “am335x-evm”

If you want to use meta-qt5 in “master” branch I suggest you to use all the other branches on “master” too, this way you are going to minimize software compatibility problems.
Note that meta-embarcados is only developed to work with “daisy” and “dizzy” branch of meta-qt5.

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
21/04/2015 07:24

Hi Diego,

Thanks for your response.
If I don’t use meta-embarcados, will I still get graphic acceleration ?

As you said in comments above, meta-bbb is needed for libgles and qt5

Ankur Tyagi
Ankur Tyagi
Responder para  Ankur Tyagi
21/04/2015 08:09

Diego,

I added PACKAGECONFIG_append_pn-qtbase = ” tslib” in my local.conf but during device booting stage, it doesn’t ask for TS calibration. I also cannot find ts_calibrate in rootfs

How to enable that ?

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
21/04/2015 09:48

Ankur,

To get ts_calibrate installed add the following on your IMAGE_INSTALL variable:
tslib-calibrate

I don’t kown if it’s going to be launched at the first boot. You can take this recipe as reference to achieve this:
https://arago-project.org/git/?p=meta-arago.git;a=blob;f=meta-arago-extras/recipes-graphics/tslib/ts-calibrate-init_1.0.bb;hb=master

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
21/04/2015 10:22

Hi Diego,

Thanks for your response.

I have now done following changes and re-launched above steps:
1) MACHINE = “am335x-evm”
2) created am335x-evm.conf in meta-bbb

bitbake qt5-image-demo on going, lets wait for results 🙂

Ankur Tyagi
Ankur Tyagi
Responder para  Ankur Tyagi
21/04/2015 11:28

It compiled and created a package.

But when I boot my Am335x Kit and try to run qt5 smart home demo, it fails with error “libGLESv2.so No such file or directory”

I missed bundling of these in file system. Can you please help ?

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
21/04/2015 11:33

Did you included “libgles-omap3” and “omap3-sgx-modules” packages on your IMAGE_INSTALL?

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
21/04/2015 11:43

hmm, I checked that in file meta-embarcados/meta-bbb/recipes-qt/packagegroups/packagegroup-qt5.bbappend, they are added only for beaglebone Machine. Now I have created another entry for am335x-evm Machine.

Let’ see how it goes.

thanks

Ankur Tyagi
Ankur Tyagi
Responder para  Ankur Tyagi
21/04/2015 12:08

It’s working with above change.

I added tslib-calibrate in IMAGE_INSTALL inside qt5-image-demo.bb but still no success.

What else can I do ?

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
21/04/2015 12:15

The ts_calibrate binary were installed?
Did you tried to create a recipe for the tool to be launched on the first boot as I told you before?

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
21/04/2015 12:18

no ts_calibrate binary on target

Ankur Tyagi
Ankur Tyagi
Responder para  Ankur Tyagi
21/04/2015 20:48

Hi Diego,

I made a clean build with all above changes intact i.e

1) MACHINE = am335x-evm
2) Added entry for am335x-evm MACHINE in qt5 packagegroup recipe
3) created am335x-evm.conf file
4) tslib-calibrate added in IMAGE_INSTALL in qt5-image-demo.bb

With this, I am able to build image for AM335x-EVM Kit.

Once the card bootsup, export following:

export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=”rotate=180″
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/touchscreen0
export TSLIB_PLUGINDIR=/usr/lib/ts

And demo runs smooth 🙂

Many thanks for your support, really appreciate it.

Now I am trying to build meta-qt “master” and might bug you again 🙂
cheers

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
21/04/2015 21:27

Ankur,

Thanks for the feedback. Glad to know that you managed to get it working.

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
12/05/2015 18:45

Hi Diego,

Above steps doesn’t include qtwebkit. How can I include qtwebkit ?

thanks
Ankur

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
12/05/2015 19:07

Ankur,

On the file “meta-embarcados / recipes-core / images / qt5-image-demo.bb” put “qtwebkit” in IMAGE_INSTALL variable.

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
12/05/2015 22:58

Thanks Diego, I want to use latest qt-5.4, so I am using meta-qt5 “master”. When I issue bitbake, I get this error : ankur@GGL-PC1210:~/poky-yocto/build-daisy$ bitbake qt5-image-demo NOTE: Error during finalise of /home/ankur/poky-yocto/build-daisy/../poky-daisy/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb | ETA: 00:01:09 ERROR: ExpansionError during parsing /home/ankur/poky-yocto/build-daisy/../poky-daisy/meta-qt5/recipes-qt/qt5/qtmultimedia_git.bb: Failure expanding variable qmake5_base_do_configure: ExpansionError: Failure expanding variable EXTRA_QMAKEVARS_PRE, expression was ${@bb.utils.contains(‘PACKAGECONFIG’, ‘alsa’, ”, ‘CONFIG+=done_config_alsa’, d)} ${@bb.utils.contains(‘PACKAGECONFIG’, ‘pulseaudio’, ”, ‘CONFIG+=done_config_pulseaudio’, d)} ${@bb.utils.contains(‘PACKAGECONFIG’, ‘openal’, ”, ‘CONFIG+=done_config_openal’, d)} ${@bb.utils.contains(‘PACKAGECONFIG’, ‘gstreamer’, ‘GST_VERSION=1.0’, ”, d)} ${@bb.utils.contains(‘PACKAGECONFIG’, ‘gstreamer010’, ‘GST_VERSION=0.10’, ”, d)} ${@bb.utils.contains_any(‘PACKAGECONFIG’, ‘gstreamer gstreamer010’, ”, ‘CONFIG+=done_config_gstreamer’, d)} which triggered exception AttributeError: ‘module’ object has no attribute ‘contains_any’ I then started to use bitbake “master” branch,… Leia mais »

Ankur Tyagi
Ankur Tyagi
Responder para  Ankur Tyagi
13/05/2015 02:45

I reverted back to meta-qt “dizzy” but I am getting this error : ankur@GGL-PC1210:~/poky-yocto/build-daisy$ bitbake -k qt5-image-demo Parsing recipes: 100% |######################################################################################################################################################################| ETA: 00:00:00 Parsing of 1515 .bb files complete (0 cached, 1515 parsed). 1941 targets, 198 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies NOTE: multiple providers are available for jpeg (jpeg, libjpeg-turbo) NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg ERROR: Nothing PROVIDES ‘ruby-native’ (but /home/ankur/poky-yocto/build-daisy/../poky-daisy/meta-qt5/recipes-qt/qt5/qtwebkit_5.3.2.bb DEPENDS on or otherwise requires it). Close matches: db-native bc-native byacc-native NOTE: Runtime target ‘qtwebkit’ is unbuildable, removing… Missing or unbuildable dependency chain was: [‘qtwebkit’, ‘ruby-native’] ERROR: Nothing… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
13/05/2015 06:39

Ankur,

Mixing layers in different branches is not a good practice and can be error prone, as you are having now.

Try to use meta-embarcados in “daisy” branch and all the others in “fido” and see what happens.

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
13/05/2015 07:56

Hi Diego,
Sure, will try all others in “fido”.
What about error coming when I included “qtwidget” ? As stated in comment below.
thanks

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
13/05/2015 08:06

Ankur,

It seems to be related to Qt multimedia, and I didn’t had time to investigate this.
Maybe using fido branch this error will not be raised

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
14/05/2015 01:05

Hi Diego,

I followed these two procedures with no success so far

1) kept all branches as “daisy” and add “qtwebkit” in IMAGE_INSTALL variable. This gave error qtwebkit-dev not found
2) update all to “fido” , meta-qt to “master” and kept meta-embarcados and meta-ti in “diasy” (no fido for meta-ti) and this gave me error :

Parsing recipes: 100% |#############################################################| Time: 00:01:28
Parsing of 1677 .bb files complete (0 cached, 1677 parsed). 2155 targets, 356 skipped, 0 masked, 0 errors.
ERROR: No recipes available for:
/home/ankur/poky-yocto/build-fido/../poky-fido/meta-embarcados/meta-bbb/recipes-qt/qt5/qtbase_5.3.%.bbappend

Summary: There was 1 ERROR message shown, returning a non-zero exit code.
ankur@GGL-PC1210:~/poky-yocto/build-fido$

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
14/05/2015 08:20

Ankur,

For the second scenario, please rename the recipe “meta-embarcados/meta-bbb/recipes-qt/qt5/qtbase_5.3.%.bbappend” to
“meta-embarcados/meta-bbb/recipes-qt/qt5/qtbase_%.bbappend”

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
14/05/2015 18:56

After renaming, i get these errors : ankur@GGL-PC1210:~/poky-yocto/build-fido$ mv /home/ankur/poky-yocto/build-fido/../poky-fido/meta-embarcados/meta-bbb/recipes-qt/qt5/qtbase_5.3.%.bbappend /home/ankur/poky-yocto/build-fido/../poky-fido/meta-embarcados/meta-bbb/recipes-qt/qt5/qtbase_%.bbappend ankur@GGL-PC1210:~/poky-yocto/build-fido$ vim ../changes/0001-am335x-evm-changes.patch ankur@GGL-PC1210:~/poky-yocto/build-fido$ bitbake -k qt5-image-demo Loading cache: 100% |########################################################################################################################################################################| ETA: 00:00:00 Loaded 2156 entries from dependency cache. Parsing recipes: 100% |######################################################################################################################################################################| Time: 00:00:00 Parsing of 1677 .bb files complete (1675 cached, 2 parsed). 2155 targets, 356 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies NOTE: multiple providers are available for jpeg (jpeg, libjpeg-turbo) NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg ERROR: Nothing PROVIDES ‘ruby-native’ (but /home/ankur/poky-yocto/build-fido/../poky-fido/meta-qt5/recipes-qt/qt5/qtwebkit_5.4.1.bb DEPENDS on or otherwise requires it). Close matches: db-native bc-native byacc-native NOTE: Runtime target ‘qtwebkit’… Leia mais »

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
14/05/2015 20:10
Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
18/05/2015 02:04

Hi Diego, So finally I have this configuration: Build Configuration: BB_VERSION = “1.26.0” BUILD_SYS = “i686-linux” NATIVELSBSTRING = “Ubuntu-14.04” TARGET_SYS = “arm-poky-linux-gnueabi” MACHINE = “am335x-evm” DISTRO = “poky” DISTRO_VERSION = “1.8” TUNE_FEATURES = “arm armv7a vfp thumb neon callconvention-hard cortexa8” TARGET_FPU = “vfp-neon” meta-embarcados meta-bbb = “daisy:d8e5d8f728a51db44750d4f43d66d51c89dd8a20” meta-ti = “daisy:efc3f4a7687c0ba959dca2b75a99ba8efac94507” meta-qt5 = “master:bb20ed60fc596098940f18bd2418a8bdc866bec3” meta-ruby meta-oe = “fido:5b0305d9efa4b5692cd942586fb7aa92dba42d59” meta meta-yocto = “fido:e2e522a6ede3165f63ad81c72f8ac6d3903f8296” I added – meta-ruby in bblayers.conf – qtwebkit, qtwebkit-examples in IMAGE_INSTALL When I issue bitbake qt5-image-demo, during last step i get this error : Configuring qt3d-examples. Configuring packagegroup-qt5-base. Collected errors: * opkg_install_cmd: Cannot install package qtwebkit-examples. ERROR: Function failed:… Leia mais »

Ankur Tyagi
Ankur Tyagi
Responder para  Ankur Tyagi
18/05/2015 02:36

Diego,

I figured out what the problem was.

its qtwebit-examples-examples, not qtwebkit-examples.

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
21/04/2015 09:24

Ankur,

You can try to use meta-bbb on daisy branch and see if it works.

But basically, meta-bbb set some packages on beaglebone.conf:
PREFERRED_VERSION_libgles-omap3 = “5.01.01.01”
PREFERRED_PROVIDER_virtual/egl = “libgles-omap3”
PREFERRED_PROVIDER_virtual/libgles1 = “libgles-omap3”
PREFERRED_PROVIDER_virtual/libgles2 = “libgles-omap3”

And forces the installations of “libgles-omap3” and “omap3-sgx-modules” packages via meta-embarcados/meta-bbb/recipes-qt/packagegroups/packagegroup-qt5.bbappend.

Ankur Tyagi
Ankur Tyagi
Responder para  Diego Sueiro
21/04/2015 09:34

Hi Diego,

In case if I set MACHINE = “am335x-evm”, then I doubt beaglebone.conf will be used. Correct ?

So even if I stay on “daisy” branch, unless I use MACHINE = “beaglebone”, meta-bbb won’t work.

Is my understanding correct ?

If yes, then I have to create am335x-evm.conf to get egl packages for it.

Diego Sueiro
Diego Sueiro
Responder para  Ankur Tyagi
21/04/2015 09:41

Ankur,

Yes you are right. In this case you have to create a am335x-evm.conf file.
Use meta-ti/tree/conf/machine/am335x-evm.conf as a reference.

Qasem
Qasem
21/03/2015 18:34

hi Thanks for this tutorial.

i m from iran , We can not do these steps

Because ,TI site (git://git.yoctoproject.org/meta-ti) Blocked ip my counter and we can’t download driver for yocto project

plzzzzzzzzz If possible for you ,share this files

qt5-image-demo (beaglebone Black and Raspberry PI B )

my email : Qasemt@gmail.com

mercccccccccccccccccccc

Diego Sueiro
Diego Sueiro
Responder para  Qasem
22/03/2015 06:40

Qasem,

This repo (meta-ti) is hosted by Yocto Project, not TI. You could download this repository?

What driver are you talking about?
You can clone meta-ti from here too: git://arago-project.org/git/meta-ti.git

Regards

Qasem
Qasem
Responder para  Diego Sueiro
22/03/2015 13:30

Hi
When yocto project is downloading Graphics_SDK_setuplinux_hardfp_5_01_01_01.bin the 403 forbidden is thrown in do_fetch state indeed. It would be appreciated if you could share beaglebone black and raspberry pi B images via dropbox or google drive.
Unfortunatly we have many access limitation to the resources which be hosted in usa.

Regards

Diego Sueiro
Diego Sueiro
Responder para  Qasem
23/03/2015 08:49
Ramesh Devaraj
Ramesh Devaraj
24/02/2015 09:06

Hi Diego,

I came across this thread in yocto mailing list https://lists.yoctoproject.org/pipermail/yocto/2014-April/019335.html which is the exact issue i am getting while running weston from bbb (yocto based). And I see that no solution was given so far. How did you fix this ?

Thanks,
Ramesh

Diego Sueiro
Diego Sueiro
Responder para  Ramesh Devaraj
24/02/2015 10:02

Ramesh,

No didn’t managed to get this working and I did not investigate a lot.

Sorry.

Grangsang Sotyaramadhani
Grangsang Sotyaramadhani
11/02/2015 02:31

Dear Diego, I am from Indonesia. I am interested to your project in building qt5 image for Pi. I have followed all the steps above and success. Now I am trying to build qt5 image for “a13 allwinner/olinuxino a13” using meta-sunxi and everything got failed. Could you help me to solve my problem?

Thank you
Best regards.

Diego Sueiro
Diego Sueiro
Responder para  Grangsang Sotyaramadhani
11/02/2015 05:53

Hi Grangsang,

What kind of errors?
Send me your bblayers.conf and local.conf files (use pastebin).

Grangsang Sotyaramadhani
Grangsang Sotyaramadhani
Responder para  Diego Sueiro
11/02/2015 06:47

Hi Diego,

Thank you for your reply.

here are bblayers.conf and local.conf

https://pastebin.com/raw.php?i=NssYfg8Z

https://pastebin.com/FLYHRnTw

please help me.

Best regards.

Diego Sueiro
Diego Sueiro
Responder para  Grangsang Sotyaramadhani
11/02/2015 07:25

Please,

Send me the erros messages too. (via pastebin)

Grangsang Sotyaramadhani
Grangsang Sotyaramadhani
Responder para  Diego Sueiro
11/02/2015 07:42

Sorry Diego, I forget to send you the error log.

Here is the last error I got after I try to force adding “vc-graphics”

https://pastebin.com/raw.php?i=cRmLm6H9

I don’t really sure what is actually wrong. I think I am wrong for forcing your “meta-rpi” to be used with meta sunxi.

Grangsang Sotyaramadhani
Grangsang Sotyaramadhani
Responder para  Diego Sueiro
11/02/2015 06:52

It seems that the error caused by the eglfs

Grangsang Sotyaramadhani
Grangsang Sotyaramadhani
Responder para  Diego Sueiro
11/02/2015 07:06

Here are my another configuration that also give an error output:

https://pastebin.com/raw.php?i=VHDncvvj

https://pastebin.com/raw.php?i=EDv9FX1r

once again, thank you so much.

Ramesh Devaraj
Ramesh Devaraj
20/01/2015 06:12

Olá Diego,

quando eu emitir “Qt5_CinematicExperience -platform eglfs” Eu estou recebendo mensagem como

“Could not initialize egl display
Aborted ”

Não tenho a certeza por que, também eu estou usando uma TV HDMI como um display.

– Ramesh

Diego Sueiro
Diego Sueiro
Responder para  Ramesh Devaraj
20/01/2015 06:17

Ramesh,

Please make sure that your local repo of meta-ti is updated.
If it’s already updated, please send me the result of “lsmod” command.

Ramesh Devaraj
Ramesh Devaraj
Responder para  Diego Sueiro
20/01/2015 08:34

Hello Deigo,

I tried to checkout latest version of the sources and build fresh, but now i am seeing this error while doing ‘bitbake -k qt5-image-demo’
“ERROR: Nothing RPROVIDES ‘packagegroup-qt5’
ERROR: No eligible RPROVIDERs exist for ‘packagegroup-qt5′”

Diego Sueiro
Diego Sueiro
Responder para  Ramesh Devaraj
21/01/2015 11:19

Ramesh,

All repos are on daisy branch? Except meta-qt5 that should be at dizzy branch.

Please send me your Build Configuration info which is printed out when you run bitbake command.

Xultz
Xultz
09/01/2015 18:31

Olá, eu segui o tutorial, gravei o cartão SSD, e ao dar boot na placa, ele informa o seguinte erro:
File not found /boot/uImage
Olhando na partição rootfs do cartão, não tem o arquivo uImage, somente um chamado zImage. Eu errei alguma coisa na configuração? Ou devo simplesmente renomear o arquivo?

Obrigado

Diego Sueiro
Diego Sueiro
Responder para  Xultz
09/01/2015 18:52

Xultz,

Siga as instruções descritas na nota da seção Testando a imagem.

Xultz
Xultz
Responder para  Diego Sueiro
09/01/2015 21:59

Olá, consegui resolver o problema seguindo as instruções do tutorial do Henrique. Ao copiar o arquivo uEnv.txt, o mesmo instrui o u-boot a carregar um arquivo do tipo zImage. Porém ele espera que esteja na partição de boot, e copiei os dois arquivos conforme o tutorial informa, e a placa bootou certinho. Não consegui rodar a aplicação pelo mesmo problema do Lucas Lui Motta, vou seguir as instruções citadas abaixo e tentar novamente.

Diego Sueiro
Diego Sueiro
Responder para  Xultz
10/01/2015 04:57

Xultz,

Atualize sua cópia do repositório da meta-ti pois esse problema já foi resolvido.

Victor Fernandez
Victor Fernandez
09/01/2015 12:05

Olá Diego, muito obrigado por este artigo. Eu espero que você possa me ajudar.
Segui todos os passos para gerar a imagem mas eu tenho alguns erros:

Diego Sueiro
Diego Sueiro
Responder para  Victor Fernandez
09/01/2015 12:23

Victor,

Mude a versão do kernel com os comandos:
“cd ~/yocto/poky-daisy/meta-ti; git checkout 31348244882a8defb640af75119ba275d9915f09”

E construa a imagem novamente.

Victor Fernandez
Victor Fernandez
Responder para  Diego Sueiro
09/01/2015 12:52

Olá Diego,

Depois de fazer o checkout, eu tenho esta resposta, mas eu não entendo.

Não obstante, eu posso construir a imagem novamente?.
Para construir novamente a imagen não é necessário eliminar alguns dos arquivos gerados pela construção anterio, ou só é necessário fazer:
cd ~/yocto
. poky-daisy/oe-init-build-env build-daisy
bitbake qt5-image-demo

Diego Sueiro
Diego Sueiro
Responder para  Victor Fernandez
09/01/2015 13:02

Victor,

Não precisa fazer nada.
Pode executar os comandos que vc mencionou.

Victor Fernandez
Victor Fernandez
Responder para  Diego Sueiro
10/01/2015 05:53

Olá Diego,

Depois de constuir a imagem novamente eu não tinha erros mas eu tive vários “Warnings”: https://pastebin.com/eh3tLhAx.

É necessário reconstruir a imagem ou eu posso gravar o cartão SSD?

Outra questão que eu tenho, ¿esta imagem funciona em uma placa com LCD7 CAPE?

muito obrigado pela vossa ajuda.

Diego Sueiro
Diego Sueiro
Responder para  Victor Fernandez
10/01/2015 06:20

Victor,

Não precisa se preocupar com esses warnings.

Vc terá que alterar o Device Tree com as configurações necessárias para o funcionamento do LCD.

Segue como referência:
https://github.com/beagleboard/linux/blob/3.14/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dts

Note que existem vários includes também.

Se você não estiver muito familiarizado com Device Tree essa tarefa será um tanto árdua. 🙁

Victor Fernandez
Victor Fernandez
Responder para  Diego Sueiro
11/01/2015 16:33

Olá Diego,

Eu não tenho nenhuma experiência com Device Tree e eu não sei por onde começar.

Eu procurei todo dia na internet, mas não encontrou nada claro. Por favor, você pode me guiar?.

Muito obrigado pela sua paciência

Diego Sueiro
Diego Sueiro
Responder para  Victor Fernandez
11/01/2015 19:19

Victor,

Comece com os artigos do Sergio Prado sobre o tema:
https://sergioprado.org/?s=Device+Tree+

Na presentação dele sobre Linux Device Drivers no Seminário Programação para Sistemas Embarcados 2014 tem uma parte sobre Device Tree:
https://embarcados.com.br/apresentacoes-seminario-programacao-para-sistemas-embarcados-2014/

Victor Fernandez
Victor Fernandez
Responder para  Diego Sueiro
13/01/2015 16:33

Olá Diego,

Eu não sou capaz alterar o Device Tree com as configurações necessárias para o funcionamento do LCD. Esta é uma tarefa impossível para mim

Eu encontrei este LCD com “Ubuntu with Kernel 3.15, 3.17, 3.18 support” https://elinux.org/Nh7Cape

Pode ser compatível com Kernel 3.14.25 de Yocto?.

Obrigado.

Diego Sueiro
Diego Sueiro
Responder para  Victor Fernandez
13/01/2015 19:14

Victor,

Sim ele será compatível sem problemas.

Infelizmente não tenho um exemplar desse comigo para fazer as alterações necessárias e testar.

Não desista meu amigo. Você vai conseguir. 😉

Diego Sueiro
Diego Sueiro
Responder para  Diego Sueiro
14/01/2015 07:19

Victor, Como não sei qual a versão da cape LCD7 que você está usando, compilei esses dois dtbs disponíveis: https://github.com/beagleboard/linux/blob/3.14/arch/arm/boot/dts/am335x-bone-lcd7-01-00a3.dts https://github.com/beagleboard/linux/blob/3.14/arch/arm/boot/dts/am335x-bone-lcd7-01-00a2.dts Baixe os dtbs nesses links: https://drive.google.com/file/d/0Byvkmnfcr5auV1hyMkNhcHk4cnM/view?usp=sharing https://drive.google.com/file/d/0Byvkmnfcr5auZk01STVua2pUOWM/view?usp=sharing Agora você tem que apontar o dtb que o bootloader deve carregar. Para isso insira o cartão uSD no computador e copie os dtbs para a pasta /boot do uSD e crie um link simbólico para o arquivo am335x-boneblack.dtb. Siga esses comandos (altere o caminho do ponto de montagem o uSD): “sudo cp am335x-boneblack-lcd7-01-00a2.dtb /media/rootfs/boot” “sudo cp am335x-boneblack-lcd7-01-00a3.dtb /media/rootfs/boot” “cd /media/rootfs/boot” (digite o comando abaixo para usar a versão a3 da cape)… Leia mais »

Victor Fernandez
Victor Fernandez
Responder para  Diego Sueiro
15/01/2015 16:21

Muito, muito obrigado.

Eu tenho a cape LCD7 versâo A3. Eu fiz o que você me disse mas o display ainda não funciona. Agora, também não tenho salida HDMI.

Eu tenho no /media/pc2/rootfs/boot https://pastebin.com/5pEuh69v
Eu tenho no /media/pc2/boot https://pastebin.com/9QmdHrJS

Abraços.

Diego Sueiro
Diego Sueiro
Responder para  Victor Fernandez
15/01/2015 16:30

Victor,

Esse dtb eu compilei do repositório do projeto beagleboard (veja o link que mandei anteriormente).
Porém o kernel compilado é do repositório da Texas. Então pode ser que eles sejam incompatíveis. 🙁

Vc terá que criar o dts do LCD e compilar o dtb com o kernel da Texas.

No meu comentário anterior eu listei o comando para voltar ao dtb original, pois o LCD e a saída HDMI não funcionam ao mesmo tempo.

Home » Software » Interface Gráfica » Beaglebone Black + Qt5 + Yocto – Parte 1

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: