Criação de um acesso remoto ao kit MERCURIO IV

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Cenário utilizado

Para a programação remota de um kit MERCURIO IV, foi criado o seguinte cenário:

  1. Na casa do professor foi disponibilizado o kit MERCURIO conectado a um notebook com UBUNTU 20.04 e com o software Quartus II.
  2. Uma câmera de smartphone será usada para mostrar o funcionamento da placa.
  3. Os alunos utilizaram os serviços da nuvem.sj.ifsc.edu.br porta 2224 para fazer a programação

Preparando o servidor

  1. Instalar a versão 13.0sp1 no notebook.
  2. Fazer as configurações necessárias para acessar a JTAG. Configuração da USB para programação do FPGA via JTAG
  3. 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.

ReverseTunel.png

FONTE:

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 2222
  • 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 o

Acesso pelo usuário da nuvem

  1. acessar a nuvem Acesso ao IFSC-CLOUD (NUVEM)#Quartus II - Modelsim - QSIM
  2. desenvolver o sistema realizando todas as fases do projeto
  3. configurar o programador do quartus para acessar o jTAG server através da porta 6000
  4. enviar o arquivo .sof para programar o kit.
  5. observar o funcionamento do hardware pela câmera do celular que está sendo mostrada no G-MEET.