Criando um switch KVM por software

Nessa postagem mostrarei como fazer um KVM-switch para Linux usando apenas software e um pouco de hardware compatível.

Para começar você precisa dos seguintes dispositivos:

E dos seguintes softwares instalados: ddcutil e Solaar. A instalação deles no Fedora é bastante simples, já que eles estão nos repositórios oficiais do projeto:

sudo dnf install -y solaar ddcutil

Mouse e Teclado

É bem provável que você já tenha o Solaar instalado se você tem o teclado e o mouse da Logitech. De qualquer maneira, a documentação do projeto fornece os passos iniciais para configurar o Solaar, caso seja necessário.

Você pode inspecionar a configuração dos dispositivos usando o comando solaar show. Pessoalmente acho mais simples verificar na GUI do Solaar, já que ela também mostra quais os valores aceitáveis para o comando que usaremos adiante. A informação relevante para nós é a mostrada em “Change Host“. Ela mostra os nomes dos hosts com os quais seu dispositivo está pareado.

Usando as informações mostradas na UI, podemos usar a linha de comando para trocar o host ativo:

solaar config "MX Keys" change-host 1:mercury

Note que o nome do host tem que ser igual ao mostrado na UI e em alguns casos pode ser que somente o número do ID seja mostrado.

Repita o mesmo para o mouse, tomando cuidado de garantir que o ID utilizado é o ID do dispositivo, pois é possível que os eles sejam diferentes entre o mouse e o teclado (ex.: o host 1 do teclado é o host 2 do mouse, etc):

solaar config "MX Master 3" change-host 1:mercury

Monitor

Para controlar o monitor, usamos o programa ddcutil, que serve para interagir com o software do monitor através do conjunto de protocolos DDC-CI. Nesse link aqui, que serviu de referência pra implementar o controle do monitor, você encontra algumas dicas legais sobre o ddcutil.

O primeiro passo é detectar o monitor e ver quais as funcionalidades estão disponíveis:

sudo ddcutil detect

Em algumas distribuições pode ser necessário carregar o módulo i2c-dev. O Fedora já costuma fazer isso por padrão, então nenhum passo a mais é necessário. Se estiver usando outra distro, consulte a documentação.

Se executado com sucesso, o comando vai mostrar uma saída semelhante a esta aqui:

Display 1
I2C bus: /dev/i2c-2
EDID synopsis:
Mfg id: GSM
Model: LG Ultra HD
Serial number:
Manufacture year: 2017
EDID version: 1.3
VCP version: 2.1

Se você estiver usando um laptop, o comando também vai mostrar a informação do monitor embutido. Esse monitor embutido não é relevante para o KVM-switch virtual, portanto podemos ignorar as mensagens de erro referentes a ele.

A informação relevante mostrada pelo comando acima é o I2C bus. Mais especificamente, o número do bus (2, no caso de /dev/i2c-2). Tendo a informação do bus, podemos usa-la para descobrir as funcionalidades do monitor. Para o KVM-switch estamos interessados na funcionalidade “Input Source“. Podemos usar o seguinte comando para descobrir o ID da feature e os valores aceitáveis para configura-la.

sudo ddcutil capabilities --bus=2 | grep -A 5 "Input Source"

Feature: 60 (Input Source)
Values:
11: HDMI-1
12: HDMI-2
0f: DisplayPort-1
10: DisplayPort-2

Isso nos mostra que para mudar o dispositivo de entrada do monitor, podemos usar a feature ID 60 usando os valores (em hexadecimal) 0x11, 0x12, 0x0f e 0x10. Para testar, nesse caso:

sudo ddcutil --bus=2 setvcp 60 0x0f &

Executando esse comando já é possível trocar a entrada do monitor usando apenas a linha de comando.

Finalizando e Integrando no Gnome

Tendo em mãos os comandos para mudar o mouse, teclado e monitor. Podemos colocar tudo isso num script:

sudo ddcutil --bus=2 setvcp 60 0x0f &
solaar config "MX Keys" change-host 2
solaar config "MX Master 3" change-host 2

Repita o processo para outros hosts do seu KVM-switch virtual (ex.: micro 1, micro 2, etc). Não esqueça de dar permissão de execução nos scripts.

Por fim, podemos criar atalhos de teclado no Gnome para que execute esses scripts.

Como funciona?

No meu caso eu configurei os atalhos Ctrl+F2 para alternar para o laptop do trabalho e Ctrl+F3 para alternar para o laptop pessoal.

Obs.:

  • Imagino que funciona com qualquer teclado Logitech com suporte a múltiplos dispositivos (tipo o K810), mas eu não testei.
  • Assim como o teclado, acredito que deve funcionar com outros mouses com suporte a múltiplos dispositivos, tipo o Logitech M720 Triathlon.
  • É possível usar o ddcutil sem sudo e o artigo de referência mostra como fazer isso, porém fiz isso aqui.

Distribuições Linux compatíveis com o padrão Unix

Estava acompanhando uma discussão sobre sistemas Unix no grupo de usuários Fedora Brasil e resolvi pesquisar, a título de curiosidade, se existiam e quais as distribuições Linux certificadas dentro da Especificação Única do Unix (Single Unix Specification – SUS).

Segundo o artigo da Wikipedia que fala a respeito da SUS, existem duas distribuições Linux certificadas como Unix 03:

Ambas são distribuição Linux da família “Red Hat”. O artigo não diz, exatamente, se é uma variante do Red Hat Enterprise Linux – RHEL, portanto cito-o exatamente como descrito no artigo.

Obs.: a versão em português do artigo da Especificação Única do Unix também cita uma distribuição chamada Linux-FT, mas não encontrei nada recente sobre essa distribuição. Esse artigo do Linux Journal de Agosto de 1996 fala um pouco sobre ela. Parece que a distribuição/produto (???) foi adquirida pela Caldera.

Pacotes do OpenPHT para o Fedora

Eu empacotei o OpenPHT, um fork do Plex Home Theater mantido pela comunidade. O Plex Home Theater faz parte de um conjunto de aplicações para “media centers” e roda em diversos sistemas operacionais.

Os pacotes podem ser baixados desse link (no futuro espero contribuir o spec do pacote para o projeto upstream mas, antes disso, pretendo garantir que eles estão plenamente funcionais).

Para os interessados, as instruções de compilação podem ser encontradas nesse gist ou então, na especificação do arquivo RPM que está disponível neste link.

Configuração do touchpad do Macbook no Fedora

Caso você esteja rodando Fedora em um Macbook e esteja descontente com o comportamento do touchpad, recomendo dar uma olhada nesse meu repositório Copr. Conforme eu expliquei nesse post em inglês, eu empacotei uma configuração do Synclient/Synaptics que deixa o comportamento do touchpad parecido com o do OS X.

A instalação é abusrdamente simples:

dnf copr enable orpiske/synconf
dnf install -y synconf

Basta reiniciar o sistema e o comportamento do touchpad deve ficar semelhante ao do OS X.

 

Sobre a cobrança indevida e a conversa não tão mole da redução tarifária

Nós últimos dias está circulado pela Interwebs uma polêmcia sobre a cobrança indevida das distribuidoras na contas de luz e a redução nas tarifas de energia elétrica. O tema está sendo julgado pelo Tribunal de Contas da União (TCU) e, no momento, parece caminhar para o ressarcimento dos consumidores.

Entretanto, em face ao tom alarmante e sensacionalista dos artigos que têm circulado por aí, é preciso analisar a situação com um pouco mais de cautela.

Colocando os Valores em Perspectiva

A maioria dos artigos que eu consegui encontrar mencionam valores astronômicos cobrados indevidamente dos consumidores mas bem poucos entram em maiores detalhes. Para auxiliar no desenvolvimento do texto, é preciso colocar esses valores em perspectiva.

Primeiro, podemos usar o Sistema de Apoio à Decisão (SAD) da Aneel para obter algumas informações relevantes como, por exemplo, a tarifa residencial média mensal para cada um dos anos de 2002 até 2009 e o número de consumidores em cada um deles. Calculando a média dos valores no período resulta no seguinte:

  • Tarifa residencial média no período: R$ 277,46 (quanto, em média, cada consumidor pagou na conta de luz).
  • Média de unidades consumidoras no período: 49.291.987,63 (número de consumidores das contas luz).

Levando em conta um período de 98 meses, compreendido entre janeiro de 2002 e fevereiro de 2010, podemos calcular o valor cobrado, diminuir a cobrança indevida e calcular o quanto, em média, foi o excedente para cada consumidor. Desta forma:

  •  Faturamento total aproximado no período: R$ 1.340.278.225.796,45, ou seja, um trilhão, trezentos e quarenta bilhões, duzentos e setenta e oito milhões, duzentos e vinte e cinco mil, setecentos e noventa e seis reais e quarenta e cinco centavos.
  • Valor aproximado da cobrança indevida: R$ 7.000.000.000,00 (sete bilhões).
  • Faturamento total aproximado no período sem a cobrança indevida: R$ 1.333.278.225.796,45 (um trilhão, trezentos e trinta e três bilhões, duzentos e setenta e oito milhões, duzentos e vinte e cinco mil, setecentos e noventa e seis reais e quarenta e cinco centavos).

Então, R$ 7 bilhões continua parecendo muita coisa? Não muito né, mas o dinheiro é “nosso”, então, vamos ver quanto a gente vai ganhar dessa bolada:

  • Tarifa residencial média no período sem a cobrança indevida: R$ 276,01 (quanto, em média, cada consumidor deveria ter pago na conta de luz).
  • Diferença entre o que foi pago e o que deveria ter sido pago: R$ 1,45.
  • Total excedente no período: R$ 142,01.

Ou seja, em um período de 98 meses o valor excedente cobrado foi de proximadamente R$ 142,01. Não é, necessariamente, esse o valor a ser devolvido, sendo favorável a decisão do TCU. É possível que seja a mais (até 2 vezes o valor cobrado) ou a menos, caso as distribuidoras consigam negociar com o governo. É importante entender que isso ainda está sendo julgado e não há uma decisão final sobre o assunto.

A Redução de Tarifa é Falácia?

Agora que desmistificamos a cobrança indevida, nós podemos ir para a segunda parte do texto e analisar como a redução das tarifas se compara frente à redução da conta de energia elétrica anunciada pelo governo.

Segundo a planilha de Consumidores, Consumo, Receita e Tarifa Média – Por Classe de Consumo do SAD da Aneel, a média da tarifa residencial para 2011 foi de R$ 314,07. Usando a matemática do primeiro grau ensino médio, mais as estimativas do governo, chegamos a uma redução de aproximadamente R$ 50,88 POR MÊS na média da tarifa de consumo residencial. Mais uma vez: CINQUENTA REAIS POR MÊS, para quem está dentro da faixa de consumo médio nacional. Esse valor é consideravelmente maior do que  valor referente a cobrança indevida.

Conclusão

Houve, sim, uma cobrança indevida e esse valor deve voltar para o bolso dos consumidores. Entretanto, dizer que o governo somente está devolvendo aquilo que já era seu é uma simplificação grosseira e sensacionalista. Comparar a redução tarifária com a cobrança indevida não fornece uma visão adequada da situação.

Como sempre, para evitar confusões, o melhor é tentar analisar a situação no melhor contexto possível.

Observações finais

1. Como os dados de 2002 não estão disponíveis no SAD da Aneel, achei por bem jogar os valores para cima e usar os mesmos números de 2003.

2. O SAD não dá muitos detalhes sobre a origem dos dados, mas foi a melhor fonte que eu consegui obter para calcular esses valores.

3. Uma planilha com as contas e os dados que eu utilizei encontra-se aqui.

4. Não sou governista. Nem de direta. Muito menos de esquerda.