¿Hay algún kernel de 64 bits para Raspberry Pi 3? Miré a mi alrededor y desde las fuentes verifico la página oficial y los siguientes núcleos se enumeran allí:
- NOOBS: este es el instalador, no hay sistema operativo en sí mismo, ¿verdad?
- Rapsbian: solo una descarga, así que supongo que 32 bits es compatible con todas las versiones de Pi
- Ubuntu MATE - aarch32 (ARMv7)
- Ubuntu Ubuntu Core: parece solo 32 bits
- OSMC - mismas descargas para "Raspberry Pi 2/3", por lo que 32 bits
- LibreELEC: compilación combinada para 2 y 3, solo 32 bits
- PiNet: no sé qué es esto, pero duda de 64 bits
- RISC OS: no parece Linux
- Estación Meteorológica - sí, solo no
¿Entonces no parece que haya disponible un kernel oficial de 64 bits? ¿Hay alguna no oficial? ¿Puedo compilar uno y esperar que funcione (supongo que no, pero no está de más preguntar ...)? ¿Al menos alguien trabaja en eso? Me encantaría tener acceso a números nativos de 64 bits.
En otra nota, ¿qué diferencia hay entre armv7 y armv8? Gentoo ofrece tarballs de etapa 3 para armv7. ¿Funcionará en Pi 3, que es armv8?
Respuestas:
De lo poco que he encontrado, no hay nada estable y oficial. Algunos han conseguido uno para compilar, pero luego hay problemas con los controladores / módulos.
Estos enlaces pueden interesarle con respecto a este tema.
Entrando en el estado de ejecución aarch64
¿Raspbian Jessie (64 bits) para RPi3?
fuente
El consenso general es que un núcleo de 64 bits no aumentará el rendimiento en el Pi, ya que los únicos 2 beneficios reales de un núcleo de 64 bits son:
Además, 64 bits frente a 32 bits en chips ARM no es el gran salto de rendimiento que tenía en los chips x86, porque los chips x86 tenían actualizaciones de arquitectura significativas cuando llegaron a 64 bits, mientras que los chips ARM ya eran bastante sólidos en las versiones de 32 bits.
¡Siéntete libre de experimentar! :)
fuente
Un beneficio de 64 bits que todos parecen olvidar es que ARMv8 tiene un número significativamente mayor de registros que ARMv7. También tiene un rendimiento de punto flotante mucho mejor.
No es solo un complemento de ARMv7, es una arquitectura completamente nueva.
fuente
OpenSUSE lanzó su imagen Raspberry Pi de 64 bits.
https://en.opensuse.org/HCL:Raspberry_Pi3
fuente
He encontrado algunas mejoras significativas en el rendimiento de las compilaciones de 64 bits frente a 32 bits al ejecutar mis puntos de referencia de Android en una tableta con un ARM Cortex-A53 de 1.3 GHz. Los últimos se compilan a través de Eclipse y, en tiempo de ejecución, detectan si la CPU es ARM, Intel o MIPS, luego arquitectura de 32 bits o 64 bits.
En compilaciones anteriores de Windows para CPU de Intel, el funcionamiento de 64 bits podría ser mucho más rápido que el de 32 bits debido al uso de instrucciones SIMD de tipo SSE. Sin embargo, el compilador posterior de 32 bits, con incompatibilidad hacia atrás, produce prácticamente el mismo código y una velocidad similar.
Los detalles de los puntos de referencia de Android se muestran a continuación, mostrando resultados de 32 bits y 64 bits del A53 y a través de un Cortex-A9 de 1.2 GHz. Al final hay algunos listados de códigos de ensamblaje que identifican las diferentes instrucciones que se utilizan. A continuación se muestra un resumen de los resultados.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Punto de referencia de Whetstone: (bucles pequeños) rendimiento similar, con una calificación general influenciada por la compilación de la prueba con funciones EXP.
Benchmark de Dhrystone: último MIPS / MHz 1.09 32 bit, 1.96 64 bit, 1.10 A9: quizás 64 bit más optimizado.
Benchmark de Linpack - (N = 100) 64 bit DP 1.97 x más rápido, SP 2.67 x - ver código de ensamblaje.
Livermore Loops - (24 granos) promedio 1.5 veces más rápido, rango 0.8 a 7.9 veces
Pruebas de caché L1 / L2 y RAM
MemSpeed - cálculos flotantes y enteros - gana cachés 2.2 x, RAM 1.5 x.
BusSpeed - transmisión de datos enteros y lectura de ráfaga - transmisión 2.0 x L1, 1.5 x L2, 1.25 x RAM - ráfagas 2.6 x L1, L2 y RAM similares.
RandMem: lectura y escritura en serie y aleatoria de la misma estructura de indexación compleja, generalmente un poco más rápido en la lectura pero lectura / escritura similar / más lenta.
Luego están las versiones MP de lo anterior e intenta medir el SP MFLOPS máximo (MP-MFLOPS) con un máximo de 4 núcleos de 2.7 GFLOPS 32 bit y 5.5 GFLOPS 64 bit. También hay una versión que usa intrínsecos NEON en la que el compilador de 64 bits genera instrucciones alternativas de hasta 10.8 GFLOPS frente a 5.7 a 32 bits - vea la lista de ensamblaje. También tengo versiones de estos puntos de referencia para Windows 10 y tabletas basadas en Android Intel Atom: Windows de 64 bits y 32 bits, Android de 32 bits, 64 bits completos no implementados completamente, kernel de Linux de 64 bits pero Android de 32 bits.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
Además, tengo versiones de 32 bits y 64 bits de Linux / Intel.
Roy Longbottom
fuente
Así es como compilo el núcleo RPI3 Aarch64:
Primero, necesitará Linaro aarch64: https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu.tar .xz
Descomprima, póngalo en alguna parte, ejemplo: /opt/toolchains/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu
Aquí está mi script para descargar firmware, VC, fuente de kernel y compilar kernel con módulos. Utilizo este script para mi servidor Jenkins, así que elige lo que necesita:
Ahora solo descomprime BOOT.tar.gz y ponlo en tu tarjeta sd.
IMPORTANTE : debe poner arm_control = 0x200 a config.txt para que arranque el núcleo AARCH64
O simplemente puede usar mi precompilado en mi Jenkins: https://jenkins.sandpox.org/job/RPI3_KERNEL_AARCH64/
fuente
A partir de hoy, parece que Fedora y Archlinux están bien soportados.
Si sigue el camino del Arco, esto lo ayudará a construir la imagen (para mí en linux / rpi3 era
make linux
) y esto lo ayudará a iniciar el wifi.En caso de que necesite asegurarse de qué frambuesa tiene, use esta guía .
También
arm_control=0x200
está en desuso yarm_64bit
debe usarse en su lugar/boot/config.txt
.fuente