J'ai un routeur qui est MIPS32, MSB. Je veux exécuter gdb/gdbserver sur le routeur (noyau RTL8198).Je veux exécuter gdb/gdbserver sur le routeur MIPS32
# cat /proc/cpuinfo
cat /proc/cpuinfo
system type : RTL8198
processor : 0
cpu model : 56322
BogoMIPS : 498.07
tlb_entries : 32
mips16 implemented : yes
mais, tous les gdb/gdbserver je l'ai trouvé sur Internet ont été omis de fonctionner avec des messages d'erreur, le message "introuvable" ou "instruction illégale"
Comme je sais, "not found" indique que il n'y a pas de bibliothèque, alors j'ai vérifié la bibliothèque par readelf et essayé de copier/lib dans le routeur.
mais, dans le routeur, je ne peux pas créer de fichier dans/lib car c'est un système de fichiers en lecture seule. J'ai également essayé LD_LIBRARY_PATH, mais il a également échoué.
# ls -al /var/lib
ls -al /var/lib
drwxr-xr-x 3 root root 0 Aug 3 22:39 .
drwxr-xr-x 19 root root 0 Aug 4 22:24 ..
-rw-r--r-- 1 root root 268731 Aug 3 22:39 ld.so.1
-rw-r--r-- 1 root root 2767185 Aug 3 22:38 libc.so.6
-rw-r--r-- 1 root root 42334 Aug 3 22:37 libdl.so.2
drwxr-xr-x 2 root root 0 Aug 2 22:24 misc
# export LD_LIBRARY_PATH=/var/lib
export LD_LIBRARY_PATH=/var/lib
# ./gdbserver
./gdbserver
/bin/sh: ./gdbserver: not found
#
Donc, j'ai essayé de me construire. mais je ne sais pas comment ... Je ne peux pas résoudre beaucoup d'erreurs de construction.
Y at-il quelqu'un qui peut le résoudre? ou il là quelqu'un qui connait le lien URL de mips32 gdbserver pour RTL8198?
Essayez d'utiliser le chemin complet (par exemple '/ foo/bar/gdbserver'). Aussi, essayez 'ldd/foo/bar/gdbserver' pour voir si elle peut trouver les bibliothèques et/ou où elle les veut. 'gdbserver' est un programme [pas une lib] et n'a besoin que de quelques librairies standard. Aussi, qu'en est-il de l'utilisation de JTAG pour le débogage? –
1. Quelle est la signification du chemin complet? J'ai déjà essayé avec "/ var/lib". n'est-ce pas le chemin complet? 2. ldd n'est pas dans ma busybox. 3. Je n'ai pas JTAG et je ne sais pas comment utiliser JTAG .. peut-être que je devrais l'étudier. – jhsong
Le chemin complet signifie "/ var/lib/quelquechose" par rapport à/var/lib et à faire ./whatever. JTAG est une interface matérielle. Votre puce prend en charge EJTAG, ce qui permet le débogage. En règle générale, vous achetez un adaptateur JTAG peu coûteux qui se connecte à votre système de développement via USB et dispose d'un câble JTAG qui se connecte à l'interface/broches JTAG sur votre appareil [avec quelques logiciels]. C'est assez standard pour les systèmes SoC d'avoir l'interface. L'EJTAG peut être utilisé pour faciliter la connexion à gdbserver. Google: EJTAG Voir: https://www.linux-mips.org/archives/linux-mips/2008-08/msg00156.html –