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.
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.
BSP significa “Board Support Package”.
Obtenha o repositório BSP:
git clone https://github.com/LeMaker/lemaker-bsp.git |
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.
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.
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.
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.
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.
https://www.lojamundi.com.br/download/criando-kernel-na-banana-pi/criando-kernel-na-banana-pi.pdf
Fonte: lemaker.org