Mudanças entre as edições de "Criação de um acesso remoto ao kit MERCURIO IV"
(22 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 18: | Linha 18: | ||
===<span style="color: rgb(0, 255, 0);" data-mce-style="color: #00ff00;">Servidor jTAG (green_host)</span>=== | ===<span style="color: rgb(0, 255, 0);" data-mce-style="color: #00ff00;">Servidor jTAG (green_host)</span>=== | ||
+ | Para facilitar os script abaixo foram estabelecidas duas variáveis onde os login devem ser inseridos, evitando redigitar no código que segue. | ||
+ | export <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">USERBLUE</span>=usuario_bluehost | ||
+ | export <span style="color: rgb(0, 255, 0);" data-mce-style="color: #00ff00;">USERGREEN</span>=usuario_greenhost | ||
+ | export JTAGPORT=60000 | ||
+ | export JTAGPASSWORD=password | ||
+ | echo <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">USERBLUE</span> <span style="color: rgb(0, 255, 0);" data-mce-style="color: #00ff00;">USERGREEN</span> | ||
+ | echo <span style="color: rgb(0, 255, 0);" data-mce-style="color: #00ff00;">$USERGREEN</span> <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE</span> | ||
+ | |||
Na maquina onde está o kit FPGA conectado, será instalado um server jTAG. | Na maquina onde está o kit FPGA conectado, será instalado um server jTAG. | ||
− | * Conectar o jtag através de uma senha ''' | + | * Conectar o jtag através de uma senha '''password''' a ser compartilhada com os alunos. |
/opt/altera/13.0sp1/quartus/bin/jtagd | /opt/altera/13.0sp1/quartus/bin/jtagd | ||
− | /opt/altera/13.0sp1/quartus/bin/jtagconfig --enableremote ''' | + | /opt/altera/13.0sp1/quartus/bin/jtagconfig --enableremote '''$JTAGPASSWORD''' |
− | * Gerar um conjunto de chaves '''jtagserverkey''' '''jtagserverkey.pub''' para acesso remoto através de chave privada e a publica, na pasta /home/<span style="color: rgb(0, 255, 0);" data-mce-style="color: #00ff00;"> | + | * Gerar um conjunto de chaves '''jtagserverkey''' '''jtagserverkey.pub''' para acesso remoto através de chave privada e a publica, na pasta /home/<span style="color: rgb(0, 255, 0);" data-mce-style="color: #00ff00;">$USERGREEN</span> |
ssh-keygen -t rsa -b 4096 | ssh-keygen -t rsa -b 4096 | ||
Generating public/private rsa key pair. | Generating public/private rsa key pair. | ||
− | Enter file in which to save the key (/home/ | + | Enter file in which to save the key (/home/$USERGREEN/.ssh/id_rsa): jtagserverkey |
jtagserverkey already exists. | jtagserverkey already exists. | ||
Overwrite (y/n)? y | Overwrite (y/n)? y | ||
Linha 35: | Linha 43: | ||
Your public key has been saved in jtagserverkey.pub | Your public key has been saved in jtagserverkey.pub | ||
− | * Mudar o nome da chave publica '''jtagserverkey.pub''' para '''authorized_keys'''. Em seguida mover a chave para a conta do <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;"> | + | * Mudar o nome da chave publica '''jtagserverkey.pub''' para '''authorized_keys'''. Em seguida mover a chave para a conta do <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE</span> na nuvem do IFSC (Blue). Essa chave permitirá que os usuarios_red acessem o túnel ssh reverso sem senha. |
mv jtagserverkey.pub authorized_keys | mv jtagserverkey.pub authorized_keys | ||
− | scp -P 2224 authorized_keys <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;"> | + | scp -P 2224 authorized_keys <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE@nuvem.sj.ifsc.edu.br</span>:/home/$USERBLUE/.ssh |
* Testar se a chave criptográfica está funcionando | * Testar se a chave criptográfica está funcionando | ||
− | ssh -i jtagserverkey <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;"> | + | ssh -i jtagserverkey <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE@nuvem.sj.ifsc.edu.br</span> -p 2224 |
* Conferir se a porta 1309 está aberta no green_host. | * Conferir se a porta 1309 está aberta no green_host. | ||
− | netstat -lnt --wide |grep '1309\|State' | + | netstat -lnt --wide |grep '1309\|State' |
+ | |||
+ | Proto Recv-Q Send-Q Local Address Foreign Address State | ||
+ | tcp 0 0 0.0.0.0:1309 0.0.0.0:* LISTEN | ||
+ | |||
* Criar o tunel ssh | * Criar o tunel ssh | ||
− | ssh -oStrictHostKeyChecking=no -i jtagserverkey -R 60000:localhost:1309 <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;"> | + | ssh -oStrictHostKeyChecking=no -i jtagserverkey -R 60000:localhost:1309 <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE@nuvem.sj.ifsc.edu.br</span> -p 2224 -N -f |
+ | |||
+ | ====Script para reconfigurar o tunel ==== | ||
+ | |||
+ | *Crie o arquivo '''jtagserver.sh''' com o conteúdo: | ||
+ | export USERBLUE= | ||
+ | export USERGREEN= | ||
+ | export JTAGPORT=60000 | ||
+ | export JTAGPASSWORD= | ||
+ | /opt/altera/13.0sp1/quartus/bin/jtagd | ||
+ | /opt/altera/13.0sp1/quartus/bin/jtagconfig --enableremote $JTAGPASSWORD | ||
+ | netstat -lnt --wide |grep '1309\|State' | ||
+ | ssh -oStrictHostKeyChecking=no -i jtagserverkey -R $JTAGPORT:localhost:1309 $USERBLUE@nuvem.sj.ifsc.edu.br -p 2224 -N -f -v | ||
+ | |||
+ | * Execute | ||
+ | chmod +x jtagserver.sh | ||
+ | ./jtagserver.sh | ||
===<span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">Na nuvem (blue_host)</span>=== | ===<span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">Na nuvem (blue_host)</span>=== | ||
* Acessar a nuvem com usuario_blue e senha e verificar se existe a pasta '''.ssh'''. | * Acessar a nuvem com usuario_blue e senha e verificar se existe a pasta '''.ssh'''. | ||
− | ssh <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;"> | + | ssh <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE@nuvem.sj.ifsc.edu.br</span> -p 2224 |
ls .ssh | ls .ssh | ||
Linha 61: | Linha 89: | ||
* Conferir se chave publica está aqui. | * Conferir se chave publica está aqui. | ||
ls -la .ssh/authorized_keys | ls -la .ssh/authorized_keys | ||
− | -rw-r--r-- 1 <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;"> | + | -rw-r--r-- 1 <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE</span> Domain Users 741 May 27 22:38 authorized_keys |
* Se OK, fazer logoff e logon com a chave privada. | * Se OK, fazer logoff e logon com a chave privada. | ||
− | ssh -i jtagserverkey <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;"> | + | ssh -i jtagserverkey <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">$USERBLUE@nuvem.sj.ifsc.edu.br</span> -p 2224 |
* Conferir se o túnel reverso ssh está aberto. É possível conferir verificando se a '''porta 60000''' está aberta no blue_host. | * Conferir se o túnel reverso ssh está aberto. É possível conferir verificando se a '''porta 60000''' está aberta no blue_host. | ||
Linha 74: | Linha 102: | ||
* Se tudo OK, fazer logoff. | * Se tudo OK, fazer logoff. | ||
− | == | + | ===<span style="color: rgb(255, 0, 0);" data-mce-style="color: #ff0000;">Na nuvem (alunos) (red_host)</span>=== |
− | # | + | |
− | # | + | * Acessar a nuvem com <span style="color: rgb(255, 0, 0);" data-mce-style="color: #ff0000;">USERBRED</span> através de ssh ou pelo x2go com seu login e senha. |
− | # | + | * Conferir se o túnel reverso está estabelecido na porta 60000. |
− | # | + | netstat -lnt --wide |grep '60000\|State'<br />Proto Recv-Q Send-Q Local Address Foreign Address State <br />tcp 0 0 127.0.0.1:60000 0.0.0.0:* LISTEN |
− | # | + | |
+ | * Executar o Quartus II e abrir o programador. Configurar as '''JTAG Setting''', com Server: '''127.0.0.1:60000''' e senha '''********''' (pergunte a senha ao professor que estiver disponível, pois pode ter mais de um kit disponível).<br /> | ||
+ | '''[[Arquivo:Screenshot from 2020-05-28 20-27-46.png|600px|center|middle|thumb|Configuração da jTAG]]''' | ||
+ | * Se a conexão estiver OK, selecione a''' USB-Blaster '''indicada'''.''' | ||
+ | '''[[Arquivo:Screenshot from 2020-05-28 20-20-55.png|600px|center|middle|thumb|Conexão com exito ao jTAG server remoto]]''' | ||
+ | * Se tiver algum problema depois de configurado as''' JTAG Setting '''o Connection Status indicará o problema. | ||
+ | [[Arquivo:Screenshot from 2020-05-28 19-00-53.png|600px|center|middle|thumb|Erro na configuração]] | ||
+ | |||
+ | ==Uso do Laboratório Remoto pelo usuário da nuvem do IFSC== | ||
+ | |||
+ | # Acessar a nuvem [[Acesso ao IFSC-CLOUD (NUVEM)#Quartus II - Modelsim - QSIM]] | ||
+ | # Desenvolver o sistema realizando todas as fases do projeto | ||
+ | # Configurar o programador do quartus para acessar o jTAG server. Ver acima o procedimento de configuração do <span style="color: rgb(255, 0, 0);" data-mce-style="color: #ff0000;">usuario_red</span>. | ||
+ | # Enviar o arquivo .sof para programar o kit. | ||
+ | # Observar o funcionamento do hardware pela câmera do celular que está sendo mostrada no G-MEET. | ||
+ | # Assista o abaixo o vídeo amador de como acessar o kit FPGA. | ||
+ | |||
+ | <center> {{#ev:youtube|AgxmpFXcU9Y }} </center> | ||
+ | |||
+ | ===Programação via comandos de linha=== | ||
+ | :'''PASSO 1 -''' Obter a senha de acesso e a porta onde está o kit com o professor. Note que podem estar disponíveis mais de um kits remotos. | ||
+ | export JTAGPORT=60000 | ||
+ | export JTAGPASSWORD=<password> | ||
+ | export FILENAME=timer00_99 | ||
+ | |||
+ | :'''PASSO 2 -''' Adicionar o jtag server, e testar se está OK? | ||
+ | jtagconfig --addserver 127.0.0.1:$JTAGPORT $JTAGPASSWORD | ||
+ | jtagconfig | ||
+ | |||
+ | <i> | ||
+ | 1) USB-Blaster on 127.0.0.1:60000 [2-1.2] | ||
+ | 020F40DD EP3C40/EP4CE(30|40) | ||
+ | </i> | ||
+ | |||
+ | ::FONTE: jtagconfig --help | ||
+ | |||
+ | :'''PASSO 3 -''' Programar o FPGA usando o tunel e o jtag server: | ||
+ | /opt/altera/13.0sp1/quartus/bin/quartus_pgm -m jtag -c "USB-Blaster on 127.0.0.1:$JTAGPORT" -o "p;$FILENAME.sof" | ||
+ | |||
+ | <i> | ||
+ | Info: ******************************************************************* | ||
+ | Info: Running Quartus II 32-bit Programmer | ||
+ | Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Full Version | ||
+ | Info: Copyright (C) 1991-2013 Altera Corporation. All rights reserved. | ||
+ | Info: Your use of Altera Corporation's design tools, logic functions | ||
+ | Info: and other software and tools, and its AMPP partner logic | ||
+ | Info: functions, and any output files from any of the foregoing | ||
+ | Info: (including device programming or simulation files), and any | ||
+ | Info: associated documentation or information are expressly subject | ||
+ | Info: to the terms and conditions of the Altera Program License | ||
+ | Info: Subscription Agreement, Altera MegaCore Function License | ||
+ | Info: Agreement, or other applicable license agreement, including, | ||
+ | Info: without limitation, that your use is for the sole purpose of | ||
+ | Info: programming logic devices manufactured by Altera and sold by | ||
+ | Info: Altera or its authorized distributors. Please refer to the | ||
+ | Info: applicable agreement for further details. | ||
+ | Info: Processing started: Tue Jun 2 14:46:36 2020 | ||
+ | Info: Command: quartus_pgm -m jtag -c "USB-Blaster on 127.0.0.1:60000" -o p;timer00_99.sof | ||
+ | Info (213046): Using programming cable "USB-Blaster on 127.0.0.1:60000 [2-1.2]" | ||
+ | Info (213011): Using programming file timer00_99.sof with checksum 0x00207160 for device EP4CE30F23@1 | ||
+ | Info (209060): Started Programmer operation at Tue Jun 2 14:46:37 2020 | ||
+ | Info (209016): Configuring device index 1 | ||
+ | Info (209017): Device 1 contains JTAG ID code 0x020F40DD | ||
+ | Info (209007): Configuration succeeded -- 1 device(s) configured | ||
+ | Info (209011): Successfully performed operation(s) | ||
+ | Info (209061): Ended Programmer operation at Tue Jun 2 14:46:39 2020 | ||
+ | Info: Quartus II 32-bit Programmer was successful. 0 errors, 0 warnings | ||
+ | Info: Peak virtual memory: 127 megabytes | ||
+ | Info: Processing ended: Tue Jun 2 14:46:39 2020 | ||
+ | Info: Elapsed time: 00:00:03 | ||
+ | Info: Total CPU time (on all processors): 00:00:01 | ||
+ | </i> | ||
+ | |||
+ | ::FONTE: [https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/tclscriptrefmnl.pdf Quartus II Scripting Reference Manual] | ||
+ | |||
+ | ==Outras possibilidades estudadas== | ||
+ | Antes de implementar a solução acima com túnel reverso, foi tentado realizar a criação do laboratório remoto usando um '''jtag server''' em uma maquina Windows 10, mas devido a existência do GCNAT na rede da NET-CLARO, não houve sucesso. Nestas configurações fui auxiliado pelo prof. [[Roberto de Matos]] e pelo servidor da DTIC [[Humberto José de Sousa]]. Todas as configurações foram feitas e testadas, mas esbarramos ao final no GCNAT. Na tentativa de obter um IP público não tivemos sucesso por enquanto pois a NET não está atendendo trabalhos não prioritários. | ||
+ | |||
+ | ==Agradecimentos== | ||
+ | Agradeço ao aluno [[João Pedro Menegali Salvan Bittencourt]], pois sem a sua ajuda remota, explicando as configurações e funcionamento do túnel ssh reverso e uso de chaves criptográficas, este laboratório remoto não seria possível em um tempo tão curto. Agradeço ainda ao professor [[Ederson Torresini]] que se resolveu o problema da derrubada do tunel pelo serviço de acesso. Agradeço também ao [[Humberto José de Sousa]] pela ajuda e orientação na tentativa de fazer funcionar o laboratório remoto com acesso direto ao '''jtag server'''. [[Usuário:Moecke|Marcos Moecke]] ([[Usuário Discussão:Moecke|discussão]]) 11h55min de 2 de junho de 2020 (-03) | ||
+ | |||
+ | |||
+ | ==Referências== | ||
+ | *https://patrickmn.com/aside/how-to-keep-alive-ssh-sessions/ |
Edição atual tal como às 12h12min de 2 de junho de 2020
Cenário utilizado
Para a programação remota de um kit MERCURIO IV, foi criado o seguinte cenário:
- Na casa do professor foi disponibilizado o kit MERCURIO conectado a um notebook com UBUNTU 20.04 e com o software Quartus II.
- Uma câmera de smartphone será usada para mostrar o funcionamento da placa.
- Os alunos utilizaram os serviços da nuvem.sj.ifsc.edu.br porta 2224 para fazer a programação
Preparando o servidor
- Instalar a versão 13.0sp1 no notebook.
- Fazer as configurações necessárias para acessar a JTAG. Configuração da USB para programação do FPGA via JTAG
- Testar se está funcionando o gravador LOCAL. Programando o FPGA através da USB-Blaster
Criando o tunel ssh
A proposta aqui é a criação de um tunel ssh reverso.
FONTE:
- https://superuser.com/questions/1194105/ssh-troubleshooting-remote-port-forwarding-failed-for-listen-port-errors
- https://stackoverflow.com/questions/11818131/warning-remote-port-forwarding-failed-for-listen-port-52698
Servidor jTAG (green_host)
Para facilitar os script abaixo foram estabelecidas duas variáveis onde os login devem ser inseridos, evitando redigitar no código que segue.
export USERBLUE=usuario_bluehost export USERGREEN=usuario_greenhost export JTAGPORT=60000 export JTAGPASSWORD=password echo USERBLUE USERGREEN echo $USERGREEN $USERBLUE
Na maquina onde está o kit FPGA conectado, será instalado um server jTAG.
- Conectar o jtag através de uma senha password a ser compartilhada com os alunos.
/opt/altera/13.0sp1/quartus/bin/jtagd /opt/altera/13.0sp1/quartus/bin/jtagconfig --enableremote $JTAGPASSWORD
- Gerar um conjunto de chaves jtagserverkey jtagserverkey.pub para acesso remoto através de chave privada e a publica, na pasta /home/$USERGREEN
ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair. Enter file in which to save the key (/home/$USERGREEN/.ssh/id_rsa): jtagserverkey jtagserverkey already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in jtagserverkey Your public key has been saved in jtagserverkey.pub
- Mudar o nome da chave publica jtagserverkey.pub para authorized_keys. Em seguida mover a chave para a conta do $USERBLUE na nuvem do IFSC (Blue). Essa chave permitirá que os usuarios_red acessem o túnel ssh reverso sem senha.
mv jtagserverkey.pub authorized_keys
scp -P 2224 authorized_keys $USERBLUE@nuvem.sj.ifsc.edu.br:/home/$USERBLUE/.ssh
- Testar se a chave criptográfica está funcionando
ssh -i jtagserverkey $USERBLUE@nuvem.sj.ifsc.edu.br -p 2224
- Conferir se a porta 1309 está aberta no green_host.
netstat -lnt --wide |grep '1309\|State'
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:1309 0.0.0.0:* LISTEN
- Criar o tunel ssh
ssh -oStrictHostKeyChecking=no -i jtagserverkey -R 60000:localhost:1309 $USERBLUE@nuvem.sj.ifsc.edu.br -p 2224 -N -f
Script para reconfigurar o tunel
- Crie o arquivo jtagserver.sh com o conteúdo:
export USERBLUE= export USERGREEN= export JTAGPORT=60000 export JTAGPASSWORD= /opt/altera/13.0sp1/quartus/bin/jtagd /opt/altera/13.0sp1/quartus/bin/jtagconfig --enableremote $JTAGPASSWORD netstat -lnt --wide |grep '1309\|State' ssh -oStrictHostKeyChecking=no -i jtagserverkey -R $JTAGPORT:localhost:1309 $USERBLUE@nuvem.sj.ifsc.edu.br -p 2224 -N -f -v
- Execute
chmod +x jtagserver.sh ./jtagserver.sh
Na nuvem (blue_host)
- Acessar a nuvem com usuario_blue e senha e verificar se existe a pasta .ssh.
ssh $USERBLUE@nuvem.sj.ifsc.edu.br -p 2224
ls .ssh
- Se não tiver a pasta .ssh criar uma:
mkdir .ssh exit ou [CTRL D]
- Fazer o passo de cópia da chave publica para esta pasta (ver procedimento no blue_host).
- Conferir se chave publica está aqui.
ls -la .ssh/authorized_keys
-rw-r--r-- 1 $USERBLUE Domain Users 741 May 27 22:38 authorized_keys
- Se OK, fazer logoff e logon com a chave privada.
ssh -i jtagserverkey $USERBLUE@nuvem.sj.ifsc.edu.br -p 2224
- Conferir se o túnel reverso ssh está aberto. É possível conferir verificando se a porta 60000 está aberta no blue_host.
netstat -lnt --wide |grep '60000\|State'
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:60000 0.0.0.0:* LISTEN
- Se tudo OK, fazer logoff.
Na nuvem (alunos) (red_host)
- Acessar a nuvem com USERBRED através de ssh ou pelo x2go com seu login e senha.
- Conferir se o túnel reverso está estabelecido na porta 60000.
netstat -lnt --wide |grep '60000\|State'
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:60000 0.0.0.0:* LISTEN
- Executar o Quartus II e abrir o programador. Configurar as JTAG Setting, com Server: 127.0.0.1:60000 e senha ******** (pergunte a senha ao professor que estiver disponível, pois pode ter mais de um kit disponível).
- Se a conexão estiver OK, selecione a USB-Blaster indicada.
- Se tiver algum problema depois de configurado as JTAG Setting o Connection Status indicará o problema.
Uso do Laboratório Remoto pelo usuário da nuvem do IFSC
- Acessar a nuvem Acesso ao IFSC-CLOUD (NUVEM)#Quartus II - Modelsim - QSIM
- Desenvolver o sistema realizando todas as fases do projeto
- Configurar o programador do quartus para acessar o jTAG server. Ver acima o procedimento de configuração do usuario_red.
- Enviar o arquivo .sof para programar o kit.
- Observar o funcionamento do hardware pela câmera do celular que está sendo mostrada no G-MEET.
- Assista o abaixo o vídeo amador de como acessar o kit FPGA.
Programação via comandos de linha
- PASSO 1 - Obter a senha de acesso e a porta onde está o kit com o professor. Note que podem estar disponíveis mais de um kits remotos.
export JTAGPORT=60000 export JTAGPASSWORD=<password> export FILENAME=timer00_99
- PASSO 2 - Adicionar o jtag server, e testar se está OK?
jtagconfig --addserver 127.0.0.1:$JTAGPORT $JTAGPASSWORD jtagconfig
1) USB-Blaster on 127.0.0.1:60000 [2-1.2] 020F40DD EP3C40/EP4CE(30|40)
- FONTE: jtagconfig --help
- PASSO 3 - Programar o FPGA usando o tunel e o jtag server:
/opt/altera/13.0sp1/quartus/bin/quartus_pgm -m jtag -c "USB-Blaster on 127.0.0.1:$JTAGPORT" -o "p;$FILENAME.sof"
Info: ******************************************************************* Info: Running Quartus II 32-bit Programmer Info: Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Full Version Info: Copyright (C) 1991-2013 Altera Corporation. All rights reserved. Info: Your use of Altera Corporation's design tools, logic functions Info: and other software and tools, and its AMPP partner logic Info: functions, and any output files from any of the foregoing Info: (including device programming or simulation files), and any Info: associated documentation or information are expressly subject Info: to the terms and conditions of the Altera Program License Info: Subscription Agreement, Altera MegaCore Function License Info: Agreement, or other applicable license agreement, including, Info: without limitation, that your use is for the sole purpose of Info: programming logic devices manufactured by Altera and sold by Info: Altera or its authorized distributors. Please refer to the Info: applicable agreement for further details. Info: Processing started: Tue Jun 2 14:46:36 2020 Info: Command: quartus_pgm -m jtag -c "USB-Blaster on 127.0.0.1:60000" -o p;timer00_99.sof Info (213046): Using programming cable "USB-Blaster on 127.0.0.1:60000 [2-1.2]" Info (213011): Using programming file timer00_99.sof with checksum 0x00207160 for device EP4CE30F23@1 Info (209060): Started Programmer operation at Tue Jun 2 14:46:37 2020 Info (209016): Configuring device index 1 Info (209017): Device 1 contains JTAG ID code 0x020F40DD Info (209007): Configuration succeeded -- 1 device(s) configured Info (209011): Successfully performed operation(s) Info (209061): Ended Programmer operation at Tue Jun 2 14:46:39 2020 Info: Quartus II 32-bit Programmer was successful. 0 errors, 0 warnings Info: Peak virtual memory: 127 megabytes Info: Processing ended: Tue Jun 2 14:46:39 2020 Info: Elapsed time: 00:00:03 Info: Total CPU time (on all processors): 00:00:01
Outras possibilidades estudadas
Antes de implementar a solução acima com túnel reverso, foi tentado realizar a criação do laboratório remoto usando um jtag server em uma maquina Windows 10, mas devido a existência do GCNAT na rede da NET-CLARO, não houve sucesso. Nestas configurações fui auxiliado pelo prof. Roberto de Matos e pelo servidor da DTIC Humberto José de Sousa. Todas as configurações foram feitas e testadas, mas esbarramos ao final no GCNAT. Na tentativa de obter um IP público não tivemos sucesso por enquanto pois a NET não está atendendo trabalhos não prioritários.
Agradecimentos
Agradeço ao aluno João Pedro Menegali Salvan Bittencourt, pois sem a sua ajuda remota, explicando as configurações e funcionamento do túnel ssh reverso e uso de chaves criptográficas, este laboratório remoto não seria possível em um tempo tão curto. Agradeço ainda ao professor Ederson Torresini que se resolveu o problema da derrubada do tunel pelo serviço de acesso. Agradeço também ao Humberto José de Sousa pela ajuda e orientação na tentativa de fazer funcionar o laboratório remoto com acesso direto ao jtag server. Marcos Moecke (discussão) 11h55min de 2 de junho de 2020 (-03)