mozilla
Os seus resultados da pesquisa

    Visão Geral da compilação do Firefox OS

    A compilação e instalação do Firefox OS exige muito tempo, banda de internet e poder computacional. Infelizmente, ao longo do caminho, coisas podem dar errado. Essa página descreve os objetivos do processo de compilação e o passo-a-passo do processo a fim de ajudar os usuários. Detalhes de cada etapa são detalhadas ao clicar nos links ao longo do texto.

    Nota: O processo de compilação do Firefox OS possui diversas referências a 'B2G' ou 'Boot2Gecko'. 'Boot2Gecko' era o nome original do projeto Firefox OS.

    O objetivo da compilação: quatro arquivos de imagem ('image files')

    O objetivo principal do processo de compilação são os quatro arquivos que serão copiados num dispositivo Firefox OS.

    boot.img

    O kernel Linux e uma imagem de sistema de arquivos raiz. Esse último oferecendo um conjunto de ferramentas básicas do Unix.

    system.img

    A parte central do Firefox OS, incluindo partes do Gonk,

    The core of Firefox OS including parts of Gonk, a conexão com o Gecko e o executável b2g.

    userdata.img

    O perfil Gecko do usuário e as aplicações web do Gaia para o dispositivo.

    recovery.img

    Um kernel Linux e uma imagem de sistema de arquivos raiz com uma ferramenta simples que possibilite aos usuários recuperar o sistema após uma instalação com erros.

    Uma vez que essas quatro imagens tenham sido criadas, elas podem ser transferidas ao dispositivo.

    O Firefox OS é compilado sobre o AOSP (Android Open Source Project). As ferramentas AOSP adb e fastboot são formas poderosas de acessar e manipular o dispositivo. O comando adb reboot-bootloader pode reiniciar um dispositivo conectado, permitindo ao usuário interromper o processo na fase inicial do processo onde o comando fastboot flash $partition $image pode ser usado para copiar uma imagem para o dispositivo.

    A imagem de inicialização

    A imagem de inicialização (boot.img) é uma combinação do kernel Linux e uma partição inicial que provê softwares utilitários e scripts de inicialização. Esses scripts são copiados na memória do dispositivo para um uso mais eficiente, e são chamados de "ramdisk". O arquivo boot.img será copiado na partição 'boot' do dispositivo e o conteúdo da ramdisk será acessível a partir diretório raiz em tempo de execuçã, bem como usando adb shell.

    A imagem de inicialização também estabelece as permissões do usuário root no arquivo default.prop localizado no diretório raiz.

    Também é possível modificar as imagens de inicialização existentes verificando o arquivo,  dividindo o arquivo entre o kernel e a imagem da ramdisk, modificando seu conteúdo, remontando a imagem da ramdisk e finalmente recompilando o arquivo boot.img. Veja, por exemplo a página Alcatel One Touch Fire Hacking (Mini) Guide.

    Imagens de inicialização podem ser testadas antes de serem definitivamente instaladas. O dispositivo pode ser inicializado e ser interrompido durante a carga. Para inicializar o dispositivo com a Imagem a ser testada sem instalá-la utilize o comando fastboot boot /some/path/to/boot.img.

    A imagem do sistema

    A imagem do sistema (system.img) possui o núcleo principal do Firefox OS:

    • Gonk: componentes de baixo nível do sistema operacional
    • Gecko: adaptação dos motores de layout HTML e JavaScript do Firefox
    • B2G: o núcelo dos processos de runtime do sistema operacional

    Veja o guia a plataforma Firefox OS para mais informações sobre a arquitetura do Firefox OS.

    A imagem do sistema será copiada para a partição system do dispositivo e acessadas no diretório /system/ quando o sistema de arquivos é acessado em tempo de execução.

    Nota: A imagem do sistema também fornece blobs (Binary Large OBject) que pode ser usado pelo dispositivo, como por exemplo o blob RIL (Radio Interface Layer) que controla o rádio do dispositivo.

    A imagem de dados do usuário

    A imagem de dados do usuário (userdata.img) fornece as aplicações Gaia carregadas em tempo de execução.

    A imagem de dados do usuário será copiada para a partição userdata no dispositivo e seu conteúdo pode ser acessado no diretório /data/ quando o sistema de arquivos do dispositivo é acessado em tempo de execução. O diretório /data/b2g/ contem o perfil Mozila Gecko do usuário do dispositivo enquanto que o diretório /data/local/webapps/ contém os arquivos executáveis das aplicações web disponíveis para o usuário.

    The User Data Image will be copied to the userdata partition on the device and the contents will be visible in the /data/ directory when the device filesystem is accessed at runtime. Notably the /data/b2g/ directory contains the Mozilla Gecko profile of the device user while the /data/local/webapps/ directory contains the actual web applications available to the user.

    A imagem de recuperação

    A imagem de recuperacão (recovery.img) contém o mesmo kernel e um ramdisk similar ao existente na partição da Imagem de inicializção (Boot Image). Porém, a imagem de recuperação utiliza um script de inicialização diferente, que apresenta ao usuário um conjunto de comandos de recuperação acessíveis pelos botões externos do dispositivo.

    A imagem de recuperação é copiada na partição recovery do dispositivo, que por sua vez não é montada no sistema de arquivos durante sua execução normal.

    The Recovery Image will be copied to the recovery partition on the device, which is not mounted onto the filesystem at regular runtime.

    O processo de compilação: preparacão, configuração, compilação e instalação

    O processo completo de compilação e instalação do Firefox OS é composto de quatro passos:

    Preparação Obter todos os programas a serem utilizados no processo de compilação, bem como seus compiladores e bibliotecas.
    Configuração Baixar o código fonte que será compilado e criar o arquivo .configure que define as variáveis de ambiente como os caminhos e outros valores a serem utilizados na compilação.
    Compilação Compilar o perfil do usuário do Gecko e as aplicações web do Gaia para o dispositivo.
    Instalação Instalar os arquivos no dispositivo.

     

    Preparação

    A preparação inicial deve ser realizada para garantir que o computador a ser utilizado no processo de compilação tenha todo o software necessário como o compilador e as demais ferramentas de compilação.

    Essa etapa pode ser feita manualmente ou utilizando um script. Maiores detalhes na página Pré requisitos para compilar o Firefox OS.

    Nota: Em máquinas UNIX e UNIX-like, para checar a existência do software pode ser utilizado o comando which com o nome do programa como parâmetro.

    Configuração

    Na realidade, o processo de compilação inicia-se com a obtenção de uma cópia do software Firefox OS (ou B2G), usualmente com a criação de um clone com a ferramenta Git a partir do projeto B2G. A configuração da compilação compreende tanto baixar as cópias de todo o código fonte que será compilado como criar o arquivo de configuração .config, que especifica as variáveis ​de ambiente a serem utilizadas no processo de compilação.

    A configuração é executada com o script config.sh. A página Preparando sua primeira compilação do B2G possuí detalhes desse proceso.

    O script de configuracão necessita de um parâmetro que especifica o tipo de dispositivo para o qual o B2G será compilado. A codificação desse parâmetro é vinculada à arquitetura da CPU utilizada e não ao nome específico do dispositivo. Atualmente não há como estabelecer qual compilação funciona para cada dispositivo. Uma lista de códigos disponíveis pode se encontrada nessa página.

    A etapa de configuração também utiliza a ferramenta repo do AOSP (Androis Open Source Project) para baixar (ou atualizar) a cópia de todo o código utilizado na compilação. Essas cópias são armazenadas no diretório .repo/projects. Devido a essa atividade a etapa de configuração consome muito tempo e muitos dados são trafegados para baixar todo o código necessário.

    Compilação

    A etapa da compilação é a qual todo o código fonte realmente é compilado e os arquivos imagens são gerados.

    Deve ser executado o script build.sh. Detalhes são discutidos na página Compilando o Firefox OS.

    Como padrão, a etapa de compilação é monolítica, ou seja, tudo é compilada de uma só vez a partir das ferramentas AOSP gerando o kernel do Linux e as aplicações web do Gaia. No caso de ocorrência de erros na compilação, pode não ficar claro em qual etapa ocorreu o erro.

    Na compilação do Firefox é possível compilar somente algumas partes do conjunto completo que compõe o Firefox OS. Por exemplo, o sistema Gecko somente pode ser compilado através do script com o parâmetro gecko. Da mesma forma, o Gaia é compilado com o parâmetro gaia. Essas partes podem ser instaladas separadamente no dispositivo como será explicado a seguir.

    Também é possivel construir as imagens apresentadas no início desse artigo. Por exemplo, a imagem de sistema pode ser compilada através do comando ./build.sh out/platform/$target/system.img, no qual o parâmetro $target é o mesmo que o apresentado na etapa de configuração.

    Instalação

    A etapa de instalação consiste em colocar o novo código compilado no dispositivo. É executada pelo script flash.sh.

    A instalação pode ser realizada por etapas através de parâmetro no script flash.sh. Por exemplo, é possível instalar somente as aplicações web do Gaia com o comando ./flash.sh gaia.

    Etiquetas do documento e colaboradores

    Contribuíram para esta página: rbrandao
    Última atualização por: rbrandao,
    Esconder painel