Linux: /proc/cpuinfo tidak ada Perangkat Keras/Revisi/Serial di arm64

Dibuat pada 11 Jul 2017  ·  4Komentar  ·  Sumber: raspberrypi/linux

Informasi yang terkandung dalam /proc/cpuinfo saat menggunakan kernel arm64 berisi informasi yang lebih sedikit daripada versi arm 32-bit, yang menyebabkan sistem tidak dikenali sebagai Raspberry Pi, misalnya oleh perpustakaan RPi.GPIO.

Terutama, baris Perangkat Keras/Revisi yang hilang di bawah masing-masing CPU tampaknya menyebabkan masalah, karena digunakan untuk mengidentifikasi model tertentu.

Dari apa yang saya lihat di kode sumber, untuk arm64 cpuinfo berasal dari sini: https://github.com/raspberrypi/linux/blob/rpi-4.12.y/arch/arm64/kernel/cpuinfo.c , sedangkan untuk lengan itu dihasilkan di setup.c (akan https://github.com/raspberrypi/linux/blob/rpi-4.12.y/arch/arm64/kernel/setup.c untuk arm64).

Isi /proc/cpuinfo dengan kernel arm64:

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

... ... ...

Apa yang saya harapkan (berjalan pada kernel arm 32-Bit, serial dihapus):

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

Informasi sistem tambahan:

$ 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

Komentar yang paling membantu

Solusi sederhana, meskipun tidak terlalu elegan, untuk ini (tanpa menambal pustaka ruang pengguna atau kernel) adalah dengan mengikat-mount versi palsu /proc/cpuinfo bila diperlukan; lihat misalnya posting saya di sini .

Dengan kernel rpi-4.19.y , ini cukup untuk misalnya membuat lib picamera bekerja (lihat misalnya di sini (kernel 64-bit, ruang pengguna Raspbian 32-bit dalam kasus ini)), dan akan iirc mengizinkan build 64-bit dari wiringpi untuk menjalankan OK (kernel 64-bit, ruang pengguna 64-bit). YMMV.

Anda dapat menggunakan misalnya mount namespace untuk aplikasi target Anda untuk mencegah solusi ini memengaruhi seluruh sistem Anda (walaupun sebagian besar userland 64-bit yang berperilaku baik tampaknya memeriksa devicetree, daripada /proc/cpuinfo , dan seterusnya sepertinya tidak peduli ^-^).

ht,
sakaki

Semua 4 komentar

Masalah ini membuat semua skrip Rasberry Pi GPIO dll. tidak dapat digunakan pada arsitektur ini.

  1. Kami tidak mendukung build 64-bit, meskipun jika ada hal sederhana yang dapat kami lakukan (seperti hosting defconfigs untuk arm64) maka kami akan mendukungnya.
  2. Ketika kami mendukung arm64, itu akan terjadi dengan jumlah minimum absolut perubahan pada kernel upstream (idealnya tidak ada), dan konten /proc/cpuinfo tidak akan menjadi prioritas utama. Nomor revisi papan dan nomor seri adalah konsep yang tampaknya tidak ada dalam arsitektur arm64, tetapi kami akan terus menyediakan informasi tersebut melalui /proc/device-tree/system/linux,revision dan /proc/device-tree/system/linux,serial , dengan versi yang dapat dibaca manusia di /proc/device-tree/model dan /proc/device-tree/serial-number .

Ini adalah tidak akan memperbaiki.

Solusi sederhana, meskipun tidak terlalu elegan, untuk ini (tanpa menambal pustaka ruang pengguna atau kernel) adalah dengan mengikat-mount versi palsu /proc/cpuinfo bila diperlukan; lihat misalnya posting saya di sini .

Dengan kernel rpi-4.19.y , ini cukup untuk misalnya membuat lib picamera bekerja (lihat misalnya di sini (kernel 64-bit, ruang pengguna Raspbian 32-bit dalam kasus ini)), dan akan iirc mengizinkan build 64-bit dari wiringpi untuk menjalankan OK (kernel 64-bit, ruang pengguna 64-bit). YMMV.

Anda dapat menggunakan misalnya mount namespace untuk aplikasi target Anda untuk mencegah solusi ini memengaruhi seluruh sistem Anda (walaupun sebagian besar userland 64-bit yang berperilaku baik tampaknya memeriksa devicetree, daripada /proc/cpuinfo , dan seterusnya sepertinya tidak peduli ^-^).

ht,
sakaki

Apakah halaman ini membantu?
0 / 5 - 0 peringkat