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
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. :)