Acho que você perdeu o bootloader. O U-Boot deve estar presente no seu SD. Veja como o layout SD deve ser para o Banana Pi / Pro:
Parece que tenho uma falta de compreensão de como o boot de imagens de cartão SD em dispositivos como o Banana Pi funciona. A situação é a seguinte.
Eu tenho um Banana Pi e um Banana Pro. Cada dispositivo tem uma imagem de alguma distribuição em um cartão SD conectado ao dispositivo (Banana Pro - > Arch Linux, Banana Pi - > Bananian). As imagens podem ser baixadas de aqui e aqui . Isso funciona bem.
Mas como o Banana Pi / Pro tem uma porta SATA, seria bom se o sistema raiz pudesse ser inicializado a partir de um disco rígido conectado. Como pode ser lido aqui isso pode ser conseguido simples.
Mas agora vem o papel com o qual estou lutando. Piscar um cartão SD de 4GB inteiro (ou até mesmo maiores) com a imagem de distribuição e usar apenas uma partição de 50MB parece um pouco desnecessário. Então eu tentei usar um cartão SD menor.
Eu criei uma partição com fdisk
(tamanho de 50MB) e usei mkfs.vfat -F 16 /dev/sdXX
para criar o sistema de arquivos na partição. Eu fiz isso FAT 16 por causa da saída parted
ao examinar o arquivo de imagem.
.
Depoisdisso,monteiapartiãodaimagempara/tmp/boot
comsudomount-oloop,offset=1048576ArchLinux_For_BananaPro_v1412.img/tmp/boot
.Ovalordodeslocamentoéovalorinicialnasaídadividida.
Copieiosarquivos(script.bin,uEnv.txt,uImage)paraapartiçãodomeucartãoSDealtereiocaminhodaraizemuEnv.txt.FizumasincronizaçãoedesmontouocartãoSD.
Tudoparecebem.MesmoquandocomparandoopartitonsdeinicializaçãoemumcartãoSDpiscoucomaimageminteiraemeucartãoSDcomapenasopartitondeinicialização,elessãoidênticos(deacordocomfdisk
)
Mas o Banana Pi / Pro não inicializa com o cartão SD com apenas uma partição de inicialização, fornecendo os arquivos u-boot.
Alguém tem uma pista sobre esse comportamento?
ATUALIZAÇÃO:
Graças a @BananaFreak, reconheci meu erro. O bootloader estava de fato ausente, mas mesmo depois de seguir esse guia de lemaker , o BananaPro não inicializa. Uma coisa estranha na página wiki lemaker é a primeira frase dizendo:
Note: these instructions are for a Linux computer, not the Banana Pro/Pi!!
Acho que você perdeu o bootloader. O U-Boot deve estar presente no seu SD. Veja como o layout SD deve ser para o Banana Pi / Pro:
Aqui está o meu relatório sobre os mergulhos mais profundos no processo de inicialização no BananaPro / Pi. A primeira coisa que você precisa é de um Conversor Serial TTL UART RS232 para fazer interface com o UART onboard.
Emseguida,vocêpodeabrirodispositivoserialparainvestigaroprocedimentodeinicialização(tenhacuidadoedeixeopinoVCCdoseuconversorTTL-UARTdesconectadodaplaca.Seoseuconversorusar5VTTLvocêpoderádanificaroBananaProaoconectaraVCCaele.)
Noterminal,tenhoumasaídaassim:
U-BootSPL2014.04-10733-gbb5691c(Dec182014-12:54:35)Board:BananaProDRAM:1024MiBCPU:960000000Hz,AXI/AHB/APB:3/2/2spl:notanuImageat1600U-Boot2014.04-10733-gbb5691c(Dec182014-12:54:35)AllwinnerTechnologyCPU:AllwinnerA20(SUN7I)Board:BananaProI2C:readyDRAM:1GiBMMC:SUNXISD/MMC:0***Warning-badCRC,usingdefaultenvironmentIn:serialOut:serialErr:serialNet:dwmac.1c50000Hitanykeytostopautoboot:0readinguEnv.txt354bytesreadin17ms(19.5KiB/s)LoadedenvironmentfromuEnv.txtRunninguenvcmd...reading/script.bin50564bytesreadin100ms(493.2KiB/s)reading/uImageErrorreadingcluster**Unabletoreadfile/uImage**##BootingkernelfromLegacyImageat48000000...ImageName:Linux-3.4.103ImageType:ARMLinuxKernelImage(uncompressed)DataSize:4822880Bytes=4.6MiBLoadAddress:40008000EntryPoint:40008000VerifyingChecksum...BadDataCRCERROR:can'tgetkernelimage!**Can'treadpartitiontableon0:0****Invalidpartition1**
Ébemprovávelquevocêsejaabandonadoemumtipodeambientedeshellfornecidopelou-bootapósumprocedimentodeinicializaçãocomfalha.Apartirdaí,vocêpodeusarferramentasdeinicializaçãopararealizaralgunsdiagnósticos.Aquiestáuma
No meu caso, as últimas linhas do boot-output levaram à conclusão de que o u-boot é compilado de uma maneira que procura pela segunda partição e, eventualmente, constrói um CRC sobre alguns dados. Como meu objetivo era omitir a segunda partição, acho que a única solução é compilar um binário u-boot com as modificações necessárias.