Comportamento, ciência, tecnologia, direito, política, religião, cinema e televisão, alguma controvérsia, algum bom senso, e um pouquinho de besteira, para dar um gostinho...

8 de dez. de 2012

DNS e ThePirateBay

Para quem não conhece, o The Pirate Bay é o maio site de torrents do mundo. Com um tráfego imenso, que chega a rivalizar com grandes empresas, e milhares de links magnet para se baixar praticamente de tudo.

A filosofia do KOPIMI, e que copiar não é roubar, era muito usado alguns anos atrás, e levou aos avanços que conhecemos em tecnologia hoje. E chegamos a era da Internet, onde tudo pode (e é) copiado a velocidades ridículas. Cada dia mais as pessoas procuram entretenimento no computador ao invés da TV. Eu vejo isso não como roubo, mas como evolução, a criação de mídia está mais relacionada a divulgação que ao consumo propriamente dito. Em breve os créditos serão menos importantes que o filme, não como é hoje. Enfim, Google já descobriu isso. Disponibilize o conteúdo, e venda propaganda. O Facebook entrou nessa também. Só a Apple (ridícula) é que ainda vende dispositivos super-caros para "novos ricos" ignorantes dispostos a desembolsar uma grana ridícula por uma marca em forma de maça mordida no seu gadget. Vender propaganda é o que há, gera uma sequência de eventos que leva a compras, e infelizmente, a novela não é mais vista que o Facebook...

Enfim, hoje fui procurar uma série. Lembrando que esta série no Brasil ou passa em TV por assinatura, sempre 2 temporadas atrasadas, ou na TV aberta, 4 temporadas atrasada e dublada (fica ridículo), fora que pagar assinatura por TV tendo Internet é tosco... Voltando ao assunto. O The Pirate Bay não estava acessível. Ao invés do normal resultado de queda do site, um erro de DNS da Oi. Parabéns OI! Agora vocês bloqueiam sites via DNS também. Seus imbecis. Eu dou risada disso (depois de trocar o DNS para OpenDNS e Google) pois é como uma batalha entre um velho caquético cheio da grana e um jovem lutador de MMA que ganha mesada. Ao longo do tempo, quem será que vai ganhar? Não sei. Mas espero que o velhinho se rale.

Enfim, a OI BLOQUEOU O THE PIRATE BAY. Tô vendo que vou ter que acabar contratando uma VPN eventualmente.

7 de dez. de 2012

Linux (Gentoo) e dispositivos MTP (Android e outros)

Depois de tanto tempo sem escrever, o que vem lá?! Um post técnico! Isso mesmo.

Recentemente tive meu Samsung Galaxy S2 GT-I9100 roubado. Estou rastreando o ladrão pelo Cerberus e eventualmente a polícia vai achar ele, mas isso não vem ao caso. Estava na hora de investir em um novo dispositivo. Um preço acima de R$ 1.000,00 era proibitivo visto que daqui a um ano e alguns meses recebo um novo aparelho no resgate do plano empresarial. Depois de muita pesquisa optei por um Sony Xperia P (LT22i). Ótimo aparelho, de verdade, e um preço convidativo.

Enfim, quando ele chegou acabei novamente caindo no velho problema dos novos dispositivos Android no Linux. Como não tem opção (o aparelho não suporta UMS (USB Mass Storage) mais (o S2 ainda suportava, mas era forçado) e eu precisava acessar os arquivos, e via WiFi estava muito lento. Além disso meu tablet (GT-P3100) também não possui UMS. Enfim, precisava de uma solução.

O MTP (Media Transfer Protocol) é meio quebrado no Linux. Tive muitos problemas e nenhum programa conseguia acessar o dispositivo. Depois de muito pesquisar, acabei encontrando o JMTPFS. Um ótimo programa que compilou direitinho no meu Linux Gentoo.

Transferi o binário para a pasta /usr/bin, e testei. Funcionou direitinho, via linha de comando, ele encontrou meu aparelho e montou o sistema de arquivos.

Agora, é chato ir para linha de comando para acessar os arquivos, fora que, se você esquecer de desmontar o dispositivo quando remover, vai falhar a próxima montagem. Precisava de uma maneira mais decente de lidar com isso. Entra o UDEV.

Desde que aprendi a lidar com as regras do UDEV para montar dispositivos obscuros como placas de rede virtuais para usar no QEMU uns 5 anos atrás, sempre gostei dele. Regras são intuitivas e basta um pouco de paciência para se fazer algumas mágicas. No entanto, todos os tutoriais que encontrei eram velhos, faziam menção a ferramentas deprecadas como udevmonitor, udevtest, etc. Hoje em dia o udevadm faz tudo.

Algumas dicas:

udevadm monitor
Comando para monitorar os dispositivos adicionados e removidos do sistema, útil para achar o bendito node que você precisa, para então usar:

udevadm info -a -p

E lá vem todas as propriedades do dispositivo, loucura, tudo que você precisa saber sobre ele. Primeiramente usei o identificador do dispositivo, mas depois achei melhor usar um atributo mais genérico para que qualquer dispositivo MTP pudesse ser montado automaticamente.

As regras do UDEV são autoexplicativas... Em /etc/udev/rules.d/99-mtp.rules:

ACTION=="add", ENV{ID_MTP_DEVICE}=="1", RUN="/usr/local/sbin/mountmtp mtp%k"
ACTION=="remove", ENV{ID_MTP_DEVICE}=="1", RUN="/usr/local/sbin/umountmtp mtp%k"

Bem fácil, na ação adicionar, todo dispositivo com interface MTP vai automaticamente lançar o script mountmtp (não esqueça de chmod a+x no script, para torná-lo executável):


#!/bin/bash
sleep 10
mkdir -p /media/$1
jmtpfs -o allow_other /media/$1 |& logger -t jmtpfs

Inseri um sleep para que haja tempo do dispositivo lançar o conteúdo no protocolo, como meu sistema tem depuração acionada, isso demora alguns segundos. Poderia ser menos, mas para que arriscar...

Na remoção ele simplesmente desmonta o diretório:

 #!/bin/bash
umount -v /media/$1 |& logger -t jmtpfs
rmdir /media/$1

Testado com meu ST22i (Sony Xperia P) e com um Galaxy Nexus.