arm64カーネルの使用中に/ proc / cpuinfoに含まれる情報には、32ビットarmバージョンよりも少ない情報が含まれるため、RPi.GPIOライブラリなどによってシステムがRaspberryPiとして認識されなくなります。
特に、個々のCPUの下にあるハードウェア/リビジョンラインが欠落していると、特定のモデルの識別に使用されているため、問題が発生しているようです。
ソースコードで確認できることから、arm64の場合、cpuinfoはここから取得されます: https :
arm64カーネルを使用した/ proc / cpuinfoの内容:
processor : 0
BogoMIPS : 38.40
Features : fp asimd evtstrm crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
... ... ...
私が期待したこと(32ビットアームカーネルで実行、シリアル削除):
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
... ... ...
Hardware : BCM2709
Revision : a22082
Serial : 00000000XXXXXXXX
追加のシステム情報:
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
HYPRIOT_OS="HypriotOS/arm64"
HYPRIOT_OS_VERSION="v1.1.1"
HYPRIOT_DEVICE="Raspberry Pi 3 64bit"
HYPRIOT_IMAGE_VERSION="v20170303-185520"
$ uname -a
Linux black-pearl 4.9.13-bee42-v8 #1 SMP PREEMPT Fri Mar 3 16:42:37 UTC 2017 aarch64 GNU/Linux
この問題により、すべてのRasberry PiGPIOなどのスクリプトがこのアーキテクチャで使用できなくなります。
/proc/device-tree/system/linux,revision
と/proc/device-tree/system/linux,serial
介してその情報を引き続き利用できるようにします。 /proc/device-tree/model
および/proc/device-tree/serial-number
。これは修正されません。
(ユーザースペースライブラリやカーネルにパッチを適用せずに)これを回避する簡単な方法は、必要に応じて偽のバージョンの/proc/cpuinfo
をバインドマウントすることです。 たとえば、ここにある私の投稿を参照して
rpi-4.19.y
カーネルを使用すると、これは、たとえばpicamera
libを機能させるのに十分であり(たとえば、wiringpi
64ビットビルド(64ビットカーネル、64ビットユーザースペース)。 YMMV。
たとえば、ターゲットアプリのマウント名前空間を使用して、この回避策がシステムの他の部分に影響を与えないようにすることができます(ただし、ほとんどの正常に動作する64ビットユーザーランドのものは、
/proc/cpuinfo
ではなく、デバイスツリーをチェックするようです。気にしないようです^-^)。
hth、
坂木
最も参考になるコメント
(ユーザースペースライブラリやカーネルにパッチを適用せずに)これを回避する簡単な方法は、必要に応じて偽のバージョンの
/proc/cpuinfo
をバインドマウントすることです。 たとえば、ここにある私の投稿を参照してrpi-4.19.y
カーネルを使用すると、これは、たとえばpicamera
libを機能させるのに十分であり(たとえば、wiringpi
64ビットビルド(64ビットカーネル、64ビットユーザースペース)。 YMMV。hth、
坂木