¿Hay alguna manera de determinar si el Raspberry Pi actual es un Modelo 2 B y 3 con Raspbian Jessie Lite 8.0 ?
Esto se debe a que tengo un particular bootstrap.sh
escrito en Bash donde necesita establecer el atributo txpower
para un dongle USB Wi-Fi (aquí, Raspberry Pi 2) usando un controlador de chipset Ralink RT5370 .
Configuré los atributos inalámbricos usando iwconfig
(lo cual, sé que está en desuso, pero actualmente hace el trabajo, así que no lo estoy cambiando).
Dado que, en Raspberry Pi 3, el conjunto de chips de Wi-Fi interno es un conjunto bcm
de chips basado en el que no permitirá que se ejecute el siguiente comando:
iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0dBm
Con Raspberry Pi 3, el comando mencionado anteriormente funciona simplemente eliminando dBm
del comando mencionado anteriormente:
iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0
Me gustaría agregar un cheque si el modelo Raspberry Pi es 2 o 3 usando Bash.
¿Alguna pista?
En caso de que alguien quiera pasar por bootstrap.sh
: Bootstrapping for TWIN
Notas
Verifiqué que no
dBm
es necesario , también en el caso de Raspberry Pi 2 con el chipset Ralink , por lo tanto, para no ser ambiguos, se puede usar el mismo comando para ambos Raspberry Pis viz.iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0
Es interesante observar que para los dongles USB con Wi-Fi externo, se debe realizar lo siguiente (para Raspberry Pi 2 ):
ifconfig wlan0 down iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0 ifconfig wlan0 up
mientras que para los módulos de Wi-Fi incorporados (Raspberry Pi 3) no hay necesidad de hacerlo
ifconfig up and down
. Solo funciona eliwconfig
comando directo .
Respuestas:
devuelve algo como
fuente
Por tipo de CPU
Se puede comprobar la versión RP _ con el comando,
uname
. Las diferentes versiones de RPi tienen diferentes arquitecturas de CPU. El RPi 2 tiene un brazo7, mientras que el 3 tiene un brazo8.Por revisión de hardware
Si necesita ser más específico, puede verificar la entrada de revisión desde la salida de
cat /proc/cpuinfo
. Si solo desea precisar el número de revisión, el siguiente comando debería hacerlo:Números de revisión
Esta página web tiene un gráfico útil que he copiado aquí.
fuente
/proc/cpuinfo
antes. Parece la mejor opción, yauname -m
que no dice mucho.uname -m
uname
solo enumerará la arquitectura de destino para la que se creó Linux, y no es confiable para determinar el tipo de CPU. Raspbian RPI3 actual se ejecuta en modo de 32 bits. enumeraráarmv7
, si usa unAARCH64
(arm64
) linux, diráarmv8
, si usa el antiguo raspbian RPI1, diráarmv6
.Existen muchos métodos (de confiabilidad variable) para determinar esto. Uno de los más completos y confiables es el
gpio -v
que produce el siguiente resultado.Esto podría hacerse de manera más elegante escribiendo un programa simple, utilizando las funciones proporcionadas por
wiringpi
. Estos están bien documentados y la fuente está fácilmente disponible.fuente
Creé un script bash que proporcionará la información del modelo basada en la Revisión.
Si lo mejora, avíseme.
fuente
No tengo suficiente representante para comentar sobre la respuesta de @Andy Delgado, pero heres una versión diferente de su código usando algunas características de bash más nuevas.
Aparte:
REVISIONS
se define dentro de una función ya que la uso sobressh
iessh some-host "$(declare -f); check_pi_version"
fuente
Manera simple :
dmesg | grep "Machine model:"
fuente
[Tue Apr 11 15:59:32 2017] Machine model: Raspberry Pi 3 Model B Rev 1.2
en mi Pi. Puede no ser el método más robusto.dmesg
es un búfer circular. Por lo tanto, esta es una metodología defectuosa.Machine model: Raspberry Pi 2 Model B Rev 1.1
, sin root también.