Primeiros passos com o Banana Pi

· 6 minutos de leitura

Na primeira postagem sobre o Banana Pi eu comentei sobre o hardware e se seria uma boa opção de compra. Pois bem, nesta postagem irei comentar como colocar o BPi para funcionar, caso você já possua um ou está pensando em adquiri-lo.

Todos os exemplos são baseados no Linux, se você usa outro sistema operacional veja as instruções aqui.

Copiando a imagem para o SD

O primeiro passo é copiar uma imagem de algum sistema operacional disponível para o BPi. Atualmente o BPi possui as seguintes imagens:

  • Lubuntu
  • Raspbian
  • Android
  • Bananian
  • Berryboot
  • LeMedia (XBMC)
  • OpenSuse
  • Fedora
  • Gentoo
  • Scratch
  • ArchLinux
  • Open Media Vault
  • OpenWrt
Você pode fazer o download das imagens aqui.

Nota: A maioria das imagens não possui um link direto, nesse caso o servidor que se mostrou melhor foi o do OneDrive.

Após o download você deverá ter uma imagem com a extensão img. Caso o arquivo esteja comprimido descompacte-o antes.

Certifique-se de possuir um SD conectado e que seja de no mínimo 4 GB. O tamanho do SD irá variar de acordo com o tamanho da imagem.

Agora que você já possui tudo pronto, vamos aos comandos para copiar a imagem para o SD.

Listando as unidades de disco:

ls /dev/sd*

Identifique o seu SD, provavelmente será sdb e sdb1. Para fins de exemplo vou utilizar o sdb/sdb1 como minha unidade de disco. Caso a sua seja outra modifique o script abaixo.

O próximo passo é desmontar a unidade.

umount /dev/sdb1

Agora que a unidade está desmontada vamos copiar a imagem para o SD (Note que todos os dados e partições do SD serão perdidos).

Vou usar o comando dd com o bs de 1M. Se você utilizar um valor maior e tiver problemas, tente reduzir um pouco. No if você informa o arquivo de origem, no caso o seu arquivo img, e no of, você informa a sua unidade de destino, no caso o cartão SD.

sudo dd bs=1M if=sua_imagem.img of=/dev/sdb && sync

Dependendo da imagem e do bs escolhido a cópia poderá demorar alguns minutos, então não se preocupe se demorar um pouco.

Pronto, agora você já pode conectar o SD no seu BPi e sair usando-o, ou não. Isso mesmo, se você está utilizando um conversor HDMI para VGA ou a conexão vídeo componente,  as suas chances de rodar o BPi de primeira são poucas. Agora, se você está usando um cabo HDMI ligado à uma TV/Monitor HDMI, a imagem deverá funcionar, pois por padrão o HDMI é o dispositivo de saída de vídeo. Em alguns casos a imagem consegue identificar que o HDMI não está conectado e então a imagem é enviada para o vídeo componente, mas no meu caso eu não consegui isso sem fazer umas pequenas alterações nas imagens. Portanto, se você possuir o mesmo problema que eu,  continue seguindo as instruções abaixo.

Baixando os arquivos necessários

Se você pretende alterar o arquivo script.bin você terá que fazer o download do Sunxi-tools para convertê-lo de bin para fex. Você pode fazer o download aqui.

Após ter feito o download descompacte o arquivo. Após descompacta-lo será necessário compilar o projeto. Execute as seguintes linhas de comando no diretório onde estão os arquivos baixados:

make bin2fex
make fex2bin

Como o nome sugere, o arquivo bin é binário, e não é possível alterá-lo por um editor de texto. Após convertê-lo para fex é possível editá-lo normalmente.

Procure no SD card pelo arquivo script.bin

Para converter de bin para fex utilize o comando:

./bin2fex script.bin>script.fex

E para converter de fex para bin utilize o comando:

./fex2bin script.fex>script.bin

Após convertido, substitua o arquivo do SD card pelo novo arquivo script.bin

Alterando a imagem para reconhecer HDMI

Caso o seu BPi não reconheça o seu cabo HDMI ou o conversor HDMI para VGA siga os passos abaixo.

Procure no SD card pelo arquivo config.txt. Este é o arquivo de configurações, como se fosse uma BIOS. Após achar o arquivo abra-o com o seu editor preferido e procure pelas seguintes linhas e descomente-as, caso elas não existam basta adicioná-las.

hdmi_force_hotplug=1

Irá usar o modo HDMI, mesmo que nenhum cabo seja detectado.

hdmi_safe=1

Use o safe mode para conseguir a melhor compatibilidade. Isto equivale a:

hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
config_hdmi_boost=4
hdmi_group=2
hdmi_mode=4
disable_overscan=0
overscan_left=24
overscan_right=24
overscan_top=24
overscan_bottom=24

Caso você tenha dúvidas sobre o arquivo config.txt, clique aqui para ver a documentação.

Se após isso ainda não funcionar, você pode editar o arquivo script.bin. Utilize os passos descritos acima para obter o arquivo fex. Após obtido o arquivo, abra-o com seu editor de texto e procure por [disp_init], ao encontrar altere as seguintes linhas para:

Habilitado

disp_init_enable = 1

Screen 0

disp_mode = 0

HDMI

screen0_output_type = 3

480p

screen0_output_mode = 2

TV

screen1_output_type = 2

NTSC

screen1_output_mode = 14

Verifique aqui quais os valores para o screen0_output_mode / screen1_output_mode.

Alterando a imagem para reconhecer Video Componente

Caso o seu BPi não envie a imagem via Vídeo Componente siga os passos abaixo.

Procure no SD card pelo arquivo config.txt. Este é o arquivo de configurações, como se fosse uma BIOS. Após achar o arquivo abra-o com o seu editor preferido e procure pela seguinte linha e descomente-a, caso ela não existam basta adicioná-la.

sdtv_mode=0 NTSC
sdtv_mode=1 NTSC Japonês
sdtv_mode=2 PAL
sdtv_mode=3 PAL Brasileiro

Escolha o valor de acordo com a sua TV/Monitor. Note que para o vídeo componente funcionar você não pode estar com o cabo HDMI conectado.

Certifique-se de que as linhas abaixo não existam, ou estejam comentadas ou com o valor 0. Para comentar basta colocar # no início da linha.

hdmi_force_hotplug=1
hdmi_safe=1

Caso você tenha dúvidas sobre o arquivo config.txt, clique aqui para ver a documentação.

Se após isso ainda não funcionar, você pode editar o arquivo script.bin. Utilize os passos descritos acima para obter o arquivo fex. Após obtido o arquivo, abra-o com seu editor de texto e procure por [disp_init], ao encontrar altere as seguintes linhas para:

Habilitado

disp_init_enable = 1

Screen 0

disp_mode = 0

TV

screen0_output_type = 2

NTSC

screen0_output_mode = 14

HDMI

screen1_output_type = 3

480p

screen1_output_mode = 2

Verifique aqui quais os valores para o screen0_output_mode / screen1_output_mode.

Se depois destas alterações todas você ainda não conseguir vídeo nenhum, mas a luz vermelha da placa está acesa e a verde está piscando, só resta ver se o problema não pode ser o cabo. Caso essas luzes não estejam conforme mencionado pode ser que o problema está no SD ou na imagem gravada. Para todos os casos você pode tirar suas dúvidas no fórum do BPi.

Essas foram algumas das dificuldades que tive e como consegui resolve-las. Espero que este post possa ser útil para você também. :)