Hangi model Raspberry Pi'yi çalıştırıyorum?


28

Mevcut Ahududu Pi'nin Raspbian Jessie Lite 8.0 ile 2 Model B ve 3 olup olmadığını belirlemenin bir yolu var mı ?

Belirli bir bulunuyoruz bootstrap.sho özelliğini ayarlamak gerekiyor Bash yazılmış txpowerbir kullanarak bir Wi-Fi USB dongle için (burada, Ahududu Pi 2) Ralink RT5370 yonga seti sürücüsü.

Kablosuz özniteliklerini kullanarak ayarladım iwconfig(ki bu kullanımdan kaldırıldığını biliyorum, ancak şu anda işi alıyor, bu yüzden değiştirmiyorum).

Beri içinde Ahududu Pi 3 iç Wi-Fi yonga seti bir olduğunu bcmaşağıdaki komutu çalıştırmak izin vermez tabanlı yonga seti:

iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0dBm

Raspberry Pi 3 ile yukarıda belirtilen komut sadece yukarıda belirtilen komuttan çıkarılarak çalışır dBm:

iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0

Raspberry Pi modelinin Bash kullanarak 2 veya 3 olup olmadığını kontrol etmek istiyorum.

Herhangi bir ipucu?

Durumda, biri geçmek istiyor bootstrap.sh: TWIN için Bootstrapping

notlar

  • Bunu kontrol dBmedilir gerekli değildir , aynı zamanda söz konusu olduğunda, Ahududu Pi 2 ile Ralink Yongasetisınırlam için aynı komutunu kullanabilirsiniz olmayan belirsizlik biri için dolayısıyla hem Raspberry Pi viz.

    iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0
  • Harici Wi-Fi USB dongles için birinin aşağıdakileri gerçekleştirmesi gerektiğine dikkat etmek ilginçtir ( Raspberry Pi 2 için ):

    ifconfig wlan0 down
    iwconfig wlan0 mode ad-hoc channel 6 essid myadhoc txpower 0
    ifconfig wlan0 up

    gelince ise (Ahududu Pi 3) dahili Wi-Fi modüllerinden orada gerek için ifconfig up and down. Sadece basit iwconfigkomut çalışır.


4
En iyi yaklaşım, model aramak yerine, yapmak istediğiniz şeyi test etmektir (Raspberry Pi 5 nasıl görünür?). Bu durumda, bir Ralink RT5370 Chipset olup olmadığını görün ve uygun şekilde yapılandırın. Yerleşik Wifi sürücüsü ile aynı şekilde.
Thorbjørn Ravn Andersen



Yanıtlar:


40
cat /proc/device-tree/model

gibi bir şey döndürür

Raspberry Pi 3 Model B Rev 1.2

21

CPU Tipine Göre

RPI sürümünü komut ile kontrol edebilirsiniz uname. Farklı RPi sürümleri farklı CPU mimarilerine sahiptir. RPi 2'nin bir kolu7 bulunurken, 3'ün bir kolu 8'dir.

uname -m

Donanım Revizyonuna Göre

Daha spesifik olmanız gerekiyorsa, revizyon girişini çıkışından kontrol edebilirsiniz cat /proc/cpuinfo. Revizyon numarasını tam olarak girmek istiyorsanız, aşağıdaki komut bunu yapmalıdır:

cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}'

Revizyon Numaraları

Bu web sayfasında buraya kopyaladığım kullanışlı bir grafik var.

görüntü tanımını buraya girin


1
Daha /proc/cpuinfoönce gittim . En iyi seçenek gibi görünüyor, çünkü uname -mpek bir şey söylemedi.
Shan-Desai

1
@ Shan-Desai: Düzenlemeden önce onu görüp görmediğinizden emin değilim, ancak proc dosyasından sadece revizyon bilgilerini çıkaracak bir komut ekledim. Umarım yardımcı olur.
Jacobm001

1
Evet, söylediğin şeyi denedim. Karşılaştırma bir arasındaydı Pi 2 Modeli v1.1 ve Pi 3 B Modeli komik bir şey ancak benim olmasıdır Pi 3 hâlâ gösterileri armv7l üzerineuname -m
Shan-Desai

2
Yani / proc / cpuinfo değil / cpu / procinfo
user253751

unamesadece Linux için oluşturulmuş olan hedef mimariyi listeleyecek ve CPU Tipini belirlemek için güvenilmez olacaktır. Mevcut RPI3 Raspbian 32 bit modunda çalışır. o listeler armv7kullanırsanız bir, AARCH64( arm64o diyecek linux) armv8eski RPI1 raspbian kullanırsanız, bu diyecekler armv6.
crasic

6

Bunu belirlemek için pek çok yöntem (değişken güvenilirlik) vardır. En eksiksiz ve güvenilir olanlardan biri gpio -vaşağıdaki çıktıyı üretiyor.

gpio version: 2.44
Copyright (c) 2012-2017 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Pi 3, Revision: 02, Memory: 1024MB, Maker: Embest 
  * Device tree is enabled.
  *--> Raspberry Pi 3 Model B Rev 1.2
  * This Raspberry Pi supports user-level GPIO access.

Bu, sağlanan işlevleri kullanarak basit bir program yazarak daha zarif bir şekilde yapılabilir wiringpi. Bunlar iyi belgelenmiştir ve kaynak hazırdır.

Https://raspberrypi.stackexchange.com/a/85016/8697 adresindeki komut dosyası , Pi ve İşletim Sisteminiz hakkında kapsamlı bilgiler gösterir .


2

Revizyona dayanan model bilgisini sağlayacak bir bash betiği oluşturdum.

Daha iyisini yaparsan, lütfen bana haber ver.

#!/bin/bash
# which_pi.bash
# BASH Script to display Pi Hardware version based on info found in /proc/cpuinfo
# Andy Delgado - April 11, 2017
# Info gleaned from
# http://www.raspberrypi-spy.co.uk/2012/09/checking-your-raspberry-pi-board-version

REVCODE=$(sudo cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^ *//g' | sed 's/ *$//g')

if [ "$REVCODE" = "0002" ]; then
    PIMODEL="Raspberry Pi Model B Rev 1, 256 MB RAM"
fi

if [ "$REVCODE" = "0003" ]; then
    PIMODEL="Raspberry Pi Model B Rev 1 ECN0001, 256 MB RAM"
fi

if [ "$REVCODE" = "0004" ]; then
    PIMODEL="Raspberry Pi Model B Rev 2, 256 MB RAM"
fi

if [ "$REVCODE" = "0005" ]; then
    PIMODEL="Raspberry Pi Model B Rev 2, 256 MB RAM"
fi

if [ "$REVCODE" = "0006" ]; then
    PIMODEL="Raspberry Pi Model B Rev 2, 256 MB RAM"
fi

if [ "$REVCODE" = "0007" ]; then
    PIMODEL="Raspberry Pi Model A, 256 MB RAM"
fi

if [ "$REVCODE" = "0008" ]; then
    PIMODEL="Raspberry Pi Model A, 256 MB RAM"
fi

if [ "$REVCODE" = "0009" ]; then
    PIMODEL="Raspberry Pi Model A, 256 MB RAM"
fi

if [ "$REVCODE" = "000d" ]; then
    PIMODEL="Raspberry Pi Model B Rev 2, 512 MB RAM"
fi

if [ "$REVCODE" = "000e" ]; then
    PIMODEL="Raspberry Pi Model B Rev 2, 512 MB RAM"
fi

if [ "$REVCODE" = "000f" ]; then
    PIMODEL="Raspberry Pi Model B Rev 2, 512 MB RAM"
fi

if [ "$REVCODE" = "0010" ]; then
    PIMODEL="Raspberry Pi Model B+, 512 MB RAM"
fi

if [ "$REVCODE" = "0013" ]; then
    PIMODEL="Raspberry Pi Model B+, 512 MB RAM"
fi

if [ "$REVCODE" = "900032" ]; then
    PIMODEL="Raspberry Pi Model B+, 512 MB RAM"
fi

if [ "$REVCODE" = "0011" ]; then
    PIMODEL="Raspberry Pi Compute Module, 512 MB RAM"
fi

if [ "$REVCODE" = "0014" ]; then
    PIMODEL="Raspberry Pi Compute Module, 512 MB RAM"
fi

if [ "$REVCODE" = "0012" ]; then
    PIMODEL="Raspberry Pi Model A+, 256 MB RAM"
fi

if [ "$REVCODE" = "0015" ]; then
    PIMODEL="Raspberry Pi Model A+, 256 MB or 512 MB RAM"
fi

if [ "$REVCODE" = "a01041" ]; then
    PIMODEL="Raspberry Pi 2 Model B v1.1, 1 GB RAM"
fi

if [ "$REVCODE" = "a21041" ]; then
    # a21041 (Embest, China)
    PIMODEL="Raspberry Pi 2 Model B v1.1, 1 GB RAM"
fi

if [ "$REVCODE" = "a22042" ]; then
    PIMODEL="Raspberry Pi 2 Model B v1.2, 1 GB RAM"
fi

if [ "$REVCODE" = "90092" ]; then
    PIMODEL="Raspberry Pi Zero v1.2, 512 MB RAM"
fi

if [ "$REVCODE" = "90093" ]; then
    PIMODEL="Raspberry Pi Zero v1.3, 512 MB RAM"
fi

if [ "$REVCODE" = "0x9000C1" ]; then
    PIMODEL="Raspberry Pi Zero W, 512 MB RAM"
fi

if [ "$REVCODE" = "a02082" ]; then
    PIMODEL="Raspberry Pi 3 Model B, 1 GB RAM"
fi

if [ "$REVCODE" = "a22082" ]; then
    PIMODEL="Raspberry Pi 3 Model B, 1 GB RAM"
fi

echo "$PIMODEL ($REVCODE)"

Başka bir yapı eğer çok daha verimli olurdu.
Jacobm001

4
Bir anahtar ifadesi daha iyi olurdu.
Shan-Desai

2

@Andy Delgado cevabı üzerine yorum yapmak için yeterli desteğim yok, ancak bazı yeni bash özelliklerini kullanarak kodunun farklı bir versiyonunu bulacağım.

function check_pi_version() {
  local -r REVCODE=$(awk '/Revision/ {print $3}' /proc/cpuinfo)
  local -rA REVISIONS=(
    [0002]="Model B Rev 1, 256 MB RAM"
    [0003]="Model B Rev 1 ECN0001, 256 MB RAM"
    [0004]="Model B Rev 2, 256 MB RAM"
    [0005]="Model B Rev 2, 256 MB RAM"
    [0006]="Model B Rev 2, 256 MB RAM"
    [0007]="Model A, 256 MB RAM"
    [0008]="Model A, 256 MB RAM"
    [0009]="Model A, 256 MB RAM"
    [000d]="Model B Rev 2, 512 MB RAM"
    [000e]="Model B Rev 2, 512 MB RAM"
    [000f]="Model B Rev 2, 512 MB RAM"
    [0010]="Model B+, 512 MB RAM"
    [0013]="Model B+, 512 MB RAM"
    [900032]="Model B+, 512 MB RAM"
    [0011]="Compute Module, 512 MB RAM"
    [0014]="Compute Module, 512 MB RAM"
    [0012]="Model A+, 256 MB RAM"
    [0015]="Model A+, 256 MB or 512 MB RAM"
    [a01041]="2 Model B v1.1, 1 GB RAM"
    [a21041]="2 Model B v1.1, 1 GB RAM"
    [a22042]="2 Model B v1.2, 1 GB RAM"
    [90092]="Zero v1.2, 512 MB RAM"
    [90093]="Zero v1.3, 512 MB RAM"
    [0x9000C1]="Zero W, 512 MB RAM"
    [a02082]="3 Model B, 1 GB RAM"
    [a22082]="3 Model B, 1 GB RAM"
  )

  echo "Raspberry Pi ${REVISIONS[${REVCODE}]} (${REVCODE})"
}

Kenara: REVISIONSBen üzerinden kullandığımızdan bir işlev içinde tanımlanır sshyanissh some-host "$(declare -f); check_pi_version"


-2

Basit yol : dmesg | grep "Machine model:"


Garip, bu denediğimde hiçbir şey çıkmıyor!
goldilocks

@goldilocks Pi'mde görüntüler [Tue Apr 11 15:59:32 2017] Machine model: Raspberry Pi 3 Model B Rev 1.2. En sağlam yöntem olmayabilir.
Milliyollar

@Milliways Bunu benim için yapmamasının nedeni sistemin çok uzun süredir devam etmesi. Bu açılıştan ve dmesgdairesel bir tampon. Dolayısıyla, bu hatalı bir metodolojidir.
goldilocks

@goldilocks OP muhtemelen önyüklemeden sonra bilmek istiyor. Değişmesi muhtemel değildir ;-) OP problemini çözmek için neredeyse kesinlikle daha iyi yöntemler vardır.
Milyonlar

Bence en iyi çözüm. Raspberry Pi 2 ve 3'te mükemmel çalışıyor, Raspbian kullanıyor. 8 günden beri çalışan bir Pi üzerinde test ettim. Bu konudaki diğer çözümler ya yeni araçlar gerektirdi (gpio) ya da cpu revizyon kodunu bir arama tablosuna eşlemelisiniz (ve bakımını yapın). tam olarak adını söyleyen tek komut buydu Machine model: Raspberry Pi 2 Model B Rev 1.1- yani root olmadan.
Eugen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.