Saya punya skrip python yang menggunakan sys.platform.startswith ('linux') untuk menguji apakah ada di linux atau tidak, tapi kemudian saya tidak bisa membedakan antara prosesor x86 / 64, dan ARM raspberry pi. prosesor
Alasan saya memerlukan ini, adalah untuk menjalankan skrip eksternal yang dikompilasi untuk mac, linux x86 / 64, atau linux ARM untuk raspberry pi.
Dari apa yang bisa saya katakan, sebenarnya tidak ada cara terpadu untuk mengatakan bahwa Anda sebenarnya menggunakan pi raspberry. Bantuan apa pun akan dihargai.
Jawaban:
Anda dapat menggunakan
os
modul Python untuk mendapatkan informasi ini melaluiuname
:Fungsi ini harus menyediakan platform dan informasi lain di sebagian besar distribusi Linux atau seperti Unix.
Dari dokumentasi Python:
sumber
os.uname()[4][:3] == 'arm'
startswith
tidakstartsWith
. Terima kasih, ini membantu.Saya menemukan Anda bisa mendapatkan model dan versi Pi dari:
/ sys / firmware / devicetree / base / model
Contoh: Raspberry Pi 3 Model B Rev 1.2
Saya memiliki skrip shell untuk mencari ini dan mengembalikan konten jika ada. Panggilan OS untuk membaca file jika ada seharusnya membuat Anda benar. Premisnya adalah, jika tidak ada, itu pasti bukan RPi. Jika ya, maka periksa isinya untuk memastikan.
sumber
Ini lebih merupakan masalah dengan munculnya Pi 2 (yang tidak mudah dibedakan dari Beaglebone Black). Level detail tertinggi ditemukan di / proc / cpuinfo pada sistem berbasis Linux (baris 'Hardware'). Berikut adalah contoh untuk menguraikan itu, dari kode GPIO Adafruit:
https://github.com/adafruit/Adafruit_Python_GPIO/blob/master/Adafruit_GPIO/Platform.py
sumber
Informasi pengidentifikasi sistem terbaik yang dapat diterapkan secara luas yang saya temukan adalah dengan:
Ini tampaknya memberikan output yang sama dengan perintah shell
uname -a
. Dalam kebanyakan kasus, output yang dikembalikan pada dasarnya sama (string bukannya 5-tuple) seperti padaos.uname()
.Yang sudah saya uji dan temukan output yang setara adalah OSX 10.9.5, Ubuntu 14.04, dan Raspbian (??) Wheezy. Pada NAS Synology, saya mendapatkan lebih banyak informasi dari
platform._syscmd_uname('-a')
versi:Melihat "synology" dalam output di sana mengidentifikasinya sebagai lingkungan di mana hal-hal berperilaku tak terduga.
sumber
Cara yang lebih baik untuk melakukan ini ( cuplikan kode Python ):
sumber
Pada PI 3
Karena:
sumber