Raspberry Pi + Yocto (dora)

Raspberrypi

É bem provável que você já tenha ouvido falar da Raspberrypi. Juntamente com a Beaglebone Black, essas placas são consideradas como mini-pcs e estão sendo largamente adotadas pela comunidade open-source e têm viabilizado diversos projetos por conta de seu baixo preço, USD35 e USD45, respectivamente.

 

 

Vejamos algumas características do hardware da Rpi Modelo B (a partir de 15/10/12):

  • SoC: Broadcom BCM2835 (CPU + GPU)
  • CPU: 700 MHz ARM11 ARM1176JZF-S
  • GPU: Broadcom VideoCore IV,OpenGL ES 2.0,OpenVG 1080p30 H.264 high-profile encode/decode
  • Memória (SDRAM)iB: 512 MiB
  • USB 2.0: 2 portas
  • Saída de Video: Composite video | Composite RCA, HDMI
  • Saída de Audio: TRS connector | 3.5 mm jack, HDMI
  • Armazenamento: Secure Digital | SD / MMC / SDIO card slot
  • Interface de rede: 10/100 Ethernet RJ45
  • Periféricos de comunicação: GPIO, SPI, I²C, I²S, UART

 

rpi

 

A comunidade desenvolveu o Raspbian, que é o Debian modificado para rodar na Raspberrypi. Porém esta distribuição é para uso de propósito geral e dependendo da aplicação/produto que se queira desenvolver com a Rpi, o processamento e consumo de memória e energia podem ficar comprometidos. Portanto é mais recomendado que se construa uma distribuição Linux customizada afim de atender a esses requisitos.

 

Vamos apresentar uma maneira rápida e simples de como gerar uma distribuição Linux embarcado com o Yocto Project para a Raspberrypi. Se você ainda não conhece o Yocto, sugiro que leia o artigo do Henrique Beaglebone Black + Yocto, onde ele faz uma introdução sobre ele.

 

 

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 git://git.yoctoproject.org/poky poky-dora
cd poky-dora
git checkout dora
git clone git://git.yoctoproject.org/meta-raspberrypi
cd meta-raspberrypi
git checkout dora

 

Note que estamos usando a versão "dora" do Yocto Project.

 

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

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

 

Adicione a linha abaixo no arquivo ~/yocto/build-dora/conf/bblayers.conf  para a variável BBLAYERS:

${TOPDIR}/../poky-dora/meta-raspberrypi \

 

Modifique e adicione as seguintes variáveis no arquivo ~/yocto/build-dora/conf/local.conf

#MACHINE ??= "qemux86"
MACHINE ?= "raspberrypi"

DL_DIR ?= "${TOPDIR}/../dl"

PACKAGE_CLASSES ?= "package_ipk"

IMAGE_INSTALL_append = " kernel-modules"

Note que configuramos nossa machine como sendo raspberrypi, mudamos o diretório de download para podermos reutilizar os fontes baixados em outros projetos, usaremos o gerenciador de pacotes ipk (ele é mais indicado para sistemas embarcados porque não exige muitos recursos para funcionar) e vamos instalar na imagem todos os módulos do kernel gerados.

 

Se você já fez o tutorial do Henrique ou tutorial: "Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto", você pode simplesmente atualizar a sua cópia local do repositório do yocto (git pull origin dora), adicionar o repositório da meta-raspberrypi (git clone git://git.yoctoproject.org/meta-raspberrypi) e modificar os arquivos bblayers.conf e local.conf como descrito anteriormente.

 

Veja que para adicionar o suporte a Raspberrypi ao Yocto tivemos que adicionar o layer meta-raspberrypi. Esse layer possui as receitas necessárias para construir o kernel para a Raspberrypi, baixar o bootloader proprietário da Broadcom, configurar a quantidade de memória destinada a GPU do processador e construir algumas libs e aplicativos exclusivos para a Rpi. Devido a estas características dizemos que o layer meta-raspberrypi é um layer de BSP (Board Support Package). Mais detalhes podem ser encontrados no arquivo  ~/yocto/poky-dora/meta-raspberrypi/README.

 

Gerando a imagem

 

Depois de ter o ambiente de construção configurado vamos gerar uma imagem, sem bibliotecas e aplicativos gráficos:

cd ~/yocto
. poky-dora/oe-init-build-env build-dora
bitbake rpi-basic-image

 

Se você quiser gerar uma imagem com suporte a interface gráfica rode o seguinte comando:

cd ~/yocto
. poky-dora/oe-init-build-env build-dora
bitbake core-image-sato

 

 

Gravando a imagem

 

O Yocto gerou a imagem do SDcard que está disponível em: ~/build-dora/tmp/deploy/eglibc/images/raspberrypi/ . De posse desse arquivo podemos gravá-lo no SDcard.

 

Insira o SDcard 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 os seguintes comandos para gravar a imagem no SDcard:

sudo umount /dev/sdb*
# Use o comando abaixo para gravar a imagem sem interface grafica
sudo dd if=~/yocto/build-dora/tmp/deploy/images/raspberrypi/rpi-basic-image-raspberrypi.rpi-sdimg of=/dev/sdb ; sync

# Use o comando abaixo para gravar a imagem com interface grafica
sudo dd if=~/yocto/build-dora/tmp/deploy/images/raspberrypi/core-image-sato-raspberrypi.rpi-sdimg of=/dev/sdb ; sync

 

 

Testando a imagem

 

Conecte o  o cabo serial na Rpi de acordo com essas instruções e energize a placa.

 

Para a imagem básica, sem interface gráfica, teremos o seguinte log do boot do sistema:

[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.6.11 ([email protected]) (gcc version 4.8.1 (GCC) ) #1 PREEMPT Thu Feb 6 17:29:39 BRST 2014
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: BCM2708
[    0.000000] cma: CMA: reserved 16 MiB at 1b000000
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 114688
[    0.000000] free_area_init_node: node 0, pgdat c05599bc, node_mem_map c0604000
[    0.000000]   Normal zone: 896 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 113792 pages, LIFO batch:31
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 113792
[    0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708.boardrev=0xf bcm2708.serial=0x83ag
[    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: 448MB = 448MB total
[    0.000000] Memory: 432140k/432140k available, 26612k 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 : 0xdc800000 - 0xff000000   ( 552 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xdc000000   ( 448 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0503594   (5102 kB)
[    0.000000]       .init : 0xc0504000 - 0xc0525128   ( 133 kB)
[    0.000000]       .data : 0xc0526000 - 0xc055a408   ( 210 kB)
[    0.000000]        .bss : 0xc055a42c - 0xc0603578   ( 677 kB)
[    0.000000] NR_IRQS:330
[    0.000000] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 4294967ms
[    0.000000] Console: colour dummy device 80x30
[    0.000241] Calibrating delay loop... 697.95 BogoMIPS (lpj=3489792)
[    0.060109] pid_max: default: 32768 minimum: 301
[    0.060417] Mount-cache hash table entries: 512
[    0.061161] Initializing cgroup subsys cpuacct
[    0.061186] Initializing cgroup subsys devices
[    0.061200] Initializing cgroup subsys freezer
[    0.061209] Initializing cgroup subsys blkio
[    0.061279] CPU: Testing write buffer coherency: ok
[    0.061586] hw perfevents: enabled with v6 PMU driver, 3 counters available
[    0.061696] Setting up static identity map for 0x3bb1e8 - 0x3bb244
[    0.063236] devtmpfs: initialized
[    0.073371] NET: Registered protocol family 16
[    0.079714] DMA: preallocated 4096 KiB pool for atomic coherent allocations
[    0.080877] bcm2708.uart_clock = 0
[    0.082296] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.082313] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.082326] mailbox: Broadcom VideoCore Mailbox driver
[    0.082396] bcm2708_vcio: mailbox at f200b880
[    0.082468] bcm_power: Broadcom power driver
[    0.082482] bcm_power_open() -> 0
[    0.082491] bcm_power_request(0, 8)
[    0.583161] bcm_mailbox_read -> 00000080, 0
[    0.583175] bcm_power_request -> 0
[    0.583184] Serial: AMBA PL011 UART driver
[    0.583304] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3
[    0.929243] console [ttyAMA0] enabled
[    0.952476] bio: create slab <bio-0> at 0
[    0.957348] SCSI subsystem initialized
[    0.961395] usbcore: registered new interface driver usbfs
[    0.966942] usbcore: registered new interface driver hub
[    0.972501] usbcore: registered new device driver usb
[    0.978808] Switching to clocksource stc
[    0.983018] FS-Cache: Loaded
[    0.986135] CacheFiles: Loaded
[    1.001294] NET: Registered protocol family 2
[    1.006531] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    1.014247] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[    1.021103] TCP: Hash tables configured (established 16384 bind 16384)
[    1.027680] TCP: reno registered
[    1.030912] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    1.036782] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    1.043341] NET: Registered protocol family 1
[    1.048185] RPC: Registered named UNIX socket transport module.
[    1.054192] RPC: Registered udp transport module.
[    1.058891] RPC: Registered tcp transport module.
[    1.063613] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.070674] bcm2708_dma: DMA manager at f2007000
[    1.075425] bcm2708_gpio: bcm2708_gpio_probe c0533dd8
[    1.080853] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[    1.089953] audit: initializing netlink socket (disabled)
[    1.095513] type=2000 audit(0.960:1): initialized
[    1.218294] VFS: Disk quotas dquot_6.5.2
[    1.222290] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.229321] FS-Cache: Netfs 'nfs' registered for caching
[    1.235028] NFS: Registering the id_resolver key type
[    1.240178] Key type id_resolver registered
[    1.244453] Key type id_legacy registered
[    1.248792] msgmni has been set to 876
[    1.254340] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    1.262021] io scheduler noop registered
[    1.266039] io scheduler deadline registered
[    1.270326] io scheduler cfq registered (default)
[    1.296393] Console: switching to colour frame buffer device 82x26
[    1.387053] kgdb: Registered I/O driver kgdboc.
[    1.392227] vc-cma: Videocore CMA driver
[    1.396217] vc-cma: vc_cma_base      = 0x00000000
[    1.400913] vc-cma: vc_cma_size      = 0x00000000 (0 MiB)
[    1.406326] vc-cma: vc_cma_initial   = 0x00000000 (0 MiB)
[    1.420642] brd: module loaded
[    1.428647] loop: module loaded
[    1.432126] vchiq: vchiq_init_state: slot_zero = 0xdb000000, is_master = 0
[    1.439917] Loading iSCSI transport class v2.0-870.
[    1.445782] usbcore: registered new interface driver smsc95xx
[    1.451726] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.662702] Core Release: 2.80a
[    1.665923] Setting default values for core params
[    1.670741] Finished setting default values for core params
[    1.881454] Using Buffer DMA mode
[    1.884802] Periodic Transfer Interrupt Enhancement - disabled
[    1.890626] Multiprocessor Interrupt Enhancement - disabled
[    1.896212] OTG VER PARAM: 0, OTG VER FLAG: 0
[    1.900564] Dedicated Tx FIFOs mode
[    1.905052] dwc_otg: Microframe scheduler enabled
[    1.910155] dwc_otg bcm2708_usb: DWC OTG Controller
[    1.915136] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1
[    1.922398] dwc_otg bcm2708_usb: irq 32, io mem 0x00000000
[    1.927964] Init: Port Power? op_state=1
[    1.931878] Init: Power Port (0)
[    1.935217] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.942001] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.949246] usb usb1: Product: DWC OTG Controller
[    1.953973] usb usb1: Manufacturer: Linux 3.6.11 dwc_otg_hcd
[    1.959626] usb usb1: SerialNumber: bcm2708_usb
[    1.964952] hub 1-0:1.0: USB hub found
[    1.968727] hub 1-0:1.0: 1 port detected
[    1.973023] dwc_otg: FIQ enabled
[    1.976248] dwc_otg: NAK holdoff enabled
[    1.980158] dwc_otg: FIQ split fix enabled
[    1.984289] Module dwc_common_port init
[    1.988333] Initializing USB Mass Storage driver...
[    1.993481] usbcore: registered new interface driver usb-storage
[    1.999479] USB Mass Storage support registered.
[    2.004261] usbcore: registered new interface driver libusual
[    2.010265] mousedev: PS/2 mouse device common for all mice
[    2.016547] bcm2835-cpufreq: min=700000 max=700000 cur=700000
[    2.022393] bcm2835-cpufreq: switching to governor powersave
[    2.028089] bcm2835-cpufreq: switching to governor powersave
[    2.033780] cpuidle: using governor ladder
[    2.037890] cpuidle: using governor menu
[    2.041867] sdhci: Secure Digital Host Controller Interface driver
[    2.048067] sdhci: Copyright(c) Pierre Ossman
[    2.052500] sdhci: Enable low-latency mode
[    2.103072] mmc0: SDHCI controller on BCM2708_Arasan [platform] using platform's DMA
[    2.110860] mmc0: BCM2708 SDHC host at 0x20300000 DMA 2 IRQ 77
[    2.116913] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.128221] usbcore: registered new interface driver usbhid
[    2.135964] usbhid: USB HID core driver
[    2.142549] TCP: cubic registered
[    2.148037] Initializing XFRM netlink socket
[    2.154455] NET: Registered protocol family 17
[    2.161191] Key type dns_resolver registered
[    2.165711] Indeed it is in host mode hprt0 = 00021501
[    2.174508] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[    2.193633] registered taskstats version 1
[    2.201220] Waiting for root device /dev/mmcblk0p2...
[    2.210113] mmc0: new high speed SDHC card at address 0002
[    2.223612] mmcblk0: mmc0:0002 00000 3.81 GiB 
[    2.234015]  mmcblk0: p1 p2
[    2.343178] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.351333] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    2.358222] devtmpfs: mounted
[    2.361639] Freeing init memory: 132K
[    2.382956] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    2.389567] Indeed it is in host mode hprt0 = 00001101
[    2.593621] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
[    2.600346] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.623528] hub 1-1:1.0: USB hub found
[    2.629252] hub 1-1:1.0: 3 ports detected
[    2.923165] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    3.043549] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    3.050433] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.076047] smsc95xx v1.0.4
[    3.147877] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:a3:29:2b
[    3.215162] udevd[73]: starting version 182
[    4.182086] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
[   14.550215] NET: Registered protocol family 10
[   14.556726] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

 

Para imagem com interface gráfica (core-image-sato) teremos as seguintes telas pela conexão HDMI:

 

Raspberrypi

 

 

Raspberrypi

 

Agora você pode criar as suas aplicações e adicionar pacotes a partir de uma distribuição enxuta e leve.

 

 

Para aprender mais

 

Embedded Linux Build Systems

Desvendando Yocto Project – Primeiros passos

Raspberry pi + Qt5 + Yocto

 

 

Onde Comprar

 

Você pode conferir o preço da Raspberry Pi Modelo B e acessórios na loja virtual FILIPEFLOP: Arduino e Componentes Eletrônicos. Acesse!

 

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Diego Sueiro
Formado em Engenharia de Controle e Automação pela UNIFEI e CEO do Embarcados, atualmente trabalho na Inglaterra com Desenvolvimento de Sistemas Linux Embarcado Real Time. Sou consultor e desenvolvedor de software para Sistemas Embarcados com vasta experiência em projetos com processadores de 8bits a 32bits, sistemas bare metal, RTOS, Linux Embarcado e Android Embarcado. Um apaixonado por Pink Floyd e Empreendedorismo.

78
Deixe um comentário

avatar
 
31 Comment threads
47 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
13 Comment authors
Igor GallonIgor GallonDiego SueiroIgor GallonThiago Lima Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Igor Gallon
Visitante
Igor Felipe Gallon

Olá, Diego. Sei que estou um pouco atrasado no post, mas tentei seguir o tutorial e aconteceu um problema semelhante ao Thiago Lima. Consegui gerar uma imagem sem interface gráfica porém estou recebendo um erro quando tento gerar uma imagem com interface. Estou utilizando a versão "sumo" do Yocto. Segue abaixo: ERROR: Nothing PROVIDES 'faad2' (but /home/igorgallon/yocto/poky-sumo/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.12.4.bb DEPENDS on or otherwise requires it) NOTE: Runtime target 'gst-examples-dev' is unbuildable, removing... Missing or unbuildable dependency chain was: ['gst-examples-dev', 'gstreamer1.0-plugins-bad', 'faad2'] NOTE: Runtime target 'gst-examples' is unbuildable, removing... Missing or unbuildable dependency chain was: ['gst-examples', 'gstreamer1.0-plugins-bad', 'faad2'] NOTE: Runtime target 'packagegroup-core-x11-sato-games' is… Leia mais »

Igor Gallon
Membro
Igor Gallon

Consegui aqui! Muito obrigado!

Igor Gallon
Membro
Igor Gallon

Outra coisa... Eu tenho um cabo prolific PL2303 pra fazer a interface serial e não consigo de jeito algum obter o command line pela serial no meu host. Vi que tinham algumas modificações a serem feitas no /boot/cmdline (adicionando "console=tty0") e no /boot/config (enable_uart=1). Tentei com o picocom, porém sem sucesso. Sei que foge um pouco do escopo do artigo, mas você tem alguma ideia do que pode ser?

Igor Gallon
Membro
Igor Gallon

Consegui resolver o problema! O vendedor me passou a pinagem dos cabos incorreta... O RX e TX estavam invertidos... rs Mesmo assim, muito obrigado pela ajuda!

Bruno Cardoso
Visitante
Bruno Cardoso

Olá Diego, tudo bem? Estou querendo dar meus primeiros passos com o Yocto e resolvi começar por aqui já que possuo uma Raspberry, mas quando mando o comando bitbake para gerar a imagem (qualquer uma das duas), ocorre o seguinte erro: ERROR: Traceback (most recent call last): File "/home/bruno/yocto/poky-jethro/bitbake/lib/bb/cookerdata.py", line 178, in wrapped return func(fn, *args) File "/home/bruno/yocto/poky-jethro/bitbake/lib/bb/cookerdata.py", line 200, in parse_config_file return bb.parse.handle(fn, data, include) File "/home/bruno/yocto/poky-jethro/bitbake/lib/bb/parse/__init__.py", line 113, in handle return h['handle'](fn, data, include) File "/home/bruno/yocto/poky-jethro/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 124, in handle abs_fn = resolve_file(fn, data) File "/home/bruno/yocto/poky-jethro/bitbake/lib/bb/parse/__init__.py", line 136, in resolve_file raise IOError(errno.ENOENT, "file %s not found" % fn)… Leia mais »

Diego Sueiro
Visitante
Diego Sueiro

Me parece que o path do meta-raspberrypi está errado.

Cola o conteúdo do seu arquivo bblayers.conf

Bruno Cardoso
Visitante
Bruno Cardoso

Conferi o conteúdo do arquivo bblayers.conf e vi que havia colocado o caminho errado para o meta-raspberrypi.

Obrigado!

Thiago Lima
Visitante

Oi Diego, estou tentando utilizar o bitbake para cozinhar a minha imagem com interface grafica para a Raspberry. Consegui com a interface sem ser grafica, mas o comando com o core-image-sato nao esta funcionando de jeito nenhum.

Tentei encontrar ajuda aqui mas nao entendi nada =)
https://www.mail-archive.com/[email protected]/msg24975.html

Veja o aviso quando tento levar ao forno.

ERROR: Nothing RPROVIDES 'packagegroup-core-x11-sato-gameskernel-modules' (but /home/thiago/yocto/poky-dora/meta/recipes-sato/images/core-image-sato.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'packagegroup-core-x11-sato-gameskernel-modules' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-core-x11-sato-gameskernel-modules']
ERROR: Required build target 'core-image-sato' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-sato', 'packagegroup-core-x11-sato-gameskernel-modules']

Diego Sueiro
Visitante
Diego Sueiro

Thiago,

Este erro pode estar relacionado á sua pergunta abaixo.
No local.conf você colocou dessa maneira?
IMAGE_INSTALL_append = " kernel-modules"

Note que há um espaço entre a primeira aspas e o kernel-modules.

Veja que o erro diz que não que não existe o pacote "packagegroup-core-x11-sato-gameskernel-modules", ou seja, tá faltando um espaço aí.

Thiago Lima
Visitante

Diego, nao entendi porque tenho que incluir essa linha a seguir. Sao mesmo necessarias? O que elas significam? IMAGE_INSTALL_append = " kernel-modules"

Obrigado.

Diego Sueiro
Visitante
Diego Sueiro

Thiago,

Essa linha diz ao Yocto que ele deve instalar na imagem todos os módulos do kernel gerados. Sem isso algumas funções não vão funcionar.

Thiago Lima
Visitante

mmm... Obrigado Diego!!!

trackback

[…] Raspberrypi + Yocto […]

trackback

[…] Raspberrypi + Yocto […]

trackback

[…] Raspberrypi + Yocto […]

trackback

[…] Raspberrypi + Yocto […]

Abhishek Srivastava
Visitante
abhishek srivastava

Hi all I am using dizzy branch for raspberrypi and my kernel version is 3.18.11. actually, whenever i compile using bitbake, I am getting packages-armel.deb but i want to have packages-armhf.deb in my deployed image. I have made changes in ~/yocto/poky-dizzy-12.0.1/meta-raspberrypi/conf/raspberrypi file at DEFAULTTUNE ?= "arm1176jzfshf" I have also changes in ~/yocto/poky-dizzy-12.0.1/meta-raspberrypi/conf/machine/include/tiune-arm1176jzf.inc file at DEFAULTTUNE ?= "arm1176jzfshf" But his doesnot solve the purpose. I have even set DEFAULTTUNE to arm1176jzfshf in local.conf........still no luck Build Configuration: BB_VERSION = "1.24.0" BUILD_SYS = "i686-linux" NATIVELSBSTRING = "Ubuntu-14.04" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "raspberrypi" DISTRO = "poky" DISTRO_VERSION = "1.7.1" TUNE_FEATURES = "arm… Leia mais »

Diego Sueiro
Visitante
Diego Sueiro

I suspect that there is a bug in yocto when naming the deb packages.
I did a test changing the DEFAULTTUNE to "arm1176jzfshf" and the log of the compiled packages has:
"-march=armv6 -mthumb-interwork -mfloat-abi=hard -mtune=arm1176jzf-s -mfpu=vfp"

As you can see it is using hfp but the deb packages are armel.

trackback

[…] Raspberrypi + Yocto […]