On peut programmer facilement un dispositif local avec Altera Quartus II à l'aide d'un USB Blaster. Dans le cas d'un accès distant, on a la possibilité de faire tourner jtagd et jtagconfig sur des hôtes serveur et client séparés et faire la programmation à travers un tunnel SSH, sur le réseau. Dans la pratique, c'est une alternative simple et pas chère de l'Ethernet Blaster.
Dans cet exemple le programmeur Altera USB Blaster est connecté à la machine SRV, tandis que l'environnement de développement Quartus II tourne sur la machine CLNT. Toutes les deux machine tourne le système d'exploitation Linux.
------------------- ----------------------- | FPGA <-> hôte SRV | <<== SSH tunnel sur le réseau ==>> | hôte CLNT: Quartus II | ------------------- -----------------------
Lancer sur la machine SRV le jtagd et mettre en place d'un mot de passe. Préparer l'environnement de développement avec la commande <altera_home>/nios2eds/nios2-command-shell.
SRV:$ <altera_home>/nios2eds/nios2-command-shell SRV:$ jtagd SRV:$ jtagconfig --enableremote <mot de passe>
Maintenant le jtagd écoute sur le port TCP/1309.
Il est important de lancer jtagd de la manière écrit ci-dessus. Quand c'est le Quartus II, qui le lance, l'accès devient impossible.
Enregistrer les suviants sur la machine CLNT dans le fichier $HOME/.jtagd.conf.
Remote1 { Host = "127.0.0.1:1320"; Password = "<mot de passe>"; }
Creer le tunnel SSH vers la machine SRV par exemple à l'aide de la commande suivante.
CLNT:$ ssh -l <utilisateur> -L 1320:localhost:1309 -N -f SRV
On établi le tunnel avec l'option -L. Le jtagd se tourne sur le hôte CLNT et occuper le port TCP/1309, donc on doit utiliser un autre port libre. L'option -N n'établi pas de shell; l'option -f mettre en arrière le processus ssh après une connection réussie. Pour le tunnel, les options -N -f sont parfaits ensemble.
Enfin, on liste les instruments accessibles avec la commande jtagconfig. Préparer l'environnement de développement avec la commande <altera_home>/nios2eds/nios2-command-shell.
SRV:$ <altera_home>/nios2eds/nios2-command-shell SRV:$ jtagd SRV:$ jtagconfig --enableremote <mot de passe>
Maintenant le jtagd écoute sur le port TCP/1309.
CLNT:$ <altera_home>/nios2eds/nios2-command-shell CLNT:$ jtagconfig 1) USB-Blaster on 127.0.0.1:1320 [2-2] 01234567 EPXXXX
On peut utiliser le nouveau, distant, Ethernet Blaster sur le hôte CLNT dans le Programmer du Quartus II.