Mini tela da Positivo no Linux

Estava ajudando o @Josekage e percebemos que algo muito simples passou despercebido em relação a desligar a mini-tela — principalmente a novos usuários de Linux. Que é: não ter permissão para acessar o dispositivo. Em alguns casos, não será necessário… Porém! A maioria será.


:warning: IMPORTANTE — Erro “Permissão negada” ao acessar /dev/ttyACM0

Se ao executar o script aparecer erro como:

stty: /dev/ttyACM0: Permissão negada

ou

/dev/ttyACM0: Permissão negada

:warning: Isso NÃO é problema no script.

O erro acontece porque o usuário não tem permissão para acessar o dispositivo serial da mini-tela.


:magnifying_glass_tilted_left: Entendendo o problema

A mini-tela é exposta ao sistema como um dispositivo USB serial:

/dev/ttyACM0

Esses dispositivos não pertencem ao usuário, e sim a um grupo do sistema.
Se o usuário não fizer parte desse grupo, qualquer tentativa de leitura/escrita resulta em Permissão negada.


1 — Verificar o grupo do dispositivo:

No terminal, execute:

ls -l /dev/ttyACM0

Exemplo de saída:

crw-rw---- 1 root uucp ... /dev/ttyACM0

O que importa é o nome do grupo (dialout, uucp, etc).


2 — Adicionar o usuário ao grupo correto:

Debian / Ubuntu / Mint / derivados

sudo usermod -aG dialout SEU_USUARIO

Arch / CachyOS / Manjaro / derivados

sudo usermod -aG uucp SEU_USUARIO

:warning: ATENÇÃO: Substitua SEU_USUARIO pelo seu nome de usuário.


3 — Logout e login (obrigatório):

Após adicionar o usuário ao grupo, é obrigatório:

  • sair da sessão e entrar novamente
    ou
  • reiniciar o sistema

Sem isso, a permissão não entra em vigor.


4 — Confirmar que deu certo:

Depois de logar novamente:

groups

Ou:

id SEU_USUARIO

O grupo (dialout ou uucp) precisa aparecer na lista.


5 — Testar o script:

Agora, execute:

~/desligar-minitela.sh

Resultado esperado:

  • sem erro de permissão
  • mini-tela desligando corretamente

2 curtidas

Olá pessoal, na versão 18 do Zorin OS o app da mini tela disponibilizado acima está funcionando NORMALMENTE no meu notebook!! (mesmo sendo ubuntu)

3 curtidas

Galera, queria compartilhar que consegui uma solução para funcionar no Fedora através do Distrobox passando a devida permissão de acesso ao dispositivo, semelhante ao processo do Cachy OS. Usei uma imagem ubuntu e instalei o arquivo .deb criado aqui no fórum dentro do container. Apesar de não ser uma solução nativa, pude acessar a interface e controlar as imagens.

2 curtidas

Cara, muito massa, parabéns.

Poderia explicar passo a passo o processo que você utilizou?

Basicamente, é necessário a instalação do distrobox, dependências e o .deb fornecido. Seguem os passos:

Instalação

No Host (Fedora):

sudo dnf install distrobox podman
distrobox create --name minitela-box --image ubuntu:latest
distrobox enter minitela-box

Dentro do container:

sudo apt update
sudo apt install -y libgtk-3-0t64 libvlc5 libvlccore9 libxtst6 libxss1 \
    libcanberra-gtk3-module libglib2.0-bin udev libnss3 libfuse2t64 fuse
sudo apt install ./minitela_1.0.20_amd64.deb
sudo sed -i '/udevadm/d' /var/lib/dpkg/info/minitela.postinst
sudo apt install -f
distrobox-export --app minitela

Regra udev (no host)

Esse foi um workaround que a IA me trouxe quando não estava conseguindo se conectar ao display:

sudo tee /etc/udev/rules.d/99-minitela.rules << 'EOF'
KERNEL=="ttyACM*", ATTRS{idVendor}=="0324", ATTRS{idProduct}=="0324", \
SYMLINK+="minitela_display", MODE="0666"
EOF
sudo udevadm control --reload-rules && sudo udevadm trigger

Executar

Via terminal (dentro do container):

/usr/share/minitela/minitela
4 curtidas

Pessoal, tava pensando aqui, será que seria difícil criar um app open source para essa mini tela? Acho os recursos dela muito limitados e poderíamos nos beneficiar de outras formas com ela. Alguém que manja um pouco disso, poderia indicar quais seriam os primeiros passos para fazer isso? Queria escrever um app desses, mas nao sei ainda por onde começar.

Tem um cara aqui no fórum que parece estar criando, tem até um repositório no github, mas está fazendo na linguagem Go (sinceramente acho uma péssima ideia)

1 curtida

Não seria melhor desenvolver isso em RUST? seria bem rápido o uso e codificação mais atual.

1 curtida

Talvez, mas quantas pessoas tem o conhecimento de Rust, Go, Python, C++, Java, JavaScript? Tem que ver o que é mais fácil de ter gente para dar manutenção

Com relacao ao linguagem do desenvolvimento da app, tanto faz realmente , o aplicativo trabalha abrindo uma conexao serial , podia ter sido qualquer linguagem , mais eu trabalho no Go atualmente entao essa foi a linguagem escolhida, o Rust pode ser muito rapido, mais aqui voce esta limitado pelo tempo de reacao da telinha que nao e tao rapido assim , ao menos desde o meu ponto de vista

1 curtida

Conseguiu descobrir qual a placa que a positivo usa pra controlar a tela? Ficaria mais fácil pra achar algum tipo de documentação (mesmo que provavelmente a placa seja chinesa)

So se for abrindo a laptop, ja que e algum tipo de peca generica , pois o vendorID e productID sao totalmente invalidos , e tipo ID de prova gerado pelo software. A telinha nao esta conectada diretamente , tem algum dispositivo intermedio pois ela tem uma memoria interna o que permite cargar as informacoes que ficam permanente nelas.

1 curtida

Entendi, não sei se é a mesma coisa, mas me lembra a forma de como um Arduino ou aqueles microcontroladores Raspberry funcionam, a comunicação via porta serial e a capacidade de contrar um dispositivo separado (a tela no caso).

Provavelmente pra alterar o software que tá rodando nessa placa seria preciso coloca-la em “modo de desenvolvedor“? e enviar o código/firmare pra ela de algum jeito.

Eu até abriria o meu note, mas não quero arriscar perder o único pc que tenho atualmente aksda
o jeito é esperar o pc de alguem aí morrer pra ver a placa, ou alguem com muita experiência em eletrônica fazer isso.

1 curtida

same issue aqui , nao quero abrir so pra olhar , maaaiss tenho pensado fazer upgrade de ram entao ahi sim eu posso dar uma olhada , pelo que eu sei a tela fica embaixo da bateria entao voce tem que remove-la primeiro.
Cara se voce e desenvolvedor pode contribuir com o applicativo nao official(SideCar) o nucleo e feito em Go mais toda a UI e feita em HTML + CSS + Js que acredito que todo mundo sabe
Go e muito bom para gerar binarios estaticos e estaveis para multiples sistemas entao a distribuicao e moleza para qualquer OS e pro windows

1 curtida

Eu abri no dia que chegou pra colocar outro pente de 8 GB de ram pra fazer Dual Channel com 16 GB (tava com muito medo pq era a primeira vez abrindo um notebook funcional pra aumentar a ram aksdkadak, mas deu tudo certo)

Pior que eu não manjo muito de programação, já vi um pouco de python mas meu conhecimento morre por aí. Quando eu estiver livre vou baixar o repositório e tentar compilar no meu note pra testar e aviso caso encontre algo interessante pra comentar.

:smiley: Mas já agradeço pela iniciativa, vocé tá dando mais suporte de software pra minitela do que a própria positivo.

1 curtida

assim que eu tiver um tempo livre vou subir no repo as releases do beta , assim a galera pode probar sem ter que compilar

ja esta pronta a release da beta pra a galera ir probando
lembra que no linux voce deve dar permisos de execusao para ele
chmod +x <nome_da_app>

1 curtida

Meus parabéns! Muito boa iniciativa!

man. será que dá eu estaria precisando