Sur un ordinateur à carte unique exécutant Linux, existe-t-il un moyen de lire le contenu des registres de configuration de périphérique qui contrôlent le matériel? Je pense que ce serait un emballage pour inw()
.
Je cherche quelque chose d'équivalent à la commande U-boot memory dump ( md
), à utiliser dans le contexte du débogage des pilotes.
Réponses:
Si vous connaissez l'adresse physique de l'appareil, vous pouvez utiliser devmem2.
la source
Je ne sais pas si vous pouvez le faire directement avec un noyau vanille.
Mais il devrait être assez simple d'écrire un pilote simple qui utilise un "fichier" dans / proc pour exporter le contenu de la mémoire que vous aimeriez voir.
Ensuite, vous pouvez lire votre "fichier" avec un simple script et avoir accès à cette mémoire.
la source
Je pourrais être complètement et totalement faux à ce sujet, et pardonnez-moi si je le suis, mais si la commande md d'uboot ne fait que lire les adresses mémoire mappées aux registres de l'appareil et vous renvoyer le contenu, ne pourriez-vous pas lire ces mêmes emplacements de mémoire avec une utilisation intelligente de
dd if=/dev/mem ...
?la source
La configuration du périphérique PCI dans / sys / bus / pci / devices / * / config est-elle utile?
la source
busybox devmem
busybox devmem
est ma version préféréedevmem2
qui a été mentionnée à: /unix//a/134661/32558devmem2
est venu dans de nombreuses versions différentes de plusieurs amonts, notamment Buildroot http://free-electrons.com/pub/mirror/devmem2.cMais un utilitaire Busybox est plus canonique, largement disponible et maintenu.
Par exemple, a
devmem2
été rejeté de Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595805 (mais un paquet Ubuntu a néanmoins été créé).Vous pouvez l'obtenir dans Ubuntu avec:
Utilisation: lire 4 octets à partir de l'adresse physique
0x12345678
:Écrivez
0x9abcdef0
à cette adresse:Voici quelques façons intéressantes de tester
devmem
: /programming/12040303/accessing-physical-address-from-user-space/45127890#45127890la source
Il existe un utilitaire appelé pcimem ( https://github.com/billfarrow/pcimem )
Vous pouvez l'utiliser pour lire et écrire sur / depuis des périphériques PCI.
la source