Mudanças entre as edições de "Criação de um acesso remoto ao kit MERCURIO IV"
Ir para navegação
Ir para pesquisar
Uso do Laboratório Remoto pelo usuário da nuvem do IFSC
Linha 64: | Linha 64: | ||
* 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;">usuario_blue@nuvem.sj.ifsc.edu.br</span> -p | + | ssh -i jtagserverkey <span style="color: rgb(51, 102, 255);" data-mce-style="color: #3366ff;">usuario_blue@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. |
Edição das 19h35min de 28 de maio 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)
Na maquina onde está o kit FPGA conectado, será instalado um server jTAG.
- Conectar o jtag através de uma senha DLP29006 a ser compartilhada com os alunos.
/opt/altera/13.0sp1/quartus/bin/jtagd /opt/altera/13.0sp1/quartus/bin/jtagconfig --enableremote DLP29006
- Gerar um conjunto de chaves jtagserverkey jtagserverkey.pub para acesso remoto através de chave privada e a publica, na pasta /home/usuario_green
ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair. Enter file in which to save the key (/home/usuario_green/.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 usuario_blue 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 usuario_blue@nuvem.sj.ifsc.edu.br:/home/usuario_blue/.ssh
- Testar se a chave criptográfica está funcionando
ssh -i jtagserverkey usuario_blue@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 usuario_blue@nuvem.sj.ifsc.edu.br -p 2222 -N -f
Na nuvem (blue_host)
- Acessar a nuvem com usuario_blue e senha e verificar se existe a pasta .ssh.
ssh usuario_blue@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 usuario_blue Domain Users 741 May 27 22:38 authorized_keys
- Se OK, fazer logoff e logon com a chave privada.
ssh -i jtagserverkey usuario_blue@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 usuario_red através de ssh ou pelo x2go com seu login e senha.
- Executar o Quartus II e abrir o programador. Configurar as JTAG Setting, com Server: 127.0.0.1:60000 e senha DLP29006
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.
Agradecimentos
Agradeço ao aluno João Pedro Menegali Salvan Bittencourt, pois sem a sua ajuda remota, explicando as configurações e funcionamento do tunel reverso e uso de chaves criptográficas, este laboratório remoto não seria possível em um tempo tão curto. Marcos Moecke (discussão)