Essa é uma ótima pergunta e eu escolhi mergulhar em mim há um tempo atrás, apenas para mim estava usando o MIPS / MIP64.
Existem algumas questões que tornam este desafio.
Ao inicializar um host Linux, o Kernel precisa entender o hardware com o qual está trabalhando. Para algumas arquiteturas (como amd64), a descoberta do firmware é feita pelo BIOS através de "Configuração Avançada e Interface de Energia" ( ACPI ). Em outros casos, isso é feito por uma interface de firmware extensível ( EFI ) ou até mesmo pela ATAGS como uma solução muito antiga. Na maioria dos sistemas embarcados modernos, o uso do ATAGS foi substituído por um mecanismo chamado "blob da árvore de dispositivos" ( DTB ). Uma série de usuários úteis fez um trabalho muito melhor explicando a diferença do que eu .
O propósito de tudo isso é ajudar a sugerir o kernel quanto à configuração do hardware e geralmente funciona em conjunto com o gerenciador de inicialização. No seu caso, escolher entre ARM pouco endian ( armel
), ARM hard floating point ( armhf
) e ARM 64 bit ( aarch64
) é uma decisão crítica, pois tem ramificações para a escolha de pacotes compilados , Kernel, etc, como tudo precisa estar em conformidade com a "arquitetura de conjunto de instruções" emulado ( ISA ).
Eu entendo que você quer a simplicidade de um disco em branco e uma imagem de CD, mas é por isso que não há "instaladores" dessa forma para sistemas como o Raspberry Pi *. Quando você faz o download de uma Imagem Raspbian, ela inclui um conjunto estruturado de partições que incluem um gerenciador de inicialização (das uBoot), um blob da árvore de dispositivos para o hardware correspondente e um conjunto básico de pacotes disponíveis com os repositórios de pacotes configurados.
Isto toca em outro trivia interessante ... Você já olhou para o que esta imagem ISO está fazendo quando você "instala" o Linux?
Deixe-me usar instaladores baseados no Anaconda (Fedora, RHEL, CentOS, etc) como um exemplo.
Quando você inicia a instalação, ele está inicializando um sistema mínimo ao vivo que começa a executar automaticamente o utilitário python Anaconda . O Anaconda então pede ao usuário para responder a uma série de perguntas, preenche um arquivo de configuração em seu idioma específico do domínio, e então cria um chroot e executa um conjunto de instalações de pacotes dentro daquele chroot.
Isso ... de maneira pequena, é como usar essa imagem Raspbian.
Então, o que isso significa?
Bem, primeiro, há respostas que eu recomendaria, dependendo de como você deseja prosseguir?
Se a emulação de um RPi for suficiente, deixe-me sugerir: Usando o QEMU para emular um Raspberry Pi
Se você deseja emular algo mais como um sistema baseado em "nuvem", George Hawkins mantém uma Gist com algumas ótimas instruções .
Se você realmente quer ir a partir do zero, o Usuário Debian Aurel32 mantém há anos um conjunto de imagens básicas prontas para inicializar bem como um ótimo artigo em seu blog sobre um processo similar .