diff options
Diffstat (limited to 'files/pt-br/archive/b2g_os/firefox_os_build_prerequisites/index.html')
| -rw-r--r-- | files/pt-br/archive/b2g_os/firefox_os_build_prerequisites/index.html | 657 |
1 files changed, 0 insertions, 657 deletions
diff --git a/files/pt-br/archive/b2g_os/firefox_os_build_prerequisites/index.html b/files/pt-br/archive/b2g_os/firefox_os_build_prerequisites/index.html deleted file mode 100644 index 2832238b34..0000000000 --- a/files/pt-br/archive/b2g_os/firefox_os_build_prerequisites/index.html +++ /dev/null @@ -1,657 +0,0 @@ ---- -title: Pré-requisitos para compilar o Firefox OS -slug: Archive/B2G_OS/Firefox_OS_build_prerequisites -translation_of: Archive/B2G_OS/B2G_OS_build_prerequisites ---- -<p>Antes de adquirir o código para compilar o Firefox OS, você precisa de um <a href="https://developer.mozilla.org/pt-BR/docs/Developer_Guide/Intrucoes_Build" title="https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions">sistema de desenvolvimento</a> configurado — esse artigo mostra a você como fazer isso. Você pode construí-los em uma distribuição Linux 64-bit e OS X.</p> - -<div class="note"> -<p><strong>Nota</strong>: Para compilar o Firefox OS para um telefone, comece com seu telefone SEM CONECTÁ-LO ao seu computador. Nós o avisaremos quando tiver que plugá-lo.</p> -</div> - -<h2 id="Tenha_um_dispositivoemulador_compatível">Tenha um dispositivo/emulador compatível</h2> - -<p>Você precisa ter um dispositivo compatível ou usar um emulador. Embora muitos telefones são suportados, existem variações. Atualmante nós suportamos variações específicas e alguns aparelhos tem um suporte melhor que outros.</p> - -<div class="note"> -<p><strong>Nota</strong>: <a href="https://github.com/mozilla-b2g/B2G">O código fonte do B2G</a> efetivamente é a referência na implementacão do B2G, mas fabricantes estão livres para adicionar patches ou fazer alterações. Quando você compra um Alcatel One Touch, por exemplo, ele contém a versão do fabricante. Isso não faz diferença para os aplicativos instalados, mas pode fazer a diferença no nível da plataforma. A portabilidade do Nexus 4 é mantida diretamente pela Mozilla, por isso são muito mais propensos a trabalhar com a nossa versão do Gecko do que outros dispositivos no Nível 3.</p> -</div> - -<h3 id="Nível_1">Nível 1</h3> - -<p>Os aparelhos do nível 1 são aqueles que estão sendo ativamente suportados como foco primario para o desenvolvimento. Funcionalidades irão chegar com mais frequência, e problemas serão corrigidos, primeiramente nestes aparelhos.</p> - -<dl> - <dt>Keon</dt> - <dd>Keon é desenvolvido pela <a href="http://www.geeksphone.com/" title="http://www.geeksphone.com/">Geeksphone</a>, que é um dos telefones de desenvolvimento de entrada. Observe que a compilação para esse dispositivo é fornecediro pela Geeksphone.</dd> - <dt>Inari</dt> - <dd>Inari é um outro dispositivo de teste. Use essa configuração para compilar para um dispositivo ZTE Open. <strong>Atenção</strong>: compilações mais recentes do Firefox OS pode apresentar problemas na inicialização na partição de boot padrão do ZTE Open.</dd> - <dt>Flame</dt> - <dd>Flame é o novo padrão da Mozilla de um telefene de referência para Firefox OS, você pode usar a configuração do Flame se você está compilando uma imagem para o ZTE Open C, uma vez que o Flame e o Open C são baseados no Android JellyBean.</dd> - <dt>Unagi</dt> - <dd>Unagi é um telefone sendo utilizando para testes e desenvolvimento da plataforma, como um smartphone de baixo-medio custo. Vários dos desenvolvedores principais do Firefox OS estão trabalhando com um Unagi.</dd> - <dt><a href="/en-US/docs/Mozilla/Boot_to_Gecko/Pandaboard" title="/en-US/docs/Mozilla/Boot_to_Gecko/Pandaboard">Pandaboard</a></dt> - <dd>O Pandaboard é uma placa de desenvolvimento baseada na arquitetura OMAP 4, utilizada para desenvolvimento em plataformas mobile.</dd> - <dt><a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators">Emulador (ARM and x86)</a></dt> - <dd>Existem dois emuladores disponíveis: um emula código ARM e outro executa qualquer coisa em código x86.</dd> - <dt><a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">Desktop</a></dt> - <dd>Você também pode compilar uma versão desktop do Firefox OS, ela roda o <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Gecko" title="/en-US/docs/Gecko">Gecko</a> em uma aplicação <a href="https://developer.mozilla.org/pt-BR/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a>, e você então usa a experiência do usuário <a href="/pt-BR/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia" title="/en-US/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Gaia</a>.</dd> -</dl> - -<dl> - <dt>Flatfish</dt> - <dd>Flatfish é o primeiro programa de tablet do Firefox OS, embora algumas das funcionalidades de telefonia não funcionem no flatfish. Você vai precisar de algumas <a href="https://github.com/flatfish-fox/flatfish-kernel">configurações extras</a> para compilar o código.</dd> -</dl> - -<p>Você também pode, é claro, compilar no <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">cliente desktop</a> ou em algum dos <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators">emuladores</a> sem necessitar de um telefone.</p> - -<h3 id="Nível_2">Nível 2</h3> - -<p>Os aparelhos do Nível 2 são geralmente funcionais e usados por muitos desenvolvedores de aplicativos, porém esses aparelhos recebem as atualizações em um segundo momento.</p> - -<dl> - <dt><a class="link-https" href="https://en.wikipedia.org/wiki/Nexus_S#Variants" title="https://en.wikipedia.org/wiki/Nexus_S#Variants">Samsung Nexus S</a></dt> - <dd>Os números de modelos conhecidos dos telefones Nexus S são GT-I9020A e GT-I9023. Outros códigos podem funcionar.</dd> - <dt>Samsung Nexus S 4G</dt> - <dd>O modelo SPH-D720 é suportado como um telefone nível 2.</dd> -</dl> - -<h3 id="Nível_3">Nível 3</h3> - -<p>Esses dispositivos são aqueles que podem ter o Firefox OS compilado mas não são trabalhados ativamente por uma base de desenvolvedores do núcleo do sistema, por isso sua confiabilidade e conjunto de recursos fica atrás dos telefones nível 1 e até mesmo dos aparelhos do Nível 2.</p> - -<dl> - <dt>Samsung Galaxy S2</dt> - <dd>O único modelo que roda o Firefox OS é o i9100, nenhuma outra variante é oficialmente compatível. (i9100P deve funcionar, uma vez que a única diferença é o acréscimo de um chip NFC - <em>Near Field Communication</em>).</dd> - <dt>Samsung Galaxy Nexus</dt> - <dd>Nós não temos informações de alguma variação que não seja compatível.</dd> - <dt>Nexus 4</dt> - <dd>Alguns usuários no IRC testaram com sucesso. Pode ou não fazer o flash para o Android 4.3 primeiro se estiver rodando o 4.4 (<a href="https://developers.google.com/android/nexus/images#occamjwr66y">imagens do Android disponíveis para download no Google</a>)</dd> - <dt>Nexus 5</dt> - <dd>Alguns usuários no IRC testaram com sucesso.</dd> - <dt>Tara</dt> - <dd>Tara é outro dispositivo de teste. O manifesto do Tara está somente no branch master. O script para conseguir o código do Tara é "BRANCH=master ./config.sh tara".</dd> - <dt>Unagi</dt> - <dd>Unagi é um telefone usado como uma plataforma de teste e desenvolvimento de smartphones low-to-midrange. Muitos desenvolvedores do core do Firefox OS trabalham no Unagi.</dd> - <dt><a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Firefox_OS/Pandaboard" title="/en-US/docs/Mozilla/Firefox_OS/Pandaboard">Pandaboard</a></dt> - <dd>O Pandaboard é uma placa de desenvolvimento baseado na arquitetura OMAP 4</dd> -</dl> - -<div class="warning"><span style="color: #ffffff;"><strong>Important</strong>e: Somente dispositivos rodando o <strong>Android</strong> versão 4 (também conhecida como <strong>Ice Cream Sandwich</strong>) ou superior são suportados. Se seu telefone estiver na lista acima mas esteja rodando uma versão anterior do android, atualize-a antes de fazer qualquer coisa.</span></div> - -<div> -<h3 id="Requisitos_para_Flame_e_Nexus_5_libxml2-utils">Requisitos para Flame e Nexus 5 libxml2-utils</h3> - -<p>Se você está compilando para o dispositivo de referência <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Developer_phone_guide/Flame">Flame</a> ou para o Nexus 5, antes de iniciar você deve executar o seguinte comando no terminal:</p> - -<pre class="brush: bash language-html"><code class="language-html">sudo apt-get install libxml2-utils</code></pre> - -<h3 id="Botão_Home_botão_físico_versus_botão_por_software_versus_gesto">Botão Home: botão físico versus botão por software versus gesto</h3> - -<p>Todos os dispositivos nível 1 possuem um botão home físico que leva o usuário para a tela de início. Muitos dispositivos baseados no Android ICS usam botões de toque na tela para a navegação. Nós temos um botão home virtual para os dispositivos que não possuem um botão físico. Se não estiver habilitado automaticamente, vá para o aplicativo Preferências em <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Debugging/Developer_settings">Configurações do desenvolvedor</a> e ative a opção <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Debugging/Developer_settings#Enable_software_home_button">Botão home por software</a>.</p> - -<p>Dispositivos do nível 2 e 3 possuem botão home por software.</p> - -<p>A partir da versão 1.4 do Firefox OS existe também a opção de "Habilitar Gesto para Home", ao habilitar essa opção o botão home será removido da tela e para ir para a tela de início o usuário deve deslizar o dedo na tela de baixo para cima.</p> -</div> - -<h2 id="Requisitos_para_GNULinux">Requisitos para GNU/Linux</h2> - -<p>Para compilar no Linux, você precisará de um sistema com a seguinte configuração:</p> - -<ul> - <li>Uma distribuição <strong>GNU/Linux</strong> <strong>de 64 bits </strong>(nós recomendamos o Ubuntu 12.04).</li> - <li>Pelo menos <strong>4GB</strong> de ram/swap.</li> - <li>Pelo menos <strong>30GB</strong> de espaço em disco.</li> -</ul> - -<p>Isso é mais que o mínimo necessário, mas algumas vezes a compilação pode falhar exatamente por falta de recursos.</p> - -<p>É possível utilizar outras distribuições, mas nós recomendamos Ubuntu uma vez que é a distro mais comumente utilizada com sucesso. Distribuições que <strong>não devem funcionar:</strong> <strong>distros 32 bits</strong> e distros recentes por causa do gcc 4.7 (<strong>Ubuntu 12.10, Fedora 17/18, Arch Linux</strong>).</p> - -<p>Você também vai necessitar das seguintes ferramentas instaladas:</p> - -<ul> - <li><strong>autoconf 2.13</strong></li> - <li><strong>bison</strong></li> - <li><strong>bzip2</strong></li> - <li><strong>ccache</strong></li> - <li><strong>curl</strong></li> - <li><strong>flex</strong></li> - <li><strong>gawk</strong></li> - <li><strong>git</strong></li> - <li><strong>gcc / g++ / g++-multilib</strong> <strong>(4.6.3 or older)</strong></li> - <li><strong>make</strong></li> - <li><strong>OpenGL headers</strong></li> - <li><strong>X11 headers</strong></li> - <li><strong>32-bit ncurses</strong></li> - <li><strong>32-bit zlib</strong></li> -</ul> - -<h3 id="Problemas_na_compilação_do_Emulador"><strong>Problemas na compilação do Emulador </strong></h3> - -<p>Se você está compilando um emulador, você precisa prestar atenção a esses problemas:</p> - -<div class="note"> -<p><strong>Primeiro, note que você não deve usar o emulador x86 — é difícil de instalar e não é bem suportado.</strong></p> -</div> - -<p>Observe também que o sistema de compilação para o emulador compila ambas as versões do emulador: 32bit e 64bit. Como o emulador depende do OpenGL, isso significa que você precisa ter as versões 32bit e 64bit das bibliotecas do OpenGL instaladas no seu sistema. Veja a discussão no <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=897727" title="https://bugzilla.mozilla.org/show_bug.cgi?id=897727">bug 897727</a>.</p> - -<p>Existem duas formas de resolver esse problema:</p> - -<h4 id="1ª_Solucão_Ter_as_bibliotecas_OpenGL_nas_versões_32bit_e_64bit_instaladas_com_os_links_simbólicos_corretos">1ª Solucão: Ter as bibliotecas OpenGL nas versões 32bit e 64bit instaladas, com os links simbólicos corretos</h4> - -<p>Se sua distro tem pacotes <em>multilib</em> para OpenGl, você pode tentar instalá-las. Você deve, nesse caso, criar alguns links simbólicos manualmente.</p> - -<p>Por exemplo, há uma situação no Ubuntu 12.04 LTS x86-64. Nessa distribuição, o pacote <code>libgl1-mesa-dev</code> não pode ser instalado simultaneamente nas versões x86-64 e i386, mas você pode ter a seguinte combinação de pacotes simultaneamente instalados:</p> - -<pre class="bz_comment_text language-html" id="comment_text_12">sudo apt-get install libgl1-mesa-dev libglapi-mesa:i386 libgl1-mesa-glx:i386</pre> - -<p>Após executar esse comando, você ainda tem que criar alguns links simbólicos manualmente para que a compilação do emulador funcione:</p> - -<pre class="note language-html">sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so -sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</pre> - -<h4 id="2ª_Solução_aplicar_uma_correção_(patch)_para_que_o_emuladodr_somente_compile_em_64bit">2ª Solução: aplicar uma correção (<em>patch</em>) para que o emuladodr somente compile em 64bit</h4> - -<p>Aplicando <a href="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280" title="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280">essa correção</a> no sdk/ repositório git abaixo do repositório B2G. Isso fará com que o emulador B2G somente tentar compilar o emulador 64bit se você estiver num sistema 64bit, evitando assim quaisquer problemas relacionados com <code>multlib</code>. Dessa forma, o emulador de 32 bits não é usado em um sistema de 64 bits. Esta é a solução mais simples, até que, eventualmente, essa correção pare de funcionar.</p> - -<h3 id="Requisitos_de_instalação_de_64_bit">Requisitos de instalação de 64 bit</h3> - -<p>Essa seção lista os comandos que você precisa executar para instalar todos os requisitos necessários para compilar o Firefox OS.</p> - -<h4 id="Ubuntu_12.04_Linux_Mint_13_Debian_6">Ubuntu 12.04 / Linux Mint 13 / Debian 6</h4> - -<p>Execute os seguintes comandos no terminal:</p> - -<pre class="language-html">sudo apt-get updatesudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make zip</pre> - -<p>Se você vai compilar para o <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Developer_phone_guide/Flame">"Flame"</a> ou Nexus 5, execute o seguinte comando:</p> - -<pre class="language-html">sudo apt-get install libxml2-utils </pre> - -<p>E veja os comentários acima sobre problemas na compilação do emulador!</p> - -<h4 id="Ubuntu_12.10_Debian_7">Ubuntu 12.10 / Debian 7</h4> - -<p>Execute o seguinte comando no terminal:</p> - -<pre class="language-html">sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make zip</pre> - -<p>Adicionalmente aos problemas do emulador discutidos acima, o compilador tem como padrão o <code>gcc-4.7</code>, o que não permitirá a compilação gerando o seguinte erro:</p> - -<p>"<code>KeyedVector.h:193:31: error: indexOfKey was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"</code></p> - -<p>Para resolver esse problema, você deve especificar o <code>gcc 4.6</code> como o compilador padrão depois de baixar os arquivos fontes do B2G. Leia <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">Modificando o compilador padrão</a> para descobrir como fazer isso.</p> - -<p class="note">Em uma recente instalação Ubuntu 12.10, você receberá um erro relacionado com dependências não encontradas para <code>ia32-libs</code>. Os comandos a seguir resolvem esse problema:</p> - -<pre class="language-html">sudo dpkg --add-architecture i386 -sudo apt-get update -sudo apt-get install ia32-libs</pre> - -<h4 id="Ubuntu_13.04">Ubuntu 13.04</h4> - -<p>Execute o seguinte comando no terminal:</p> - -<pre class="language-html">sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip</pre> - -<p>Adicionalmente aos problemas do emulador discutidos acima, o compilador tem como padrão o <code>gcc-4.7</code>, o que não permitirá a compilação gerando o seguinte erro:</p> - -<p>"<code>KeyedVector.h:193:31: error: indexOfKey was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"</code></p> - -<p>Para resolver esse problema, você deve especificar o <code>gcc 4.6</code> como o compilador padrão depois de baixar os arquivos fontes do B2G. Leia <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">Modificando o compilador padrão</a> para descobrir como fazer isso.</p> - -<h4 id="Ubuntu_13.10">Ubuntu 13.10</h4> - -<p>Com o Ubuntu 13.10, os pacotes multiarquitetura são agora a principal maneira de suportar diferentes arquiteturas (por exemplo, versão 32bit numa instalação 64bit). Você deve informar ao sistema que deseja também suportar pacotes 32bit:</p> - -<pre class="language-html">sudo dpkg --add-architecture i386 -sudo apt-get update</pre> - -<p>Uma vez que você executou esse comando, você pode instalar os pacotes necessários:</p> - -<pre class="language-html" style="font-family: 'Open Sans', sans-serif; line-height: 21px;"><code>sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip libxml2-utils - -sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 1 - -sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 2 - -sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 1 - -sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 2 - -sudo update-alternatives --set gcc "/usr/bin/gcc-4.6" - -sudo update-alternatives --set g++ "/usr/bin/g++-4.6" </code></pre> - -<h4 id="sect1"> </h4> - -<h4 id="Ubuntu_14.04">Ubuntu 14.04</h4> - -<p>Siga as mesmas instruções do Ubuntu 13.10.</p> - -<h4 id="Fedora_1920">Fedora 19/20</h4> - -<p>Execute o seguinte comando no terminal:</p> - -<pre class="note language-html">sudo yum install autoconf213 bison bzip2 ccache curl flex gawk gcc-c++ git glibc-devel glibc-static libstdc++-static libX11-devel make mesa-libGL-devel ncurses-devel patch zlib-devel ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 glibc-devel.i686 libstdc++.i686 libXrandr.i686 zip perl-Digest-SHA wget</pre> - -<p>O projeto deve compilar corretamente com o compilador padrão do Fedora, mas se ocorrer algum erro de compilação você deve instalar o GCC 4.6.x:</p> - -<ul> - <li><a href="http://people.mozilla.org/%7Egsvelto/gcc-4.6.4-fc19.tar.xz">GCC 4.6.x pré-compilado para o Fedora 19/20</a></li> -</ul> - -<p>Baixe o tarball e instale-o no diretório <code>/opt,</code> com o seguinte comando no Fedora 19/20:</p> - -<pre class="note language-html">curl -O http://people.mozilla.org/~gsvelto/gcc-4.6.4-fc19.tar.xz -sudo tar -x -a -C /opt -f gcc-4.6.4-fc19.tar.xz -</pre> - -<p>Para usar o GCC 4.6.x como o compilador padrão você deve configurá-lo explicitamente depois de baixar os fontes do B2G: leia o artigo <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">Alterando o compilador padrão</a> para saber como fazer isso.</p> - -<h4 id="Arch_Linux"><strong>Arch Linux</strong></h4> - -<p>Execute o seguinte comando no terminal:</p> - -<pre class="note language-html">sudo <span><span>pacman -S --needed </span></span><span><span>alsa-lib </span></span><span><span>autoconf2.13</span></span><span><span> bison</span></span><span><span> ccache</span></span><span><span> </span></span><span><span>curl firefox </span></span><span><span>flex </span></span><span><span>gcc-multilib </span></span><span><span>git </span></span><span><span>gperf </span></span><span><span>libnotify </span></span><span><span>libxt </span></span><span><span>libx11 mesa multilib-devel </span></span><span><span>wget wireless_tools </span></span><span><span>yasm</span></span><span><span> zip </span></span><span><span>lib32-mesa </span></span>lib32-mesa-libgl <span><span>lib32-ncurses lib32-readline</span></span><span><span> </span></span><span><span>lib32-zlib</span></span></pre> - -<p>Para instalar os pacotes <code>lib32-*</code> você precisa um repositóririo <code>multilib</code> habilitado.</p> - -<p>B2G <a href="https://developer.mozilla.org/pt-BR/docs/Mozilla/Firefox_OS/Compilando_O_Firefox_OS">somente pode ser compilado com gcc 4.6.4</a>, e como o Arch Linux possui softwares com tecnologia de ponta é necessário instalar <a href="https://aur.archlinux.org/packages/gcc46-multilib">gcc46-multilib from AUR</a>. Observe que deve-se editar o arquivo PKGBUILD e adicionar <code>staticlibs</code> ao <em>array</em> <code>options</code>, do contrário o gcc não conseguirá compilar o B2G and apresentará o erro: <code>cannot find -lgcc</code>. Será necessário também, incluir as seguintes linhas ao arquivo <code>.userconfig</code>:</p> - -<pre class="language-html">export CC=gcc-4.6.4 -export CXX=g++-4.6.4</pre> - -<p>O Arch Linux utiliza como padrão o Python3. Mas você deverá forçar o uso do Python2. Você pode fazer isso criando um link simbólico, mas não é recomendável por ser propenso a erros. Mesmo porque desabilita o uso do Python 3 se estiver instalado no sistema. Uma melhor forma é usar<code> virtualenv</code>/<code>virtualenvwrapper</code>:</p> - -<pre class="language-html"><span><span>sudo pacman -S python-virtualenvwrapper -</span></span>source /usr/bin/virtualenvwrapper.sh -mkvirtualenv -p `which python2` firefoxos -workon firefoxos -</pre> - -<p>Android exige que seja utilizado make 3.81 ou make 3.82 ou invés da versão 4.0. Você pode baixar o <a href="https://aur.archlinux.org/packages/make-3.81/">make 3.81 do AUR</a>. Isso vai instalar o binário <code>make-3.81</code> no seu <em>path</em>, você precisa criar um link simbólico chamado makem numa localização no início da variável <code>PATH</code> para compilar a versão correta.</p> - -<pre class="language-html">mkdir -p ~/bin -ln -s `which make-3.81` ~/bin/make -export PATH=~/bin:$PATH -</pre> - -<p>Android também necessita Java6 SDK e Arch somente tem Java7. Você pode baixar o <a href="http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR">Java 6 SDK</a> e instalá-lo manualmente. Você precisa colocá-lo no seu <em>path</em>.</p> - -<pre class="language-html">cp ~/Downloads/jdk-6u45-linux-x64.bin /opt -su -cd /opt -chmod +x jdk-6u45-linux-x64.bin -./jdk-6u45-linux-x64.bin -exit -ln -s /opt/jdk1.6.0_45/bin/java ~/bin/java -</pre> - -<h4 id="Gentoo_Linux"><strong>Gentoo Linux</strong></h4> - -<h5 id="Installing_ccache">Installing ccache</h5> - -<p>É necessário instalar <strong><a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=3#doc_chap3">ccache</a></strong>, uma ferramenta para fazer cache de compilações parciais.</p> - -<pre class="language-html"><span><span># emerge -av ccache</span></span> -</pre> - -<p>Devido ao fato de ccache ser conhecido como frequente causador de problemas, Gentoo encoraja a usá-lo explicitamente e com moderação.</p> - -<p>Para habilitar o uso do ccache, na etapa subsequente desse guia onde o script <code>./build.sh</code> é chamado, os usuários do Gentoo devem executar o comando com o <em>path</em> explicitamente estendido, ou seja:</p> - -<pre class="language-html"><span><span><strong>PATH=/usr/lib64/ccache/bin:$PATH</strong> ./build.sh</span></span> -</pre> - -<h5 id="Gerando_imagens_de_partições">Gerando imagens de partições</h5> - -<p>Se você está compilando o B2G para um hardware físico real, então em algum momento você pode querer gerar algumas imagens de partições para instalar no seu dispositivo. (Por exemplo, para restaurar os arquivos de <em>backup</em> do aparelho via o utilitário <em><strong>fastboot</strong></em>).</p> - -<p>A imagem do sistema de arquivos usada nesse caso é YAFFS2 (Yet Another Filesystem 2). Gentoo tem suporte para o pacote mais recente do <code>yaffs2-utils </code>(ou seja, git HEAD).</p> - -<div class="note"> -<p><strong>Nota:</strong> Você necessitará correções do kernel se for montar imagens YAFFS2, mas não é realmente exigido uma vez que é possível desconstruir e recompilar.</p> -</div> - -<pre class="language-html"># emerge --autounmask-write yaffs2-utils; etc-update; emerge -av yaffs2-utils</pre> - -<p><span id="result_box" lang="pt"><span class="hps">Para gerar</span> <span class="hps">essa</span> <span class="hps">imagem, basta</span> <span class="hps">mudar para o</span> <span class="hps">diretório principal da árvore do</span> <span class="hps">sistema de arquivos</span> <span class="hps">que você deseja</span> <span class="hps">empacotar</span> <span class="hps">e executar</span> <span class="hps">esse comando</span><span>:</span></span></p> - -<pre class="language-html">mkyaffs2image system/ system.img</pre> - -<h2 id="Requisitos_para_Mac_OS_X"><a name="Requirements_for_Mac_OS_X">Requisitos para Mac OS X</a></h2> - -<p>Para compilar o Firefox OS no OS X, existe uma série de pré-requisitos que deve ser atendidos que serão detalhados a seguir. Também serão discutidos erros comuns <span id="result_box" lang="pt"><span class="hps">que você pode</span> <span class="hps">se deparar</span> <span class="hps">em situações particulares</span><span>,</span> <span class="hps">e</span> <span class="hps">suas soluções</span><span class="hps">.</span></span></p> - -<div class="note"> -<p><strong>Nota: Configuração e Compilação para Keon NÃO FUNCIONA no Mac. </strong>Para isso é necessário utilizar o Linux para compilar o B2G para esse aparelho.</p> -</div> - -<h3 id="Compatibilidade_de_versões">Compatibilidade de versões</h3> - -<p>O XCode 4.2 não está mais disponível para OS X 10.9 (também conhecido como "Mavericks"), então você pode se surpreender ao encontrar falhas ao compilar o Firefox OS. Basicamente não conseguir compilar emulador ICS no Mavericks e superiores e também não compilar flatfish com a série do XCode 5.x.</p> - -<table class="standard-table"> - <caption>Compatibilidade de versões do OS X 10.9.x</caption> - <tbody> - <tr> - <td> </td> - <td>emulador (ICS)</td> - <td>emulador-jb (JB-4.2)</td> - <td>emulador-kk (KitKat-4.4)</td> - <td>flatfish (JB-4.2)</td> - </tr> - <tr> - <td>XCode 4.3.3</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">X</td> - </tr> - <tr> - <td>XCode 4.4.1</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - </tr> - <tr> - <td>XCode 4.5.2</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - </tr> - <tr> - <td>XCode 4.6.3</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - </tr> - <tr> - <td>XCode 5.0.2</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">X</td> - </tr> - <tr> - <td>XCode 5.1.1</td> - <td style="text-align: center;">X</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">O</td> - <td style="text-align: center;">X</td> - </tr> - </tbody> -</table> - -<ol> - <li>Você deve configurar a variável de ambiente BUILD_MAC_SDK_EXPERIMENTAL=1 exportada para compilar o flatfish.</li> -</ol> - -<h3 id="Instalação_do_Utilitário_de_Linha_de_Comando"><strong>Instalação do Utilitário de Linha de Comando </strong></h3> - -<p>Para compilar o Firefox OS no OS X você precisa instalar o Utilitário de Linha de Comando do XCode. É possível baixar apenas o Utilitário na <a href="https://developer.apple.com/downloads/" title="https://developer.apple.com/downloads/">página de desenvolvedores da Apple</a> para sua versão do OS X, ou <a class="external" href="http://itunes.apple.com/us/app/xcode/id497799835?mt=12" style="line-height: 1.572;" title="http://itunes.apple.com/us/app/xcode/id497799835?mt=12">instalar</a> a suíte completa do XCode pelo Mac AppStore.</p> - -<p>Xcode 4.3.1 (OS X 10.7 "Lion") e versões posteriores como a 4.4.1+ (that is, OS X 10.8 "Mountain Lion"), não vêm com o Utilitário de Linha de Comando. Quando você instalar o XCode, certifique-se de ir em Preferências, Painel Downloads e instala "Command Line Utilities". Deve ter pelo menos 20GB de espaço disponível no seu disco.</p> - -<p><img alt="Screenshot of Xcode Downloads Command Line Tools" src="https://developer.mozilla.org/files/4557/xcode_downloads_command_line_tools.png" style="height: 528px; width: 750px;"></p> - -<div class="note"><strong>Nota: </strong>O emulador do Firefox OS exige pelo menos um processador Core 2 Duo, ou seja, um sistema compatível com OS X 10.7 "Lion". Na verdade você não precisa rodar no Lion, basta ser compatível. Assim, você pode compilar o Firefox OS em diversos Macs mais antigos.</div> - -<div class="note"> -<p><strong>Nota:</strong> O XCode 4.2.x ou anteriores não é compatível com OS X 10.9 ou superior, e XCode 4.3.x não possui plataforma SDK para 10.8. Instale uma nova versão. Se você está trabalhando no flatfish, certifique-se de ter disponível XCode 4.4, 4.5, ou 4.6.</p> -</div> - -<h3 id="Instalando_o_Bootstrap_do_Firefox_OS_no_Mac">Instalando o Bootstrap do Firefox OS no Mac</h3> - -<pre class="brush: bash">curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash</pre> - -<p>Rode o comando acima no terminal. Isso vai baixar e rodar o script do bootstrap e certificar-se de que o seu ambiente atende todos os pré-requisitos.</p> - -<p>Isso vai checar se você possui todas as coisas que você precisa para compilar o emulador, e ao longo do script solicitará permissão para instalar algo que não tenha encontrado.</p> - -<p>Os itens que o script irá checar se estão instalados na sua máquina são os seguintes:</p> - -<ul> - <li><code>git</code></li> - <li><code>gpg</code></li> - <li><code>ccache</code></li> - <li><code>yasm</code></li> - <li><code>autoconf-213</code></li> - <li><code>gcc-4.6</code></li> - <li><code>homebrew</code></li> -</ul> - -<div> -<h4 id="Disputas_do_Xcode"><strong>Disputas do Xcode</strong></h4> - -<p>Se você já tiver atualizado para o Xcode 4.4 + e aparecer a mensagem de que o Xcode está desatualizado, verificar o caminho (<em>path</em>) Xcode com:</p> - -<pre>xcode-select -print-path</pre> - -<p>Se o resultado mostrar <code>/Developer</code> você pode alterar o caminho (<em>path</em>) com:</p> - -<pre>sudo xcode-select -switch /Applications/Xcode.app</pre> - -<h4 id="Tornando_o_OS_X_10.6_SDK_disponível">Tornando o OS X 10.6 SDK disponível</h4> - -<p>O SDK necessário está disponível em:</p> - -<pre class="language-html">/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</pre> - -<p>Se não for encontrado você precisa extrair e copiá-lo do Xcode 4.3. Para fazer isso:</p> - -<ol> - <li>Baixe o arquivo XCode 4.3 .dmg file do portal <a class="external external-icon" href="https://developer.apple.com/downloads/index.action">Apple Developer</a> (você vai precisar de uma <a href="https://developer.apple.com/register/index.action" title="https://developer.apple.com/register/index.action">conta de desenvolvedor Apple</a>).</li> - <li>Baixe o utilitário <a href="http://www.charlessoft.com/" title="http://www.charlessoft.com/">Pacifist</a> e use-o para extrai o SDK 10.6 SDK do arquivo XCode 4.3 .dmg. Clique no botão "Open Package", encontre do SDK procurando pela string 10.6 no campo de procura, selecione o diretório "MacOSX10.6.sdk" e extraia-o para um local adequado com o botão "Extract To...".</li> - <li>Adicione um link simbólico no diretório <code>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</code> para o local do 10.6 SDK. Por exemplo, se você copiar o 10.6 SDK no seu desktop o comando para criar o link simbólico será:</li> -</ol> - -<pre class="language-html">ln -s /Users/<em><yourusername></em>/Desktop/MacOSX10.6.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</pre> - -<div class="note"> -<p><strong>Nota:</strong> Isso não é necessário no OS X 10.9 ou superior, uma vez que 10.6 SDK é para o ICS e ICS não suporta OS X 10.9.</p> -</div> - -<h3 id="Atenção_com_o_sistema_de_arquivos_do_Mac_Não_é_case_sensitivity">Atenção com o sistema de arquivos do Mac: <strong>Não é <em>case sensitivity</em></strong></h3> - -<p>Como padrão, o OS X vem com o sistema de arquivos <em>case insensitive</em><em>. </em>Isso é um problema porque o kernel do Linux tem diversos arquivos com o mesmo nome porém com diferenças nas maiúsculas e minúsculas. Por exemplo, os arquivos cabeçalhos <code>xt_CONNMARK.h</code> e <code>xt_connmark.h</code> são distintos. Essa situação causa diversos transtornos.</p> - -<p>Em muitos casos você compila e aparentemente tudo correu bem, mas você pode encontrar o seguinte erro:</p> - -<pre class="language-html"><span class="quote">ERROR: You have uncommited changes in kernel -You may force overwriting these changes -with |source build/envsetup.sh force| - -ERROR: Patching of kernel/ failed.</span></pre> - -<p><span class="quote">Veja o <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867259" title="https://bugzilla.mozilla.org/show_bug.cgi?id=867259">bug 867259</a></span> com discussões sobre o tema e possíveis soluções para esse problema.</p> - -<p>Uma outra forma de compilar sem problema num sistema de arquivos <em>case sensitive</em> é criar uma imagem de disco separada com o <em>case sensitivity </em>habilitado. Pode-se usar a aplicação Utilitário de Disco ou a partir da linha de comando:</p> - -<pre class="language-html">hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.sparseimage</pre> - -<p>Montar o drive com:</p> - -<pre class="language-html">open ~/firefoxos.sparseimage</pre> - -<p>Acessar o drive montado com:</p> - -<pre class="language-html">cd /Volumes/firefoxos/</pre> - -<p>Feito isso é possível baixar o código e compilar a partir desse diretório sem se preocupar com problemas decorrentes do <em>case sensivity</em>.</p> - -<h3 id="Mountain_Lion">Mountain Lion</h3> - -<div> -<p>Se você estiver compilando no OS X 10.8 "Mountain Lion" (Xcode 4.4.1 ou posterior) e encontrar o seguinte erro:</p> - -<pre style="font-size: 14px;">external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)</pre> -Edite o arquivo: <code style="font-size: 14px;">B2G/external/qemu/makefile.android</code> e adicione na linha 78: - -<pre style="font-size: 14px;">MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288 #/* B2G_fix: not finding M_PI constant */ -</pre> - -<div> -<h3 id="Pegadinha_do_homebrew_no_Mountain_Lion">Pegadinha do homebrew no Mountain Lion</h3> -</div> - -<div>Se você estiver no Mountain Lion e receber um erro durante a instalação de dependências no homebrew como:</div> -</div> -</div> - -<div> -<pre>clang: error: unable to execute command: Segmentation fault: 11</pre> -... tente reinstalar as dependências manualmente adicionando o parâmetro --use-gcc, por exemplo: - -<pre>brew install mpfr --use-gcc</pre> -</div> - -<h3 id="Samsung_Galaxy_S2">Samsung Galaxy S2</h3> - -<p>Se você planeja compilar para o Samsung Galaxy S2, será necessário instalar o aplicativo heimdall. Veja {{ anch("Instalando heimdall") }} para maiores detalhes. Esse procedimento não é realizado pelo script bootstrap!</p> - -<div class="note"><strong>Note:</strong> Se você tem o aplicativo <a class="external" href="http://www.samsung.com/us/kies/" title="http://www.samsung.com/us/kies/">Samsung Kies</a> instalado na sua máquina, que é utilizado para gerenciar o conteúdo de muitos telefones Samsung, você precisará removê-lo antes de copiar o Firefox OS no seu telefone. Você pode usar o aplicativo padrão de remoção de programas no Windows. No Mac, a imagem de instalação do Kies tem um aplicativo que remove completamente o Kies do seu computador. A cópia do Sistema (Flashing)<strong> não funcionará</strong> se o Kies estiver instalado. Se você esquecer de remover o Kies, o procedimento de compilação detectará e o avisará para desinstalá-lo. Observer também que o utilitário de desinstalação não remove corretamente o diretório <code>~/Library/Application Support/.FUS</code>, e deixa uma referência para um utilitário na lista de inicialização do usuário. Será necessário remover isso manualmente.</div> - -<h3 class="note" id="Como_consertar_a_dependência_da_biblioteca_libmpc">Como consertar a dependência da biblioteca <code>libmpc</code></h3> - -<p>O gcc 4.6 foi compilado com libmpc 0.9. Se você usou o homebrew para atualizar os pacotes o <code>libmpc</code> foi atualizado para a versão 1.0, mas o homebrew não recompila o gcc 4.6 depois da atualização da biblioteca. Assim, você precisa criar um link simbólico para fazer as coisas funcionarem novamente dessa forma:</p> - -<pre>cd /usr/local/lib/ -ln -s libmpc.3.dylib libmpc.2.dylib</pre> - -<h3 id="Opcional_Instalação_do_HAX">Opcional: Instalação do HAX</h3> - -<p>A Intel fornece um driver especial que permite que o emulador B2G execute seu código nativamente no seu Mac ao invés de ser emulado, quando você usa o emulador x86. Se vocie deseja usá-lo você pode <a class="external" href="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/" title="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/">baixar e instalar nesse link</a>. Não é obrigatório, mas pode melhorar a performance e estabilidade.</p> - -<h2 class="note" id="Instalação_do_adb">Instalação do adb</h2> - -<p>O processo de compilação necessita copiar BLOBS (<strong>B</strong>inary <strong>L</strong>arge <strong>OB</strong>ject<strong>S</strong>) da instalação do Android para o telefone antes de compilar o B2G (a menos, é claro, que você esteja utilizando o emulador). Para isso você necessita do <code>adb</code>, o <em>Android Debug Bridge</em>. Nosso arigo <a href="https://developer.mozilla.org/pt-BR/Firefox_OS/Debugging/Installing_ADB">Instalando o ADB</a> explica como instalar o <code>adb</code>.</p> - -<div class="warning"> -<div class="warning"> -<p>Observação para quando você for usar o adb: o adb necessita que a tela esteja desbloqueada para você ver o telefone (ao menos nas versões mais recentes do Firefox OS). Você provavelmente irá preferir desabilitar o bloqueio de tela (nós veremos mais tarde como fazer isso nas instruções de compilação).</p> -</div> -</div> - -<h2 class="note" id="Instalação_do_heimdall">Instalação do heimdall</h2> - -<p>Heimdall é um utilitério para copiar (<em>flashing</em>) o Samsung Galaxy S2. É usado ppara substituir o conteúdo do telefone pelo Firefox OS bem como copiar (<em>flash</em>) versões atualizadas do B2G e Gaia para o aparelho. Você precisará dele se desejar instalar o Firefox OS no Galaxy S2. <strong>Não</strong> é necessário para outro aparelho.</p> - -<p>Para outros aparelhos nós compilamos e usamos o utilitário <code>fastboot</code>.</p> - -<div class="note"><strong>Nota:</strong> Novamente, é importante frisar que isso <strong>somente é necessário para instalação do Firefox OS no Samsung Galaxy S2</strong>.</div> - -<p>Existem duas formas de instalar o heimdall:</p> - -<ul> - <li><a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">Baixar o código</a> no GitHub e compilar você mesmo.</li> - <li>Usar um gerenciador de pacote para instalá-lo. - <ul> - <li>No Linux: <code>sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev</code></li> - <li>No Mac, basta <a class="link-https" href="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg" title="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg">baixar o instalador</a> e usá-lo.</li> - </ul> - </li> -</ul> - -<h2 id="Configuração_do_ccache">Configuração do ccache</h2> - -<p>O processo de compilação do B2G usa ccache. O tamanho de cache padrão para o ccache é 1GB, mas o B2G satura esse falor facilmente, então 10GB é o valor recomendado. Você pode configurar seu cache executando o seguinte comando no terminal:</p> - -<pre class="language-html"><code class="language-html">$ ccache --max-size 10GB</code></pre> - -<h2 id="Para_o_Linux_configure_a_regra_do_serviço_udev_para_seu_telefone"><a name="udev_rule"></a>Para o Linux: configure a regra do serviço <em>udev</em> para seu telefone</h2> - -<div class="note"> -<p><strong>Nota</strong>: Essa seção é específica para Linux; OS X tem as permissões de acesso ao dispositivo já configuradas.</p> -</div> - -<p>A seguir, você precisa configurar a regra udev para o seu telefone.</p> - -<p>Você consegue a <a href="https://developer.android.com/tools/device.html#VendorIds">identificação USB do fabricante</a> executando <code>lsusb</code> com o seu telefone conectado para porta USB. Alguns exemplos de <em>USB vendor ID</em>: Google <code>18d1,</code> Samsung <code>04e8</code>, ZTE <code>19d2</code>, Geeksphone/Qualcomm <code>05c6</code>.</p> - -<p>Com o código, inclua essa linha no arquivo <code>/etc/udev/rules.d/android.rules</code> (substituindo <code>XXXX</code> com o ID do seu aparelho):</p> - -<pre class="language-html">SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0666", GROUP="plugdev"</pre> - -<p>Usando o ZTE como exemplo, o conteúdo no arquivo <code>android.rules</code> será:</p> - -<pre class="language-html" style="font-size: 14px;">SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"</pre> - -<p>No Firefox Flame, deve ser</p> - -<pre class="language-html" style="font-size: 14px;">S<code>UBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev</code>"</pre> - -<p>Por favor, observe que o dispositivo fastboot device (que é usado quando você faz o flashing) deve ter uma Identificação do fabricante, e que você deve ter uma regra para ele. Por exemplo, o Firefox Flame também precisa do Identificador do Fabricante Google.</p> - -<pre class="language-html" style="font-size: 14px;">S<code>UBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev</code>"</pre> - -<div class="note"> -<p><span style="line-height: 1.572;">Se o arquivo não existir, crie-o. O diretório <code>rules.d</code> normalmente possui permissão apenas de leitura como padrão, então você deve usar <code>chmod</code> para alterar a permissão do diretório, do arquivo ou ambos.</span></p> -</div> - -<p><span style="line-height: 1.572;">Uma vez editado e salvo, altere a permissão do arquivo:</span></p> - -<pre class="language-html">sudo chmod a+r /etc/udev/rules.d/android.rules -</pre> - -<p>Agora que a regra foi alterada, reinicie o serviço <code>udev</code>.\</p> - -<p><strong>Ubuntu</strong></p> - -<p><code>sudo service udev restart</code></p> - -<p><strong>Fedora 20</strong></p> - -<p><code>sudo systemctl restart systemd-udevd.service</code></p> - -<p>Por último, desconecte o cabo USB e <strong>não reconecte</strong> até habilitar o modo de depuração remota no aparelho.</p> - -<h2 id="Habilitando_a_depuração_remota">Habilitando a depuração remota</h2> - -<p>Antes de conectar o telefone à porta USB, coloque o aparelho no modo desenvolvedor. Isso possibilita depurar e copiar o sistema operacional para o telefone (<em>flash</em>). Para habilitar o modo desenvolvedor habilite <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Developer_settings#Remote_debugging">Depuração Remota </a> em <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Developer_settings">Configurações de Desenvolvedor</a> (nas versões antigas era chamado Modo Desenvolvedor). Uma vez que a opção esteja marcada, a depuração remota está habilitada e você está pronto para seguir adiante.</p> - -<p>Feito isso, conecte seu telefone ao computador usando o cabo USB (se antes foi criada a regra para o <code>udev</code>, o serviço detectará o telefone e criará um nó do dispositivo com as permissões corretas). Nesse momento é possível checar se o dispositivo foi reconhecido através do comando <code>adb devices</code>. Se tudo estiver funcionando perfeitamente, você verá algo semelhante a isso (o exemplo a seguir é de um Geeksphone Keon):</p> - -<pre class="language-html" style="font-size: 14px;">$ adb devices -List of devices attached -full_keon device</pre> - -<p>Se o telefone não aparecer como o esperado, verifique se o nome do arquivo e o script estão corretos (veja seção anterior), então reinicie o computador e digite o comando novamente. Observe também que se o dispositivo utiliza <em>fastboot</em>, o <em>bootloader </em>pode identificar como um ID do fabricante diferente <span id="result_box" lang="pt"><span class="hps"> do que</span> <span class="hps">você vê quando</span> <span class="hps">o dispositivo é inicializado</span> <span class="hps">normalmente.</span></span></p> - -<h2 id="Faça_uma_cópia_de_segurança_da_partição_de_sistema_do_telefone"><a name="Backup_the_phone_system_partition"></a>Faça uma cópia de segurança da partição de sistema do telefone</h2> - -<div class="note"> -<p><strong>Nota</strong>: Você deve fazer isso antes de compilar seu dispositivo caso você nnao tenha uma cópia de segurança do sistema. Algumas bibliotecas são referenciadas em tempo de compilação, essas bibliotecas podem ser proprietárias e nós não podemos fornecer seu código fonte.</p> -</div> - -<p>É altamente recomendado que você tenha uma cópia de segurança completa da partição do sistema Android do seu telefone.</p> - -<p>Você pode usar a cópia dos BLOBs do Android caso a árvore do B2G seja apagada. Para fazer isso, execute:</p> - -<pre class="language-html">adb pull /system <diretório de backup>/system -</pre> - -<p>Dependendo do telefone, pode ser necessário copiar os diretórios <code>/data</code> e/ou <code>/vendor</code>:</p> - -<pre class="language-html">adb pull /data <diretório de backup>/data -adb pull /vendor <diretório de backup>/vendor -</pre> - -<p>Se os comandos acima falharem com a mensagem "<em>insufficient permission</em>" tente o seguinte:</p> - -<ul> - <li>pare e reinicie o serviço adb, ou se isso não funcionar,</li> - <li>certifique-se de que você concedeu permissões de <em>root</em> à ferramenta <code>adb</code> na ROM customizada (por exemplo, em CyanogenMod, altere <em>Settings > System > Developer Options > Root Access</em> to <em>Apps and ADB</em> or <em>ADB only</em>).</li> - <li>Verifique se você configurou a regra do serviço udev corretamente (veja {{ anch("Para o Linux: configure a regra do serviço udev para seu telefone") }}.</li> -</ul> - -<h2 id="Para_a_próxima_etapa">Para a próxima etapa</h2> - -<p>Nesse ponto você deve estar preparado para <a href="/pt-BR/docs/Mozilla/Firefox_OS/Preparando_sua_primeira_compilacao_do_B2G" title="en-US/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build">sua primeira compilação do Firefox OS</a>!</p> |
