Domanda:
Perché Raspberry Pi 4b afferma che il suo processore è armv7l quando nelle specifiche ufficiali è ARM v8? Come cambiarlo?
Piotrek
2019-07-31 23:10:14 UTC
view on stackexchange narkive permalink

Devo eseguire il container Docker MongoDB su Raspberry Pi 4B. Il mio Raspberry ha Raspbian preimpostato (già installato) su scheda SD, non ho installato il sistema operativo da solo.

L'immagine docker MongoDB supporta arm64v8. Ma quando provo a eseguire container, afferma che non ci sono immagini disponibili per la mia macchina armv7 a 32 bit .

La specifica ufficiale Raspberry Pi 4B afferma che ha un processore ARMv8 quindi mongodb dovrebbe essere installato senza problemi. Si scopre che non è un problema con Mongo, poiché il comando linux lscpu afferma anche che la mia macchina è armv7l.

Cosa mi consiglieresti di fare ora ? Posso in qualche modo configurare raspbian in modo che affermi che funzioni su armv8 ?

Due risposte:
ben_nuttall
2019-08-01 00:18:01 UTC
view on stackexchange narkive permalink

I Raspberry Pi 3 e 4 hanno CPU a 64 bit. Tuttavia, Raspbian è un sistema operativo a 32 bit, quindi le immagini della scheda SD funzionano su tutti i modelli Pi. A seconda di dove stai guardando, il Pi riporterà armv6 o armv7 (di solito armv7) anche se in realtà è in esecuzione in armv6 userland e nonostante l'hardware sia effettivamente armv8. Alcuni altri sistemi operativi forniscono immagini a 64 bit ma sono meno comuni.

Puoi spiegare la differenza tra la tua risposta e la risposta di * @goldilocks *?
Anche questa risposta è giusta, ma si concentra sul docker. Sto solo parlando dell'hardware e del sistema operativo Raspbian. Come hanno detto, non è possibile eseguire applicazioni a 64 bit su un kernel a 32 bit. Devi passare a un sistema operativo a 64 bit o utilizzare un altro database.
goldilocks
2019-07-31 23:36:11 UTC
view on stackexchange narkive permalink

I contenitori Docker utilizzano lo stesso kernel dell'host. Ci sono due kernel precompilati distribuiti con Raspbian, uno ARMv6 per i modelli 1 e Zeros e uno ARMv7 per i modelli multicore. Quest'ultimo funziona anche sui modelli ARMv8 a 64 bit, 1 poiché sono compatibili con le versioni precedenti.

Non è possibile eseguire uno spazio utente a 64 bit su un kernel a 32 bit. Sebbene sia possibile utilizzare un kernel a 64 bit, ciò significa compilarlo da soli o trovare una distribuzione che ne abbia uno.

Sfortunatamente, l'anno scorso Mongo DB ha abbandonato il supporto per le piattaforme a 32 bit. La soluzione migliore è provare una distribuzione a 64 bit; se cerchi in giro online troverai blog su questo, ad esempio: https://andyfelong.com/2019/01/mongodb-3-2-64-bit-running-on-raspberry-pi-3 -with-caveats /


  1. La stranezza in questo è davvero il Pi 2B, che è un dual core ARMv7 a 32 bit. Questo è quando è stato introdotto il secondo kernel stock.
Grazie mille, penso di aver capito il problema ora. Sembra che il modo più semplice sia installare una distribuzione a 64 bit. Ne consigliate qualcuno? Se alcune distribuzioni Linux supportano Raspberry Pi 3, funzionerà anche su RPi4?
Dovresti fare nuove domande sulle tue domande aggiuntive.
Comincerei con Debian buster, che è ciò che viene utilizzato nel blog dal collegamento. Raspbian è basato su di esso (si noti che anche la versione corrente è "buster") e in gran parte identico, il che dovrebbe semplificarvi altre cose.
`La particolarità di questo è davvero il Pi 2B, che è un dual core ARMv7 a 32 bit` - non ci sono due" versioni "del 2B? quest'ultimo avente lo stesso SOC del 3B? (solo per confondere ancora di più il problema) (ed entrambi sono quad core non dual core)


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...