User Tools

Site Tools


tutoriais:vr_no_linux_com_celular

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Last revisionBoth sides next revision
tutoriais:vr_no_linux_com_celular [2022-07-08 16:01] – created alopestutoriais:vr_no_linux_com_celular [2022-07-08 17:16] alopes
Line 16: Line 16:
   - Celular tipo smartphone com sensor de giroscópio e capacidade de "Tethering" - O celular do teste é um celular de 2 anos atrás que pode ser encontrado usado recondicionado por menos de 600 reais (Zenfone MaxShot) . Imagino que muitas pessoas tenham celular potente o suficiente para o que precisamos, já que o celular vai apenas reproduzir a tela e repassar o giroscópio. Tethering é a capacidade do celular funcionar como ponto de acesso para repassar rede para o computador. Aparentemente Android 5 em diante já consegue fazer isso.   - Celular tipo smartphone com sensor de giroscópio e capacidade de "Tethering" - O celular do teste é um celular de 2 anos atrás que pode ser encontrado usado recondicionado por menos de 600 reais (Zenfone MaxShot) . Imagino que muitas pessoas tenham celular potente o suficiente para o que precisamos, já que o celular vai apenas reproduzir a tela e repassar o giroscópio. Tethering é a capacidade do celular funcionar como ponto de acesso para repassar rede para o computador. Aparentemente Android 5 em diante já consegue fazer isso.
   - Cabo de dados bom e comprido! - Muita gente usa um cabo curto que só serve para carregamento do celular. Para passar as imagens de forma decente, os programas que vamos usar fazem a transferência das imagens por USB. Se o seu cabo não funciona com dados, não irá receber imagens. Se for muito curto, você não conseguirá mover sua cabeça tão livremente.   - Cabo de dados bom e comprido! - Muita gente usa um cabo curto que só serve para carregamento do celular. Para passar as imagens de forma decente, os programas que vamos usar fazem a transferência das imagens por USB. Se o seu cabo não funciona com dados, não irá receber imagens. Se for muito curto, você não conseguirá mover sua cabeça tão livremente.
-  - Suporte de celular para realidade virtual confortável: Há diversos suportes para celular para uso como realidade virtual+  - Suporte de celular para realidade virtual confortável: Há diversos suportes para celular para uso como realidade virtual. Pegue um que se ajuste bem à sua cabeça, que tenha espaço para usar com óculos (se você usa óculos, deve conseguir usar o headset com seus óculos), que tenha alguma regulagem de distância entre as lentes e que caiba seu celular! 
 +  - Linux - Este tutorial prático é para fazer funcionar no openSUSE Tumbleweed (versão atualizada em Julho-2022), mas se prestar atenção nos links originais e nas dicas, possivelmente conseguirá adaptar para qualquer distro atual. 
 +  - App Trinus CBVR Lite no celular (instalado pela PlayStore mesmo) para poder receber as imagens e repassar o giroscópio. Há outras soluções mas esse tutorial foi feito usando o LinusTrinus, que é um conjunto de scripts e softwares que fazem o papel do TrinusVR no Linux. 
 +  - LinusTrinus - Software e conjuntos de scripts que fazem a ponte entre o SteamVR e o celular rodando Trinus CBVR Lite.
  
 +===== Passo-a-passo para instalação =====
  
 +  * Instale Steam no seu computador, depois dentro do Steam instale o SteamVR, que é o conjunto base de coisas necessárias para funcionar VR no Steam e jogos VR. Talvez funcione outras coisas que não o Steam, mas meu foco nesse tutorial é fazer funcionar o SteamVR.
 +  * Vamos agora seguir os passos do INSTALL.MD do LinusTrinus [[https://github.com/MyrikLD/LinusTrinus/blob/master/INSTALL.md|]], comentando os passos e adicionando alguns passos extras e dicas relativas ao openSUSE Tumbleweed que talvez sejam úteis para outras distros.
 +  * Fazer o Tethering USB do smartphone para o computador:
 +Conecte seu cabo USB no celular e no computador e ative o modo Tethering USB. No meu celular foi apenas conectar ambos, clicar na opção de "mais opções de conexão" que apareceu e mudar de "Carregamento" para "Tethering USB". No computador, rode o comando "nmcli d" e veja se apareceu uma "placa de rede" nova conectada. Se apareceu mas está desconectada, você pode fazer por exemplo "nmcli d c enp2sXYZ" para mandar conectar nessa placa de rede que apareceu, que é o seu celular fazendo tethering. Não foi necessário desativar a placa de rede oficial do computador no meu caso, fiquei com ambas conectadas. Se o seu não ficou ambas conectadas, depois de usar vc vai precisar usar por exemplo "nmcli d c enp2sXPTO" para voltar a conectar na placa de rede padrão. nmcli supõe que vc esteja usando NetworkManager, não sei como é em outros.
 +  * Instale as seguintes dependências (isso pro openSUSE): ffmpeg, openvr, xwd, xwininfo e git:
 +Ffmpeg deve funcionar o do sistema ou o do repositório do packman.
 +OpenVR peguei pelo software.opensuse.org, de um repositório de usuário aqui: [[obs://build.opensuse.org/home:leviathanch|]]
 +xwd, xwininfo e git instalei do repo oficial do openSUSE. o Git na verdade é pra poder clonar o repo do LinusTrinus.
 +  * Sugiro criar um diretório para trabalhar com as coisas do LinusTrinus (mkdir vr)
 +  * Entre no seu diretório que gostaria de deixar o repo do LinusTrinus (cd vr)
 +  * Clone o repo do LinusTrinus (git clone --depth 1 https://github.com/MyrikLD/LinusTrinus)
 +  * Entre no diretório baixado - (cd LinusTrinus)
 +  * Sugestão de criar um virtualenv para trabalhar com as coisas:
 +<code>python3 -m venv .venv           
 +source .venv/bin/activate       
 +pip install frame-generator wand</code>
 +Note que "source .venv/bin/activate" irá mudar seu prompt para indicar que vc está com um virtualenv ativo. Lembre-se que para rodar o LinusTrinus, vc sempre deverá ativar esse virtualenv antes e rodar o comando para iniciar. Se quiser desativar, o comando é "deactivate"
 +  * Compila e instala o driver para SteamVR. Antes disso, verifiquei algumas mensagens de erro no openSUSE sobre faltar GLEW. No caso do openSUSE, precisei instalar os pacotes glew-devel e glew dos repos do sistema. Em outras distros pode ter outro nome. O erro era "Could NOT find GLEW (missing: GLEW_INCLUDE_DIR GLEW_LIBRARY)" e a resposta veio de: [[https://stackoverflow.com/questions/34230853/how-to-fix-could-not-find-glew-missing-glew-include-dir-glew-library|]]. Agora sim vamos então entrar no diretório samples e compilar o driver:
 +<code>cd samples
 +./make.sh
 +</code>
 +OBS: Observe possíveis mensagens de erro como por exemplo o problema do GLEW. Deve compilar tudo com sucesso, se faltar algo, verifique os erros e instale possíveis dependências.
 +  * Volte para o diretório LinusTrinus e rode o main.py para iniciar o LinusTrinus:
 +<code>cd .. #(lembre-se que vc compilou o make.sh dentro do diretório samples, volte um nível)
 +python3 main.py
 +</code>
 +Isso vai iniciar o LinusTrinus no terminal. para sair é Ctrl+C duas vezes... mas mantenha esse terminal rodando enquanto quiser usar o VR.
 +  * Crie links simbólicos para getcap e setcap: Para o SteamVR funcionar corretamente, ele procura os comandos /usr/bin/getcap e /usr/bin/setcap, mas no openSUSE estão em /sbin/getcap e /sbin/setcap. O comando para isso é: 
 +<code>ln -s /sbin/getcap /usr/bin/
 +ln -s /sbin/setcap /usr/bin/
 +</code>
 +OBS: executar como root obviamente
 +  * Outra coisa importante: a comunicação do celular com o computador apesar de ser via cabo USB, está no modo Tethering, ou seja, o computador vai usar o cabo USB como se fosse um cabo de rede direto no celular. E aparentemente a porta usada pelo TrinusVR é a porta 7777. Libere essa porta no Firewall do openSUSE ou, se só quiser testar rapidinho, pare o serviço firewalld para que seu computador não barre a conexão com o celular. service firewalld stop deve ser suficiente. O ideal é você liberar a porta no firewall para manter a segurança.
 +  * Inicie o app Trinus CBVR Lite no celular e mande conectar, a tela deve ficar preta e o terminal onde está rodando o main.py deve aparecer algumas informações. Se não estiver preta, possivelmente pode ser o firewall bloqueando a comunicação.
 +  * Repassando então: Depois de tudo configurado, o que deve ser feito a partir de agora antes de começar a usar o SteamVR (sempre): 
 +  - Telefone conectado no USB
 +  - Modo Tethering USB ativado no celular
 +  - Conexão "de rede" com o celular ativada
 +  - App Trinus CBVR Lite rodando no celular, conectado (fica com tela preta, se não tiver, liberar no firewall do Linux)
 +  * Inicie o SteamVR. Na primeira vez, ele deve pedir poderes de root para poder terminar a instalação. Caso dê algum erro, ele informará e o log fica em /tmp/SteamVRLauncherSetup.log. Foi assim lendo o log que descobri o problema do getcap e do setcap, resolvido com a sugestão de [[https://github.com/ValveSoftware/SteamVR-for-Linux/issues/213|]]
 +  * O computador irá mostrar um retângulo que é um espelhamento do que deve estar aparecendo no celular... Se estiver tudo preto, movimente o celular pois provavelmente o giroscópio está indicando que está olhando para baixo. Se deu tudo certo, movimente o celular em vários ângulos.
  
 +Bom, por enquanto, foi aqui que parei, não testei com nenhum jogo ainda pois não tinha controle configurado e ainda não tenho meu suporte, vou encomendar um para brincar.
tutoriais/vr_no_linux_com_celular.txt · Last modified: 2022-07-08 17:20 by alopes

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki