Criando Kernel na Banana Pi

BananaPro/Pi: Construindo u-boot, script.bin e linux-kernel


Nota: Todas as instruções a seguir ( e também nas seções 2,3 e 4 ) tem que ser carregadas em um 
computador linux e não na própria Banana Pro/Pi!

 

Este post descreve o processo de combinar sunxi u-boot, o kernel do Linux e outros bits em conjunto para criar a base de um sistema operacional inicializável a partir do zero.

Claro que não estamos construindo uma distribuição inteira aqui, nós só estamos construindo u-boot, o kernel e um punhado de ferramentas, e em seguida, usando um sistema de arquivos root existente para começar um sistema operacional utilizável.

Dependendo do tamanho do sistema de arquivos root, sugerimos que você use um cartão SD de 4GB ou maior. Um cartão SD tipo de classe de 10 seria mais rápido e mais estável. Particionamento e formatação do cartão SD serão ditos mais tarde.

Obtenha um Cross ToolChain

O ToolChain é um conjunto de binários, bibliotecas e ferramentas que lhe permitem construir u-boot e o kernel para uma plataforma de destino do sistema.

Se você usa o Ubuntu ou Debian, você pode obter tudo que você precisa instalando as ferramentas a seguir:

 

sudo apt-get updatesudo apt-get upgradesudo apt-get install build-essential u-boot-tools uboot-mkimage \
binutils-arm-linux-gnueabihf gcc-4.7-arm-linux-gnueabihf-base g++-4.7-arm-linux-gnueabihf 
sudo apt-get install gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf \
libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package zlib1g-dev libncurses5-dev


Nota: Do Debian (wheezy) / Ubuntu 13.10 (saucy) em diante, o pacote uboot-mkimage foi removido;

O comando mkimage está incluso no pacote de U-Boot-tools. No Ubuntu 12.04, altere:

-gcc-4.7-arm-linux gnueabihf-base e g ++ - 4.7-arm-linux-gnueabihf para -gcc-4.6-arm-linux gnueabihf-base e g ++ - 4.6-arm-linux-gnueabihf respectivamente.

Você também pode usar a ferramenta Linaro ou o Code Sourcery - são toolchains independentes com grandes tarballs que vêm com tudo que você precisa.

 

Use o BSP

BSP significa “Board Support Package”.

Instalação

Obtenha o repositório BSP:


git clone https://github.com/LeMaker/lemaker-bsp.git


Construção

Depois de obter o BSP, em seguida navegue para o diretório lemaker-bsp e execute o comando de compilação:

Para a Banana Pro


cd lemaker-bsp
./configure BananaPro
make


Para a Banana Pi


cd lemaker-bsp
./configure BananaPi
make


Vai levar um longo tempo para criar tudo. Depois de criado, você pode obter tudo a partir do build / BananaPro_hwpack ou criar / diretório BananaPi_hwpack, como o u-boot sunxi-com-spl.bin, uImage, e scritp.bin, os módulos.

Você pode ajustar a sua configuração do kernel também executando:

 

make linux-config

 

Isto irá substituir o arquivo .config no diretório / build / sun7i_defconfig-linux.

 

Passo-a-Passo

Criando u-boot:

U-boot é o bootloader utilizada em nosso Allwinner SoCs. Semelhante a muitos outros, ele fornece a infra-estrutura básica para trazer um SBC (computador de placa única) até um ponto onde ele possa carregar um kernel Linux e começar a inicialização do sistema operacional.

Primeiro, você precisa clonar o repositório do Github:


git clone https://github.com/LeMaker/u-boot-sunxi.git


Após o repositório tiver sido recuperado, você pode construir o u-boot.

Primeiro, configure seu u-boot:

Para Banana Pro


make CROSS_COMPILE=arm-linux-gnueabihf- BananaPro_config


Para Banana Pi


make CROSS_COMPILE=arm-linux-gnueabihf- BananaPi_config


E depois, crie o u-boot:


make CROSS_COMPILE=arm-linux-gnueabihf-

 

Depois disso, você pode obter a u-boot.img-u-boot sunxi-com-spl.bin, u-boot.bin, SPL / sunxi-spl.bin. Aqui estamos apenas usando o arquivo -u-boot sunxi-com-spl.bin.

 

Criando o script.bin

Primeiro, obtenha os seguintes repositórios:

 

git clone https://github.com/LeMaker/sunxi-tools.git
git clone https://github.com/LeMaker/sunxi-boards.git


Entre no sunxi-tools and execute o comando:


make


Você precisa instalar os pacotes:


sudo apt-get install pkg-config


Você obterá as ferramentas fex2bin, bin2fex e algumas outras.

Então, entre na  sunxi-boards e encontre o arquivo fex para a Banana Pi. Nós podemos customizar algumas das configurações no arquivo, tal como [gmac_para], [usb_wifi_para], etc.

Crie o arquivo script.bin:

Para Banana Pro:


${sunxi-tools}/fex2bin BananaPro.fex script.bin


Para Banana Pi:


${sunxi-tools}/fex2bin BananaPi.fex script.bin

 

O prefixo ${sunxi-tools} indica que você está na sunxi-tools.

Você precisará deste arquivo script.bin depois quando finalizar a instalação do u-boot.


Criando o Kernel

Primeiro, obtenha o Repositório Linux Kernel a seguir:


git clone https://github.com/LeMaker/linux-sunxi.git


Em segundo lugar, defina a configuração do kernel padrão:


make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig


Em terceiro lugar, ajuste a configuração.


Você pode abrir algum tipo de software de configuração do Kernel ou fechar a configuração menos usual do kernel e editar sua configuração:


make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig


Criando uImage e módulos:


make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules


Como etapa final, crie o módulo completo:


make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install


A opção INSTALL_MOD_PATH especifica o diretório onde o módulo completo será disponibilizado. Neste exemplo, será o diretório de saída sob o próprio diretório de compilação do kernel.

Agora você tem o seguinte endereço em sua árvore do kernel:

 

arch/arm/boot/uImage
output/lib/modules/3.4.XX/


O arquivo ulmage precisa ser iniciado pelo u-boot e os diretórios dos módulos precisam ser copiados para  /lib/modules no sistema root de destino.


Usando 4 arquivos

Seja pelo "passo a passo" ou "usando o bsp", você vai ter, pelo menos, os quatro arquivos ou pacotes que você precisa, que são:

 

u-boot-sunxi-with-spl.bin
uImage
script.bin
modules/3.4.XX

 

Você ainda não tem uma Banana Pi? Então, compre uma Banana Pi com desconto de 12% na nossa loja.

 

 

Para baixar a versão em PDF, clique no link abaixo:

https://www.lojamundi.com.br/download/criando-kernel-na-banana-pi/criando-kernel-na-banana-pi.pdf

 

Fonte: lemaker.org


ENTRE EM CONTATO COM A LOJAMUNDI.

Assine nossa Newsletter! É gratuito!

Cadastre seu nome e email para receber novidades e materiais gratuitos da Lojamundi.