terça-feira, 29 de agosto de 2023

Testar Velocidade do Armazenamento

Escrita | Testar a velocidade de escrita

dd bs=128k count=100k if=/dev/zero of=test conv=fdatasync

Exemplo num array RAID1 com 2x M.2 NVMe 1TB
102400+0 records in
102400+0 records out
13421772800 bytes (13 GB, 12 GiB) copied, 7.80817 s, 1.7 GB/s

Exemplo num array RAID1 com 2x SATA6G HDD 1TB
10240+0 records in
10240+0 records out
1342177280 bytes (1.3 GB, 1.2 GiB) copied, 14.8238 s, 90.5 MB/s
 

Leitura | Testar a velocidade de leitura

hdparm -Ttv /dev/mapper/vg1-lv_root

/dev/mapper/vg1-lv_root:
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 0/0/0, sectors = 1950203904, start = 0
 Timing cached reads:   36902 MB in  2.00 seconds = 18478.49 MB/sec
 Timing buffered disk reads: 10242 MB in  3.00 seconds = 3413.64 MB/sec


Referências

[1] Which benchmark utilities are recommended for testing NVMe transfer performance in a Linux Environment?

sexta-feira, 4 de agosto de 2023

Som em Debian GNU/Linux

Com o alsamixer é possível definir som nas colunas e headphones:


Front e Headphones podem estar ambos ativados (sem Mute tecla 'M').

No caso de ser um sistema surround é possível definir também os restantes canais.

Existe ainda o pavucontrol que permite fazer o controlo de volume com interface gráfica através do pulseaudio mas sem possibilidade de ativar ambos os dispositivos.

É possível ver e controlar o volume de som dos vários programas:

amixer (cli)

Listar faders default:

amixer

Listar faders da placa 0:

amixer --card 0

Definir volume dos headphones da placa 0 para 80:

amixer --card 0 sset 'Headphone' 80

 

 

quinta-feira, 20 de outubro de 2022

Android - Gestão APK com ADB

Android - Ativar modo de Programador to Settings

Para ativar o modo de Programador é necessário:

Definições > Sobre o Dispositivo

Clicar 7 vezes consecutivas no número da compilação para ativar o modo de Programador


Android - Ativar depuração USB

Para ativar a depuração por USB é necessário:

Definições > Opções do programador

Ativar a depuração por USB


ADB - Instalação

É possível instalar o adb a partir dos repositórios:

sudo apt install adb


ADB - Utilização

Para iniciar o servidor adb:

adb start-server


Ligar o dispositivo android com a opção de depuração USB ativa por USB ao computador.

No android é apresentada mensagem para confirmar que se confia na ligação adb.

Listar pacotes instalados no dispositivo

adb shell pm list packages

É necessário procurar o nome do pacote. Na play store o URL da aplicação tem o nome do pacote.

Obter Path de um pacote

adb shell pm path nome_do_pacote

Extrair pacote para APK

adb pull data/app/nome_do_pacote_na_path/base.apk /caminho/nome.apk

Instalar APK no dispositivo

adb install -r /caminho/nome.apk  




Referências

https://stackoverflow.com/questions/4032960/how-do-i-get-an-apk-file-from-an-android-device

https://www.vrtourviewer.com/docs/adb/

segunda-feira, 20 de dezembro de 2021

Kodi - Netflix, HBO, Disney+ e Amazon Prime Video

 

Utilização de um Raspberry Pi com LibreELEC e Kodi para ver Netflix, HBO Portugal, Disney Plus e Amazon Prime Video

Ao longo dos anos a utilização de um raspberry pi para transformar uma televisão estúpida numa televisão esperta foi uma opção muito válida.

Agora com os serviços de streaming legais e disponíveis em Portugal a sua utilização num simples Raspberry Pi eleva ainda mais a inteligência de qualquer televisão.

Mais, qualquer televisão que tenha ficado burra (porque deixou de ter suporte para as atualizações dos serviços de streaming) pode recuperar alguma inteligência.

O sistema está operacional num Raspberry Pi 4B, com o LibreELEC num cartão de 16GB (é necessário ter algum espaço, no mínimo deverá utilizar-se um cartão de 8GB).

HBO Portugal

A instalação do Add-On para a HBO Portugal é simples e encontra-se disponível no repositório oficial.

Assim, basta aceder aos Add-Ons e Instalar a partir de um repositório. Na secção de Vídeos Add-Ons é necessário procurar por hGO EU e instalar.

Após a instalação o AddOn ficou disponível mas ao abrir será necessário instalar ainda o InputStream Adaptative que instalará também o WidevineCDM (ver) e que demora algum tempo.

Na configuração do Add-On é necessário escolher o País e no caso de Portugal escolher o tipo de utilização, neste caso foi escolhido o HBO Portugal. A lista de países suportadas é extensa.

Na primeira inicialização será preciso introduzir as credenciais de acesso à HBO Portugal e começar a utilizar o Add-On que funciona muito bem.


Netflix

Há pouco tempo experimentei novamente a instalação do AddOn Netflix utilizando o LibreELEC com a última versão do Kodi e os passos dados foram substancialmente mais simples.

Acedendo por SSH é possível descarregar o ZIP do repositório CastagnaIT diretamente para o raspberry pi (também é possível transferir utilizando outras formas, por exemplo, por pen ou SAMBA):

ssh root@LibreELEC

Kodi 18 - Leia
wget https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.1.zip
 
Kodi 19 - Matrix
wget https://github.com/castagnait/repository.castagnait/raw/matrix/repository.castagnait-1.0.0.zip

Após estes comandos podemos aceder ao Kodi e será necessário ir a Sistema e ativar Fontes Desconhecidas para ser possível utilizar o repositório CastagnaIT.

Nos Add-Ons é necessário aceder a Instalar a partir de um ZIP e escolher o ficheiro ZIP descarregado anteriormente (que deve estar na pasta home).

Depois de instalado é possível entrar no repositório CastagnaIT e instalar o Add-On Netflix que está em Video Add-Ons.

A instalação demora um pouco e depois é possível abrir o Add-On.

Mesmo que não esteja instalado o Widevine CDM o AddOn funciona deixando navegar por todo o conteúdo e apenas pedindo para ser instalado aquando da primeira reprodução de um qualquer conteúdo.

Disney+

A instalação do Add-On é similar à instalação do serviço Netflix pois necessita de ser instalado também um repositório não oficial, neste caso o SlyGuy.

ssh root@LibreELEC

wget https://k.slyguy.xyz/repository.slyguy.zip

Será agora necessário em Add Ons instalar o repositório através do ZIP descarregado e a partir daí procurar pelo Add On Disney Plus e instalar.

Depois resta efetuar login com uma conta que tenha o serviço ativo.

 

Amazon Prime Video - Portugal

A instalação do Add-On é similar à instalação do serviço Netflix pois necessita de ser instalado também um repositório não oficial, neste caso o Sandmann79 / xbmc.

ssh root@LibreELEC

Kodi 18 - Leia
wget https://github.com/Sandmann79/xbmc/releases/download/Repository/repository.sandmann79.plugins-1.0.3-leia.zip
 
Kodi 19 - Matrix
https://github.com/Sandmann79/xbmc/releases/download/Repository/repository.sandmann79-py3.plugins-1.0.0-matrix.zip

 

Será agora necessário em Add Ons instalar o repositório através do ZIP descarregado e a partir daí procurar pelo Add On Amazon Prime Video e instalar.

Depois resta efetuar login com uma conta que tenha o serviço ativo.



Para estes AddOns funcionarem será necessário ter instalado o Widevine CDM. Qualquer um deles, caso seja necessário, pedirá para se instalar o Widevine CDM e basta seguir os diferentes passos. Só é necessário instalar uma vez.

Atenção que será necessário bastante espaço para fazer as operações necessárias (>3GB) por isso convém ter um cartão com espaço e aguardar que a instalação termine (ainda é um processo demorado).


Problemas

Caso a imagem esteja desfasada do som/legendas pode ser necessário aceder às Definições do Add-on e baixar a qualidade.
No Raspberry Pi 3 B+ standard é possível utilizar a qualidade 720p sem qualquer problema. O 1080p funciona bem em animação mas não dá para ver conteúdos de imagem real de forma minimamente aceitável.
No Raspberry Pi 4B (testado nas versões de 2GB e 4GB de RAM) funcionou bem sem qualquer problema.

Referências

sábado, 4 de dezembro de 2021

Instalação de cliente VPN com SNX - Debian

Instalação do cliente SSL Network Extender para ligação à VPN da Universidade de Aveiro.


Instalar o software cliente

Descarregar o instalador a partir do site
https://www.ua.pt/pt/stic/teletrabalho_vpn

Extrair do zip e instalar segundo as instruções.


Verificar bibliotecas em falta

sudo ldd /usr/bin/snx

    linux-gate.so.1 (0xf7f7e000)
    libX11.so.6 => not found
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf7f30000)
    libresolv.so.2 => /lib32/libresolv.so.2 (0xf7f10000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf7f08000)
    libpam.so.0 => not found
    libnsl.so.1 => /lib32/libnsl.so.1 (0xf7ee8000)
    libstdc++.so.5 => not found
    libc.so.6 => /lib32/libc.so.6 (0xf7cf8000)
    /lib/ld-linux.so.2 (0xf7f80000)


É sugerido instalar os seguintes pacotes:

apt install libstdc++5:i386 libpam0g:i386 libx11-6:i386

Como são pacotes para a arquitetura i386, no caso de dar erro é necessário adicionar a arquitetura e atualizar a cache de pacotes:

dpkg --add-architecture i386

apt update

De seguida já será possível instalar as dependências sem erros:
apt install libstdc++5:i386 libpam0g:i386 libx11-6:i386


Utilizar o cliente snx

Iniciar sessão na VPN

snx -s go.ua.pt -u user@ua.pt


Terminar sessão na VPN

snx -d

sábado, 12 de dezembro de 2020

Dança das Cadeiras - Script

O jogo da Dança das Cadeiras é necessário que a música páre aleatoriamente para que os jogadores possam disputar as cadeiras livres.

Uma forma simples de se alcançar isso com o audacious é colocar a reproduzir uma música e utilizar o comando sleep para esperar aleatoriamente e depois pausar a reprodução com a ferramenta audtool:

sleep $((15 + RANDOM % 30)) && audtool --playback-pause

 

Para se repetir rapidamente na consola sem ser necessário iniciar a reprodução novamente no audacious é possível utilizar o seguinte:

audtool --playback-pause && sleep $((15 + RANDOM % 30)) && audtool --playback-pause


sábado, 27 de junho de 2020

Windows 10 Ambiente de Trabalho remoto através de um túnel SSH

A PowerShell do Windows 10 pode ter o cliente de SSH instalado e funcionar tal como num sistema Linux.

Verificar se cliente OpenSSH está instalado

Para se verificar se o cliente OpenSSH está instalado é necessário iniciar a PowerShell como administrador e introduzir o comando:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Caso seja apresentado Installed é porque está instalado.

No caso de não estar instalado é possível instalar.

Instalar o cliente OpenSSH na PowerShell

Caso seja necessário instalar o cliente OpenSSH é necessário iniciar a PowerShell como administrador e utilizar o comando:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Criar tunnel SSH com Port Forwarding

Na Linha de Comandos ou na PowerShell é possível ligar a um servidor SSH remoto e criar dentro dessa ligação um encaminhamento de porto (Port Forwarding) que permita aceder, por exemplo, a um ambiente de trabalho remoto noutra máquina que esteja na mesma rede remota.


Assim, o cliente precisa de iniciar uma ligação SSH ao servidor SSH no porto 22. De seguida tem que ser criado um porto na máquina cliente ligado ao porto 3389 do servidor RDP e que permitirá utilizar o porto local como se fosse de facto o porto remoto.

Esta abstração é feita com a opção -L do comando SSH onde é possível indicar:
[Porto Local]:[IP da máquina remota que disponibiliza o serviço]:[Porto do serviço]

A opção -N permite que não seja executado qualquer comando na máquina remota, pois apenas é necessário o encaminhamento de portos.

A opção -l permite especificar o nome de utilizador para o servidor SSH.

A opção -p permite especificar um porto diferente para o servidor SSH (caso não seja o porto 22 por defeito).

ssh -N -L 13389:[Windows RDP Server]:3389 [SSH Server] -l [ssh username]




Ligação de Ambiente de Trabalho Remoto ao tunnel

A partir daqui o porto local 13389 será uma ligação direta ao porto 3389 da máquina servidora de RDP. Esta ligação é criada dentro da ligação SSH e é, por isso, encriptada.

Através da Ligação de Ambiente de Trabalho Remoto é possível ligar ao servidor RDP remoto utilizando o porto local:

localhost:13389




Terminar a ligação

Para terminar a ligação resta fechar a Ligação de Ambiente de Trabalho Remoto e pressionar CTRL+C para terminar o comando SSH.


domingo, 21 de junho de 2020

Kodi - Youtube AddOn

A instalação do plugin Youtube no Kodi não funciona imediatamente.

Indica que é necessário instalar as chaves de API. Para tal é necessário criar um projeto na consola de developers de uma conta Google.

O processo encontra-se descrito na documentação do plugin e em diversos vídeos e tutoriais.

Criação das Chaves

É necessário aceder a uma conta Google e depois à consola de Developers:

Éé necessário criar um novo projeto:

Deve definir-se o nome do projeto:
Na Biblioteca de API é possível ver as API disponíveis, no caso de ainda não ter qualquer API é preciso acrescentar:

Da lista de API's disponíveis deve escolher-se a YouTube Data API:

E de seguida deve ativar-se:

Ao ativar será necessário criar credenciais para a sua utilização:

No assistente de criação de credenciais deve selecionar-se a API do YouTube, Other UI e User Data. No final deve clicar-se em no botão que contém a pergunta What credentials do I Need?:


Se seguida serão criadas credenciais de autenticação OAuth e é necessário definir o consentimento:

Na nova aba/janela é necessário configurar o tipo de consentimento, neste caso como External e Criar:

No passo seguinte é necessário definir algumas informações genéricas para a nossa API:

Após salvar é necessário regressar à aba/janela original:

E aqui adicionar as credenciais ao projeto, indicando um nome para o cliente OAuth 2.0 e criando o OAuth client ID:

Após a criação do OAuth Clinet ID este passo está concluído:

De seguida é preciso criar uma chave API:

Depois de criada é resta fechar a janela:

No ecrã de Credenciais é possível ver a chave API e o ID de cliente OAuth:

Para se saber o OAuth Client Secret é necessário editar o OAuth Client:

Resta guardar estas informações que correspondem
  • API Key » API Key
  • OAuth client ID » API Id
  • OAuth client secret » API Secret

Configuração do YouTube AddOn no Kodi

Existem diversas opções para configuração do AddOn YouTube no Kodi e, dependendo da forma como está a ser utilizado o Kodi, umas poderão ser mais fáceis do que outras:
  1. Configurar diretamente o AddOn no Kodi introduzindo manualmente todos os valores
  2. Ativar no AddOn: Enable API configuration page e depois configurar os valores através do browser
  3. Fechar o Kodi e editar manualmente o ficheiro userdata/addon_data/plugin.video.youtube/api_keys.json


Configuração através da página web de configuração do AddOn

Como normalmente utilizo o Kodi numa televisão com um Raspberry Pi através do LibreELEC ou OSMC, o mais simples é mesmo ativar a API configuration page e num computador copiar/colar os valores.

No Kodi é necessário aceder à configuração do AddOn YouTube e ativar: Enable API configuration page

De seguida num browser com acesso aos dados da API abrir a página:

Devem colar-se as informações guardadas anteriormente e Guardar:

De seguida deve desativar-se o acesso à página de configuração da API e poder-se-á começar a utilizar o AddOn normalmente no Kodi.

sábado, 20 de junho de 2020

Google Drive File Stream - Linux

Não havendo aplicação nativa para Linux do Google Drive File Stream a comunidade cria e partilha as suas soluções: google-drive-ocamlfuse.

Instalação

Na documentação existem diversas opções para a instalação. Neste caso utilizei as instruções para Debian Stretch.

Instalação de dependências

apt install software-properties-common dir

Adicionar repositório

Criar um ficheiro para o repositório apt:
nano /etc/apt/sources.list.d/google-drive-ocamlfuse.list

Acrescentar ao ficheiro:
deb http://ppa.launchpad.net/alessandro-strada/ppa/ubuntu xenial main

Adicionar a chave do servidor ao apt:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AD5F235DF639B041

Instalar

Atualizar a lista de pacotes:
apt update

Instalar o pacote:
apt install google-drive-ocamlfuse

Utilização

Primeira Utilização

Na primeira utilização será configurado o acesso ao Google Drive. Assim, deve executar-se o programa sem qualquer argumento:
google-drive-ocamlfuse

O comando cria uma estrutura de pastas de configuração em ~/.gdfuse/default que contém o ficheiro de configuração config.

De seguida abre o browser e pede para iniciar sessão com a conta Google que dará acesso ao Drive correspondente. Após iniciar-se sessão parece que o processo fica parado e pode demorar algum tempo até a linha de comandos indicar que configurou tudo com sucesso e sair do programa voltando à shell normal.

Pastas

Antes de se começar a utilizar convém criar um diretório que será o ponto de montagem dos ficheiros Google Drive.
Assim, pode criar-se:
mkdir ~/DRIVE

Caso se pretenda ter utilizadores ou drives diferentes podem criar-se diferentes diretórios para cada um desses fins. Como previa essa utilização criei uma pasta para a drive pessoal:
mkdir ~/DRIVE/Drive

Montar Google Drive

Para se aceder aos ficheiros é necessário executar o comando:
google-drive-ocamlfuse ~/DRIVE/Drive

A partir deste momento na pasta ~/DRIVE/Drive estarão os ficheiros e pastas tal e qual como no Google Drive e é possível abrir, editar, copiar, colar, mover, etc.

Desmontar Google Drive

Caso se pretenda terminar a utilização é possível desmontar com o comando:
fusermount -u ~/DRIVE/Drive

Utilização de Outras Contas e Team Drives

No caso de ser necessário utilizar outras contas é possível utilizar o parâmetro -label para definir outras credenciais de acesso ou utilizar uma Team Drive.
google-drive-ocamlfuse -l myTeamDrive

Será iniciado o processo de autorização que deve ser feito com a conta Google que terá acesso à Team Drive e aguardar que termine.
Quando terminar é necessário saber o team_drive_id da Team Drive

Team Drive ID

Para saber qual o team drive ID é necessário aceder à Team Drive através do browser e observar o URL e copiar a última parte:
https://drive.google.com/drive/u/1/folders/0XS2-_aJgHL29KfOVHAS22

De seguida é necessário abrir o ficheiro de configuração: ~/.gdfuse/myTeamDrive/config

Procurar a chave no final do ficheiro e colocar o ID:
team_drive_id=0XS2-_aJgHL29KfOVHAS22

Guardar o ficheiro e fechar.

Criar Pasta

Deve criar-se a pasta para a Team Driv:
mkdir ~/DRIVE/Team

Montar Team Drive

Para montar a Team Drive é necessário executar o comando com a label e o diretório correspondente:
google-drive-ocamlfuse -label myTeamDrive ~/DRIVE/Team

Desmontar Google Drive

Caso se pretenda terminar a utilização é possível desmontar com o comando:
fusermount -u ~/DRIVE/Team


Referências e Recursos

domingo, 17 de maio de 2020

Kodi - Netflix e HBO Portugal

Utilização de um Raspberry Pi com OSMC e Kodi para ver Netflix e HBO Portugal

Ao longo dos anos a utilização de um raspberry pi para transformar uma televisão estúpida numa televisão esperta foi uma opção muito válida.

Agora com os serviços de streaming legais e disponíveis em Portugal a sua utilização num simples Raspberry Pi eleva ainda mais a inteligência de qualquer televisão.

Mais, qualquer televisão que tenha ficado burra (porque deixou de ter suporte para as atualizações dos serviços de streaming) pode recuperar alguma inteligência.

O sistema está operacional num Raspberry Pi 3 B+, com o OSMC num cartão de 32GB (é necessário ter algum espaço, no mínimo deverá utilizar-se um cartão de 8GB).

Atualização: Recentemente testei o setup num Raspberry Pi 4 B e, como o OSMC ainda não tem suporte para este dispositivo, utilizei o LibreELEC num cartão de 16GB.
Assim, pude verificar que o processo para instalação do Netflix pode ser mais simples tendo funcionado sem instalar os pacotes extra como referido pelo pimylife.


HBO Portugal

A instalação do Add-On para a HBO Portugal é simples e encontra-se disponível no repositório oficial.

Assim, basta aceder aos Add-Ons e Instalar a partir de um repositório. Na secção de Vídeos Add-Ons é necessário procurar por hGO EU e instalar.

Durante a instalação será necessário instalar o WidevineCDM (ver) que demora algum tempo.

Na configuração do Add-On é necessário escolher o País e no caso de Portugal escolher o tipo de utilização, neste caso foi escolhido o HBO Portugal. A lista de países suportadas é extensa.

Na primeira inicialização será preciso introduzir as credenciais de acesso à HBO Portugal e começar a utilizar o Add-On que funciona muito bem.


Netflix

Há pouco tempo experimentei novamente a instalação do AddOn Netflix utilizando o LibreELEC com a última versão do Kodi e os passos dados foram substancialmente mais simples.

Acedendo por SSH é possível descarregar o ZIP do repositório CastagnaIT diretamente para o raspberry pi (também é possível transferir utilizando outras formas, por exemplo, por pen ou SAMBA):

ssh root@LibreELEC
wget https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.1.zip

Após estes comandos podemos aceder ao Kodi e será necessário ir a Sistema e ativar Fontes Desconhecidas para ser possível utilizar o repositório CastagnaIT.

Nos Add-Ons é necessário aceder a Instalar a partir de um ZIP e escolher o ficheiro ZIP descarregado anteriormente (que deve estar na pasta home).

Depois de instalado é possível entrar no repositório CastagnaIT e instalar o Add-On Netflix que está em Video Add-Ons.

A instalação demora um pouco e depois é possível abrir o Add-On.

Mesmo que não esteja instalado o Widevine CDM o AddOn funciona deixando navegar por todo o conteúdo e apenas pedindo para ser instalado aquando da primeira reprodução de um qualquer conteúdo.


Para estes AddOns funcionarem será necessário ter instalado o Widevine CDM. Qualquer um deles, caso seja necessário, pedirá para se instalar o Widevine CDM e basta seguir os diferentes passos. Só é necessário instalar uma vez.

Atenção que será necessário bastante espaço para fazer as operações necessárias (>3GB) por isso convém ter um cartão com espaço e aguardar que a instalação termine (ainda é um processo demorado).


Problemas
Caso a imagem esteja desfasada do som/legendas pode ser necessário aceder às Definições do Add-on e baixar a qualidade. No Raspberry Pi 3 B+ standard é possível utilizar a qualidade 720p sem qualquer problema. O 1080p funciona bem em animação mas não dá para ver conteúdos de imagem real de forma minimamente aceitável.

Referências