2016-08-04 1 views
1

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?

+0

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? –

+0

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

+0

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 –

Répondre

0

Vous obtenez « instruction illégale » parce que votre routeur n'est pas une pleine mise en œuvre MIPS, mais son un Lexra, vous pouvez trouver plus sur ce here

Edit: Essayez this gdbserver