Mudanças entre as edições de "Experimentos com a Beaglebone"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
 
(5 revisões intermediárias por um outro usuário não estão sendo mostradas)
Linha 1: Linha 1:
[[user:Aylons]] comprou uma Beaglebone em 02/2013. Como ele não tinha onde colocar suas anotações, acho que poderia ser útil compartilhar na onfigurações iniciaisWiki do Garoa, provavelmente porque boa parte dos projetos com ela serão feitas no próprio Garoa.
+
[Usuário:Aylons] comprou uma Beaglebone em 02/2013. Como ele não tinha onde colocar suas anotações, acho que poderia ser útil compartilhar as configurações iniciais aqui no wiki do Garoa, provavelmente porque boa parte dos projetos com ela serão feitas no próprio Garoa.
   
 
== Configurações ==
 
== Configurações ==
Linha 30: Linha 30:
 
/configure --enable-float --enable-neon CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp" CXXFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon"
 
/configure --enable-float --enable-neon CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp" CXXFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon"
 
</code>
 
</code>
  +
  +
Depois disso, a maior parte dos módulos compilou. Faltam alguns inúteis, como o QT, que não tem uso na Beaglebone, mas também faltam potenciais bons módulos, como o de wavelet, que depende do pacote GSL. Mas resolvi prosseguir daqui.
  +
  +
5- Make install exigiu o módulo python-compile, instalei usando opkg.
  +
  +
6 - Make install deu erro:
  +
  +
<code> /home/root/build/gnuradio/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c: In function 'dotprod_fff_armv7_a':
  +
/home/root/build/gnuradio/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c:67:5: error: impossible register constraint in 'asm'
  +
make[2]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o] Error 1
  +
make[1]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/all] Error 2
  +
make: *** [all] Error 2
  +
</code>
  +
  +
7 - Com ajuda do AcidX, percebi que o problema se limita a dois arquivos que provavelmente estão com asm malformado. Usando ifdefs especiais, contornei o problema para prosseguir a compilação (será preciso corrigir isso depois, no código).
  +
  +
8 - Novo erro de compilação - não conseguia linkar com fftw. Recompilando o fftw com a flag --enable-shared para permitir que ele funcione como biblioteca.
  +
  +
[[Categoria:Mini PC]]

Edição atual tal como às 16h03min de 10 de agosto de 2013

[Usuário:Aylons] comprou uma Beaglebone em 02/2013. Como ele não tinha onde colocar suas anotações, acho que poderia ser útil compartilhar as configurações iniciais aqui no wiki do Garoa, provavelmente porque boa parte dos projetos com ela serão feitas no próprio Garoa.

Configurações

1 - Configurei a rede seguindo as instruções do [Embedded Linux Wiki]

2- Porém, por algum motivo, o servidor feeds.angstrom.com não responde. Por isso, editei manualmente todos os arquivos .conf em /etc/opkg/ para apontarem para o servidor www.angstrom.com. Agora tudo funciona ok.


RTL-SDR

Aqui ficam as tentativas de implementar um SDR para recepção usando a Beaglebone e [dongles de TV digital].

1- Segui as instruções [deste site], para instalar o driver rtl-sdr no Linux. Tudo funcionou como descrito no site.

2 - Segui as [instruções para construir o GnuRadio no site OpenSDR]: o resultado não foi bom (o GnuRadio não tem mais arquivo .configure, mudando para o CMAKE).

3 - Então, portei as opções do .configure para o CMAKE: cmake -DENABLE_GRC=False -DENABLE_GR_COMP=False CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O3" CXXFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O3" ../

4 - Então, surgem os problemas das dependências. Instalei o boost-dev (biblioteca em python) e o python-cheetah. Falta o fftw, que aparentemente não tem no repositório opkg da angstrom.

Outras dependências instaladas à mão: ORC. O ORC do Angstrom é muito antigo para o GnuRadio atual (que precisa de ORC 4.11) Estou tentando baixar o fonte e compilar com flags para ARM... (instalação funcionou bem somente com ./configure, make, make install)

O FFTW eu preferi compilar usando flags para otimizar (o ORC obviamente não precisa disso). Usei a seguinte linha de comando para o configure (tirei inspiração do guia do FFTW e misturei com o guia de compilação do GnuRadio, logo acima):

/configure --enable-float --enable-neon CFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp" CXXFLAGS="-march=armv7-a -mtune=cortex-a8 -mfpu=neon"

Depois disso, a maior parte dos módulos compilou. Faltam alguns inúteis, como o QT, que não tem uso na Beaglebone, mas também faltam potenciais bons módulos, como o de wavelet, que depende do pacote GSL. Mas resolvi prosseguir daqui.

5- Make install exigiu o módulo python-compile, instalei usando opkg.

6 - Make install deu erro:

/home/root/build/gnuradio/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c: In function 'dotprod_fff_armv7_a': /home/root/build/gnuradio/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c:67:5: error: impossible register constraint in 'asm' make[2]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/filter/dotprod_fff_armv7_a.c.o] Error 1 make[1]: *** [gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/all] Error 2 make: *** [all] Error 2

7 - Com ajuda do AcidX, percebi que o problema se limita a dois arquivos que provavelmente estão com asm malformado. Usando ifdefs especiais, contornei o problema para prosseguir a compilação (será preciso corrigir isso depois, no código).

8 - Novo erro de compilação - não conseguia linkar com fftw. Recompilando o fftw com a flag --enable-shared para permitir que ele funcione como biblioteca.