Linux: /proc/cpuinfo manquant matériel/révision/série sur arm64

Créé le 11 juil. 2017  ·  4Commentaires  ·  Source: raspberrypi/linux

Les informations contenues dans /proc/cpuinfo lors de l'utilisation d'un noyau arm64 contiennent moins d'informations que la version arm 32 bits, ce qui fait que le système n'est pas reconnu comme un Raspberry Pi, par exemple par la bibliothèque RPi.GPIO.

En particulier, les lignes Matériel/Révision manquantes sous les processeurs individuels semblent poser problème, car elles sont utilisées pour l'identification du modèle spécifique.

D'après ce que je peux voir dans le code source, pour arm64 le cpuinfo vient d'ici : https://github.com/raspberrypi/linux/blob/rpi-4.12.y/arch/arm64/kernel/cpuinfo.c , tandis que pour arm il est généré dans setup.c (serait https://github.com/raspberrypi/linux/blob/rpi-4.12.y/arch/arm64/kernel/setup.c pour arm64).

Contenu de /proc/cpuinfo avec le noyau 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

... ... ...

Ce à quoi je m'attendais (fonctionnant sur un noyau de bras 32 bits, série supprimée):

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

Informations système supplémentaires :

$ 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

Commentaire le plus utile

Une solution de contournement simple, bien que pas très élégante, pour cela (sans patcher les bibliothèques de l'espace utilisateur ou le noyau) consiste à monter par liaison une fausse version de /proc/cpuinfo si nécessaire ; voir par exemple mon post ici .

Avec le noyau rpi-4.19.y , cela est suffisant pour par exemple faire fonctionner la lib picamera (voir par exemple ici (noyau 64 bits, espace utilisateur Raspbian 32 bits dans ce cas)), et iirc permettra une version 64 bits de wiringpi pour fonctionner correctement (noyau 64 bits, espace utilisateur 64 bits). YMMV.

Vous pouvez utiliser, par exemple, un espace de /proc/cpuinfo , et ainsi de suite ne semble pas s'en soucier ^-^).

hth,
sakaki

Tous les 4 commentaires

Ce problème rend tous les scripts Rasberry Pi GPIO etc. inutilisables sur cette architecture.

  1. Nous ne prenons pas en charge les versions 64 bits, bien que s'il y a des choses simples que nous pouvons faire (comme héberger des defconfigs pour arm64), alors nous le ferons.
  2. Lorsque nous prendrons en charge arm64, ce sera avec le nombre minimum absolu de modifications apportées au noyau en amont (idéalement aucun), et le contenu de /proc/cpuinfo ne figurera pas en haut de la liste des priorités. Le numéro de révision de la carte et le numéro de série sont des concepts qui ne semblent pas exister dans l'architecture arm64, mais nous continuerons à rendre ces informations disponibles via /proc/device-tree/system/linux,revision et /proc/device-tree/system/linux,serial , avec des versions lisibles par l'homme dans /proc/device-tree/model et /proc/device-tree/serial-number .

Ceci n'est pas une solution.

Une solution de contournement simple, bien que pas très élégante, pour cela (sans patcher les bibliothèques de l'espace utilisateur ou le noyau) consiste à monter par liaison une fausse version de /proc/cpuinfo si nécessaire ; voir par exemple mon post ici .

Avec le noyau rpi-4.19.y , cela est suffisant pour par exemple faire fonctionner la lib picamera (voir par exemple ici (noyau 64 bits, espace utilisateur Raspbian 32 bits dans ce cas)), et iirc permettra une version 64 bits de wiringpi pour fonctionner correctement (noyau 64 bits, espace utilisateur 64 bits). YMMV.

Vous pouvez utiliser, par exemple, un espace de /proc/cpuinfo , et ainsi de suite ne semble pas s'en soucier ^-^).

hth,
sakaki

Cette page vous a été utile?
0 / 5 - 0 notes