Labrador 64 bits - Criando uma imagem: mudanças entre as edições

De Caninos Loucos
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
Linha 43: Linha 43:
</pre>
</pre>


Após este processo o sistema estará pronto para ser usado na Labrador, no entanto, ainda temos que criar um arquivo de configuração com as instruções de boot para a Labrador. Essas configurações serão feitas num arquivo config.json na pasta boot. Conforme seção [[Labrador_64_bits_-_Criando_uma_imagem|Arquivo_config.json]]
Após este processo o sistema estará pronto para ser usado na Labrador, no entanto, ainda temos que criar um arquivo de configuração com as instruções de boot para a Labrador. Essas configurações serão feitas num arquivo config.json na pasta boot. Conforme seção [[Labrador 64 bits - Criando uma imagem|Arquivo config.json]]


=== Exemplo do debootstrap ===
=== Exemplo do debootstrap ===
Linha 52: Linha 52:


=== Arquivo config.json ===
=== Arquivo config.json ===
O arquivo config.json deve ser criado na pasta boot do rootfs, basta criá-lo e preenchê-lo com os parâmetros necessários, conforme tabela abaixo.
{| class="wikitable"
|-
! Parâmetro
! Descrição
! Entradas
! Padrão
|-
| ”mode”
| Configura o modo de boot da imagem (Mais informação na seção Modos de  Boot)
| Normal, Upgrade, Produce
| Normal
|-
| ”default boot device”
| Configura a fonte primária do boot
| SDcard, Emmc
| Sdcard
|-
| ”screen resolution”
| Define a resolução e frequência do display
| [horizontal]x [vertical]x[freq]
| 1920x1080x60
|-
| ”sdcard dtb”
| Nome do arquivo dtb na pasta de boot referente ao cartão SD.
| *.dtb
| v3sdc.dtb
|-
| ”emmc dtb”
| Nome do arquivo dtb na pasta de boot referente à eMMC.
| *.dtb
| v3emmc.dtb
|-
| ”kernel”
| Nome do arquivo de kernel na pasta de boot.
| *
| Image
|-
| ”source”
| Caminho do arquivo de bootloader utilizado nos modos Upgrade e Produce  (ignorada no modo Normal)
| *.bin
| bootloader.bin
|-
| ”image”
| Caminho da imagem a ser gravada na eMMC no modo Produce (ignorada nos  modos Normal e Upgrade)
| *.tar
| rootfs.tar
|-
| ”label”
| Rótulo de partição do sistema de arquivos ext4 no modo Produce (ignorado  nos modos Normal e Upgrade)
| *
| rootfs
|}
Abaixo temos um exemplo para este arquivo, considerando o modo de boot Normal, boot através da eMMC, resolução de tela 1920x1080@60Hz. Como sdcard_dtb, emmc_dtb e kernel não são explicitados, seus valores padrão são utilizados automaticamente.
<pre>
config.json:
    {
    "mode": "normal",
    "default_boot_device": "emmc",
    "screen_resolution":
    "1920x1080x60"
    }
</pre>

Edição das 14h21min de 5 de junho de 2020

Nesta página você encontrará instruções de como obter o bootloader atualizado da Labrador 64-bits, compilar um novo Kernel Linux, montar uma distribuição Linux para sua placa e escrever seu sistema num cartão SD e na memória da placa. Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso Github.

Dependências

Para montar seu próprio sistema compatível com a Labrador serão necessários:

  • Um arquivo bootloader.bin e um arquivo logo.bmp
  • Os arquivos de Kernel para o seu sistema
  • Um sistema de arquivos rootfs arm64 do sistema operacional que deseja instalar.

Os dois primeiros podem ser encontrados no Github, o sistema de arquivo pode ser encontrado no site de diversas distribuições diferentes de linux. Você também pode utilizar o debootstrap para gerar seu próprio rootfs. Recomendamos o uso de sistemas de arquivo ext4 mas outros sistemas ext funcionarão também.

Criando sua imagem

Compilando o Kernel

Após baixar os últimos arquivos de Kernel do Github o Kernel Linux deve ser compilado conforme as instruções do arquivo README.md. Basta rodar o comando make na pasta linux-source. Qualquer dependência de pacotes do sistema será alertada pelo compilador. Outras dúvidas gerais podem ser encontradas no mesmo arquivo readme. Os arquivos de saída dessa compilação serão:

  • Uma pasta /lib
  • Um arquivo Image
  • Dois arquivos de extensão .dtb (caso nenhuma mudança tenha sido feita no processo descrito estes se chamarão v3emmc.dtb e v3sdc.dtb)

Criando um sistema bootável

Você pode baixar qualquer rootfs compatível com a arquitetura arm64 ou usar o debootstrap para criar seu próprio. Abaixo damos um exemplo de como utilizar o debootstrap para baixar uma versão do Debian buster, por enquanto prosseguiremos assumindo que o rootfs.img já está baixado.

Para iniciar o processo deve-se montar o arquivo rootfs, neste caso o montaremos no destino /media/mountpoint

$ mount -o rootfs.img /media/mountpoint

Após a montagem do sistema uma pasta boot deve ser criada no mesmo, e os arquivos de compilação e logo.bmp devem ser colocados nesta pasta, os comandos abaixo realizam essa tarefa:

$ mkdir /media/mountpoint/rootfs/boot 
$ cp -r /media/caninos/kernel/Image /media/mountpoint/rootfs/boot 
$ cp -r /media/caninos/kernel/v3emmc.dtb /media/mountpoint/rootfs/boot 
$ cp -r /media/caninos/kernel/v3sdc.dtb /media/mountpoint/rootfs/boot 
$ cp -r /media/caninos/kernel/logo.bmp /media/mountpoint/rootfs/boot

Após finalizar a pasta de boot o próximo passo é editar a pasta /lib/modules. Para isso é necessário remover a pasta original do rootfs e colocar a pasta gerada na compilação do Kernel.

$ sudo rm -r /media/mountpoint/rootfs/lib/modules 
$ sudo cp -r /media/caninos/kernel/lib/modules /media/mountpoint/ rootfs/lib/

Após este processo o sistema estará pronto para ser usado na Labrador, no entanto, ainda temos que criar um arquivo de configuração com as instruções de boot para a Labrador. Essas configurações serão feitas num arquivo config.json na pasta boot. Conforme seção Arquivo config.json

Exemplo do debootstrap

Para gerar um arquivo de sistema via debootsrap inicialmente ele deve ser instalado. Num sistema Debian isso pode ser feito com o comando

$sudo apt install debootstrap

Após isto, o comando criará um arquivo de sistema. Neste caso, um arquivo do Debian Buster, é possível substituir a versão para qualquer uma desejada.

$ sudo debootstrap --arch=arm64 --foreign buster <pasta_de_destino>

Arquivo config.json

O arquivo config.json deve ser criado na pasta boot do rootfs, basta criá-lo e preenchê-lo com os parâmetros necessários, conforme tabela abaixo.

Parâmetro Descrição Entradas Padrão
”mode” Configura o modo de boot da imagem (Mais informação na seção Modos de Boot) Normal, Upgrade, Produce Normal
”default boot device” Configura a fonte primária do boot SDcard, Emmc Sdcard
”screen resolution” Define a resolução e frequência do display [horizontal]x [vertical]x[freq] 1920x1080x60
”sdcard dtb” Nome do arquivo dtb na pasta de boot referente ao cartão SD. *.dtb v3sdc.dtb
”emmc dtb” Nome do arquivo dtb na pasta de boot referente à eMMC. *.dtb v3emmc.dtb
”kernel” Nome do arquivo de kernel na pasta de boot. * Image
”source” Caminho do arquivo de bootloader utilizado nos modos Upgrade e Produce (ignorada no modo Normal) *.bin bootloader.bin
”image” Caminho da imagem a ser gravada na eMMC no modo Produce (ignorada nos modos Normal e Upgrade) *.tar rootfs.tar
”label” Rótulo de partição do sistema de arquivos ext4 no modo Produce (ignorado nos modos Normal e Upgrade) * rootfs

Abaixo temos um exemplo para este arquivo, considerando o modo de boot Normal, boot através da eMMC, resolução de tela 1920x1080@60Hz. Como sdcard_dtb, emmc_dtb e kernel não são explicitados, seus valores padrão são utilizados automaticamente.

config.json: 
    {
    "mode": "normal",
    "default_boot_device": "emmc",
    "screen_resolution":
    "1920x1080x60"
    }