domingo, 20 de abril de 2014

[OFF] Quer rodar o Linux no seu microcontrolador de 8 bits? Você pode, mas não se anime.

Lembro-me das diversas piadas que sempre faziamos a cerca do Netbsd, que rodava até em torradeiras, o que de fato não é mentira, e se o Netbsd sabe fazer torradas, o querido Linux sabe fazer café.

Fazer o Linux rodar em uma cpu para qual ele tem suporte é fácil, mas e em um microcontrolador de 8 bits? É possível de certa forma e já o fizeram.

Dmitry Grinberg de origem russa, começou a aprender a programar em C aos 6 anos, se mudou para os estados unidos e após os estudos passou por empresas como Google e VMWare.

O seu feito envolve a criação própria de um emulador para a arquitetura arm, que é a arquitetura da imagem do Linux usado.

Utilizando um microcontrolador ATmega1284p, conectou-se à ele uma antiga memória SIMM 30 pinos de 16MB, com banda máxima de 300kbps, além de um cartão SD de 1GB se comunicando via SPI à 200kbps E esse conjunto que dará boot em um Linux 2.6.34.

Além do hardware Dmitry criou seu emulador para arm(ARMv5TE) do zero, que irá rodar sobre o microcontrolador de 8 bits e interpretar as instruções arm para qual o Linux foi compilado.


O microcontrolador também contou com um overclock, rodando a 24Mhz, com frequência padrão de 20Mhz.

A comunicação com o sistema é feita via serial ligado ao seu computador e utilizando já antigo programa minicom. Os dois leds na placa indicam o acesso ao cartão SD, para leitura e escrita.


Slot do cartão SD
Slot do cartão SD
Esquema
Esquema


A velocidade? Sofrível é claro, demora-se 2 horas para se iniciar o sistema e cair no bash diretamente substituindo o init( init=/bin/bash ). Após o boot a resposta de um comando ( ls por exemplo ) demora cerca de um minuto.

Um vídeo do boot pode ser visto abaixo, que claramente está acelerado.




Link do código do emulador arm: http://dmitry.gr/images/uARM.zip

E para que ter esse trabalho todo? Simplesmente porque é possível.

Fonte: http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit

Está gostando do blog? Ajude-nos a divulgar e curta nossa página no Facebook ou siga-nos no Twitter.

4 comentários:

  1. Onde eu consigo uma memória dessas? Essas SIMM estão ficando cada vez mais raras.

    ResponderExcluir
  2. Gravando PIC online via porta USB de um Raspberry Pi https://www.youtube.com/watch?v=S30wVi9RWEs . Programas disponíveis em https://www.dropbox.com/s/whwolbzf0cwkkb9/SanUSBrpi.zip

    ResponderExcluir
  3. Por que nós fazemos isso? Fazemos isso porque dá pra fazer!

    ResponderExcluir