sexta-feira, 15 de abril de 2016

Liberada primeira imagem 64 bits para Raspberry Pi 3 (kernel e userland mas bem experimental)

raspberry pi 3 modelo b
Créditos de imagem: raspi.tv

É de conhecimento que o sistema operacional suportado oficialmente continua até então sendo somente 32 bits, isso foi informado pela fundação desde o lançamento do Raspberry Pi 3 Modelo B embora tenha passado batido por alguns.

Um exemplo de código baremetal já existia desde março.

Mesmo que ainda seja incerto o suporte oficial do Raspbian à uma versão 64 bits, a primeira imagem (super experimental) de um sistema 64 bits foi finalmente liberada por um usuário.

O kernel em si já dava boot desde março, mas desde o início de abril já era possível rodar a userland do debian arm64 em conjunto com um kernel arm64 utilizando o u-boot (um bootloader para sistemas embarcados):

$ ls -la|grep u-boot
-rwxr-xr-x 1 root root  376968 Abr 12 20:51 u-boot-stubbed.bin
-rwxr-xr-x 1 root root  342816 Abr 12 20:51 u-boot.bin


$ file bin/ping
bin/ping: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=9c4a9cc7ac6393770f18e9be03594070aacf8e24, stripped


Os engenheiros que mantém o firmware/kernel do Raspberry Pi tem sido (como geralmente são) prestativos com quem está tentando rodar/migrar os sistemas para 64 bits. A opção "arm_64bit" para o processador ARM iniciar no modo 64 bits foi inclusa oficialmente no firmware no dia 12 de abril, anteriormente já era possível realizar essa inicialização, mas por meio da opção "arm_control=0x200". Ambas opções são utilizadas no arquivo de configuração /boot/config.txt.

A porta serial, 4 cores, hub USB e rede (ethernet) já estão funcionando.  Ainda há aparentemente alguns problemas ao conectar certos dispositivos (Wi-Fi) ao USB e de desempenho do driver do MicroSD. Já foi possível entrar na interface gráfica (xfce4 desktop + lightdm), embora o driver em uso ainda seja somente do framebuffer (ou seja, sem aceleração de vídeo ainda). Nada de som, decodificação de hardware dos vídeos ou câmera por enquanto. Vários outros pequenos problemas ainda estão sendo resolvidos.

Alguns benchmarks foram rodados, o último indicou cerca de 11% de ganho em varias operações com inteiros e quase nada em operações com decimais, entretanto ainda é cedo para se ter testes conclusivos sem uma distro estável.

Há pessoas também trabalhando na distro gentoo, onde já foi possível dar boot com sua userland. A userland do Arch Linux para ARM também já foi confirmada que está funcionando pós boot. Em testes foi confirmado também o boot da userland de 32 bits do Raspbian com o kernel 64 bits.

A imagem experimental com kernel e userland em 64 bits pode ser baixada nesse link: rpi3-arm64-debian-20160414.img.xz

Apesar de não estável (e com recursos faltando), diversos avanços foram e estão sendo feitos para trazer uma distro totalmente 64 bits não oficial. Ainda não se sabe é claro quando sairá uma versão estável, entretanto essa realidade parece cada dia mais próxima.

Referências:
https://www.raspberrypi.org/forums/viewtopic.php?f=72&t=137963
https://github.com/raspberrypi/firmware/commit/efdcf1683e7c696e53fa28ab13c973cb32f09792
https://github.com/raspberrypi/firmware/issues/579#issuecomment-205525205
https://forums.gentoo.org/viewtopic-t-1041352-postdays-0-postorder-asc-start-0.html
https://github.com/Electron752/boot64-rpi3
Imagem: http://raspi.tv/2016/raspberry-pi-3-model-b-launches-today-64-bit-quad-a53-1-2-ghz-bcm2837

3 comentários:

  1. Show de bola, essa notícia veio pra calar a minha boca. Logo, logo estaremos com o OS totalmente 64-Bits estável.

    ResponderExcluir
    Respostas
    1. Seria ótimo, melhor ainda se viesse o Raspbian oficial :)

      Excluir
  2. Não sei sei isso é realmente uma vantagem. Os sistemas de 64 bits também ocupam mais memória e no caso da Raspberry que tem apenas 1G, ainda é vantagem rodar 32bits. Um exemplo é a plataforma Intel que mesmo sendo bem suportada em 64 bits, com menos de 4G de memória ainda é melhor rodar em 32 bits.

    ResponderExcluir