TL, DR: se você só tem a opção de “32 bits” e “64 bits”, nenhum dos dois é adequado para um Raspberry Pi (ou qualquer outro computador baseado em ARM). Você precisa de um pacote para o ARM e o correto para o boot, que é armhf
.
“32 bits” e “64 bits” são apenas uma das características de uma arquitetura de processador. Muitas famílias de processadores vêm em variantes de 32 bits e 64 bits (x86, ARM, Sparc, PPC, MIPS,…). O Debian sozinho possui 23 distribuições binárias oficiais para diferentes características do processador e diferentes características de software.
Você precisa instalar um pacote que corresponda à ABI do seu sistema. A ABI (application binary interface) inclui o tipo de processador (mais precisamente, seu conjunto de instruções), mas também outras características relacionadas às formas como os programas interagem. Em particular, quando um programa faz uma chamada para o código que está em uma biblioteca, o ABI determina como os argumentos para a função de biblioteca são passados (em registradores ou na pilha).
No mundo do PC, existem dois conjuntos de instruções (até pequenas variações que não importam):
- IA-32 , uma variante de x86 , comumente conhecido como i386 (o nome usado pelo Debian) ou i686 (que, como o IA-32, são gerações da série de arquitetura x86);
- x86-64 , também conhecido como x64 ou amd64 (o nome usado pelo Debian) (não confunda com IA -64, que é completamente diferente).
Tanto a Intel quanto a AMD criam processadores que implementam os conjuntos de instruções x86 e x86-64. Os PCs modernos têm processadores que suportam os conjuntos de instruções x86-64 e x86; PCs mais antigos têm processadores que suportam apenas x86. Como o conjunto de instruções x86 usa registradores de 32 bits e o conjunto de instruções x86-64 usa registradores de 64 bits, e porque para cada conjunto de instruções existe uma única ABI usada por todas as instalações do Linux¹, elas são geralmente descritas como “32 bits ”Ou“ 64 bits ”. Em um contexto de PC, “32 bits” significa “x86” e “64 bits” significa “x86-64”.
Os processadores ARM têm um conjunto de instruções completamente diferente. Você não pode instalar um pacote x86 ou x86-64 em um sistema ARM. Você precisa de um pacote para o ARM, para o conjunto de instruções correto e, mais geralmente, para o ABI correto. Ainda não existem grandes distribuições de 64 bits para processadores ARM de 64 bits, porque a revisão de arquitetura ARMv8 que introduz um conjunto de instruções de 64 bits ainda é muito novo e não é comumente disponível. No entanto, existem diversas ABIs de 32 bits, que pressupõem a existência de diferentes recursos de processador e usam diferentes versões da convenção de passagem de argumentos. As principais ABIs de ARM usadas no Linux são:
- armel , baseado no ARM EABI versão 2 (conhecido como" ARM EABI "ou" EABI "para abreviar), no seu little -endian encarnação;
- armhf , que é uma variante do armel que aproveita alguns recursos dos processadores ARM mais novos, em particular h ardware f
Todos os dispositivos que suportam armhf também suportam armel; no entanto, uma determinada instalação do sistema deve ser consistente. Raspbian usa o armhf (na verdade, ele começou como uma porta do armel do Debian para armhf, quando o armhf era uma coisa nova).
¹ Pelo menos para distribuições mainstream. Existem distribuições embutidas que possuem várias versões binárias x86, com pacotes compilados contra diferentes versões da biblioteca C padrão (glibc, dietlibc, uclibc,…).