Arm64用のUbuntu 18.04サーバーで使用しているチップ(Raspberry Piのバージョン)を見つけるにはどうすればよいですか?チェックできるファイルまたは実行できるコマンドは何ですか?/proc/cpuinfoには有用な情報はありませんが、piについて言及されていない一般的な詳細がいくつかあります。
少なくともarm64用のUbuntu 18.04サーバーでRaspberry Pi 3 Bを使用している場合、次のコマンドを実行すると、リビジョンを含むボードが表示されます。
lshw
読みやすく、冗長度の低い出力は次のようになります。
lshw -short
これにより、ボードは "Raspberry Pi 3 B Rev 1.2"になりました。これは、この場合に必要なものです。
コマンド lscpu
は探しているものです。コマンドの出力例を次に示します(私のRaspberry Pi 3B +で取得):
lscpu
次の出力が生成されます。
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Model: 4
Model name: ARMv7 Processor rev 4 (v7l)
CPU max MHz: 1200,0000
CPU min MHz: 600,0000
BogoMIPS: 38.40
Flags: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
別のオプションは inxi
コマンドです(Sudo apt install inxi
が存在しない場合はインストールする必要がある場合があります)。フラグ-C
を次のように使用します。
inxi -C
次の出力が生成されます。
CPU: Quad core ARMv7 rev 4 (v7l) (-MCP-) (ARM)
clock speeds: max: 1200 MHz 1: 1200 MHz 2: 1200 MHz 3: 1200 MHz 4: 1200 MHz
ボードに搭載されているチップの識別については、ボード上のチップやメーカーのWebサイトで情報を確認したり、技術的な詳細を入手するためのさまざまな販売店を確認したりできます。
私はpigpioをDebian arm64に移植しようとしましたが、最終的に私の試みは失敗しました。これは、Debian arm64カーネルがpigpioが依存するユーザースペースメールボックスインターフェイスをサポートしていないことを発見したためです。 Debian arm64カーネルを実行しています。これはubuntu arm64でも機能すると思います。
あなたが発見したように、/ proc/cpuinfoにはこれらのカーネルのCPUコア情報しかありません。幸いなことに、情報は/ procの他の場所にあります
まず、デバイスがPiであるかどうかを確認するために、/ proc/device-tree/modelを確認しました。これにはデバイスを説明するテキスト文字列が含まれているため、誤検知はほとんどありません。
/ proc/device-tree/system/linux、revisionで使用したリビジョンコードを取得するには、ビッグエンディアンのバイナリ整数としてリビジョンコードを含めます。したがって、ファイルから2進整数として読み取ってから、リトルエンディアンに変換する必要があります(これにはntohlを使用しました)。
私のコードは https://github.com/joan2937/pigpio/pull/255/commits/2e229d667fde8a2a881d5aa8482b2bb936b09f26 で確認できます