Criação de um acesso remoto ao kit MERCURIO IV
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.
Maquina server
Na maquina server, onde estará o kit FPGA conectado.
- Conectar a jtag através de uma senha 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
ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair. Enter file in which to save the key (/home/mmoecke/.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
- Renomear a chave publica jtagserverkey.pub para authorized_keys
mv jtagserverkey.pub authorized_keys
- Compartilhar essa chave com os usuarios, que devem coloca-la na pasta /home/<usuario>/.ssh da sua conta na usuario@nuvem.sj.ifsc.edu.br.
- Criar o tunel ssh
ssh -oStrictHostKeyChecking=no -i jtagserverkey -R 60000:localhost:1309 moecke@nuvem.sj.ifsc.edu.br -p 2222 -N -f
- Aqui está dando erro se usar a porta 2224:
Warning: remote port forwarding failed for listen port 60000
- Conferindo no [greenhost]
netstat -an --wide | grep 1309 tcp 0 0 0.0.0.0:1309 0.0.0.0:* LISTEN
netstat -an --wide | grep 2224 tcp 0 0 192.168.0.37:53964 191.36.8.4:2224 ESTABLISHED tcp 0 0 192.168.0.37:55776 191.36.8.4:2224 ESTABLISHED tcp 0 0 192.168.0.37:55692 191.36.8.4:2224 ESTABLISHED tcp 0 0 192.168.0.37:53716 191.36.8.4:2224 TIME_WAIT tcp 0 0 192.168.0.37:36360 191.36.8.6:2224 ESTABLISHED tcp 0 0 192.168.0.37:53906 191.36.8.4:2224 ESTABLISHED tcp 0 0 192.168.0.37:35530 191.36.8.6:2224 ESTABLISHED tcp 0 0 192.168.0.37:53884 191.36.8.4:2224 ESTABLISHED
- Conferindo no [bluehost]
netstat -an --wide |grep 2222 netstat -an --wide |grep 1309 netstat -an --wide |grep 60000 tcp 0 0 127.0.0.1:60000 0.0.0.0:* LISTEN
Na conta do aluno na nuvem
- Acessar a nuvem com seu login e senha.
ssh <usuario>@nuvem.sj.ifsc.edu.br -p 2224 pwd ls .ssh
- Se não tiver a pasta, criar com
mkdir .ssh exit ou [CTRL D]
- Copiar a chave publica para esta pasta
scp -P 2224 authorized_keys <usuario>@nuvem.sj.ifsc.edu.br:/home/<usuario>/.ssh
- Conferir na nuvem.
ssh <usuario>@nuvem.sj.ifsc.edu.br -p 2224 ls -la .ssh/ total 16 drwx------ 2 moecke Domain Users 4096 May 27 22:38 . drwx------ 25 moecke Domain Users 4096 May 27 21:41 .. -rw-r--r-- 1 moecke Domain Users 741 May 27 22:38 authorized_keys
Acesso pelo usuário da nuvem
- 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 através da porta 6000
- 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.