sábado, 27 de fevereiro de 2016

Overscan/Underscan on HDMI using Ubuntu 14 and Panasonic TH-42PV70LB Plasma TV

I decided to use a low end computer as my media center. I wanted use the HDMI connection, because doing so I don't need an extra cable for audio. The bad thing was that the output screen on the TV was clipped when using HDMI. It was just fine using VGA port, but clipped on HDMI.

I found the reason of the clipping is something called overscan (more info about it here: https://en.wikipedia.org/wiki/Overscan). After a long search on the web I found you can try disable overscan on your TV menu (mine doen't have this option), try underscan on you video board (didn't have this option either!). Another option was xrandr --tranform, but the result was not good.

The best option that I found was to create a new modeline. And this worked just fine after figuring out the right configuration.

You can fin your TV's modeline here:

https://www.mythtv.org/wiki/Modeline_Database

My TV is an old and good Panasonic TH-42PV70LB. It has a nice plasma screen and besides using it as a TV I use it as a heater to keep my room warm during the winter. The mode I picked from the site was:

TX-42PX75: Modeline "1208x679" 74.25 1208 1353 1393 1650 679 707 712 750 +hsync +vsync

I have no idea what all this numbers means, but you can find more info about it here (if you are brave enough):

https://en.wikipedia.org/wiki/XFree86_Modeline

What it actually does is configure your HDMI output to add the expected overscan/underscan that the old stuff are waiting for. So first you create the new mode:

xrandr --newmode  "1208x679" 74.25 1208 1353 1393 1650 679 707 712 750 +hsync +vsync


Add it to the HDMI interface:

xrandr --addmode HDMI1 "1208x679"

And turn it on:

xrandr --output  HDMI1 --mode "1208x679"

This is way to deal with the overscan problem on old TVs. Probably all the new TV has some feature to turn it off when using computer.
Remember to change HDMI1 to what is the name of your interface.

Unfortunately you will lose this after restart the system. This is something for another post.

sábado, 13 de fevereiro de 2016

Como conectar ADB através da WIFI para trabalhar no Android Studio

Pode ser interessante conectar com os dispositivos no Android Studio através da WiFi. Um exemplo é quando esta sendo desenvolvido algum software que utilize a porta USB do celular. Com a porta ocupada não é possível conectar pelo cabo.

Primeiro voce precisa descobrir onde esta instalado o SDK do Android. Pode parecer uma tarefa simples, mas demorei um bom tempo para encontrar isso.
Desta vez estou utilizando Windows. O jeito mais fácil é dentro do Android Studio entrar no menu:

File - Settings - System Settings - Android SDK

La esta anotado em qual diretório esta instalado o SDK. Entre neste diretório pelo cmd.exe.
Encontre o diretório \plataform-tools:

\Android\sdk>cd platform-tools

Agora é hora de conectar o celular pela USB (vamos fazer WiFi pela USB!! Mentira, é só para configurar o ADB). Desbloqueie a tela do celular e espere ele ser detectado.No meu aparece um gatinho em cima da tela. Acho que isso significa debug para o pessoal do google. Agora tenha certeza que o ADB esta conectado pela USB:

\Android\sdk\platform-tools>adb usb
restarting in USB mode

Precisamos agora encontrar o IP do celular na rede WiFi. Tenha certeza que ele esta conectado na mesma rede que o PC. Voce pode encontrar o IP do celular no menu de rede dele, ou mais fácil:

\Android\sdk\platform-tools>adb shell ip -f inet addr show wlan0
24: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 100

    inet 192.168.0.7/24 brd 192.168.0.255 scope global wlan0

Este comando retorna o IP o celular. Agora é hora da mágica, pedimos para o ADB no celular escutar a porta 5555:

\Android\sdk\platform-tools>adb tcpip 5555
restarting in TCP mode port: 5555

Agora DESCONECTE o celular. Esse passo é importante. Se voce deixar ele conectado tudo vai funcionar, mas ao desconectar o cabo USB voce vai perder a conexão USB e WIFI (pelo menos isso foi oque acontecia comigo). Uma vez desconectado o cabo USB, lembrando de alterar o IP para o valor que voce encontrou, digite:

\Android\sdk\platform-tools>adb connect 192.168.0.7:5555
connected to 192.168.0.7:5555

Uhhuuuu agora vc deve ser capaz de baixar o programa ou realizar o debug no Android Studio da mesma forma que fazia com o USB. Só que agora não tem gatinho na tela. Para retornar ao modo USB use o comando:

\Android\sdk\platform-tools>adb usb

quinta-feira, 11 de fevereiro de 2016

Como instalar Android Studio no Ubuntu 14.04 64 bits

Linux é um saco. No Windows eu baixo o pacotinho do Android Studio, clico e tudo funciona. Mas não no Linux, jamais! No linux vc precisa baixar um monte de pacote, instalar um monte de coisa e sempre vai dar pau. Mas a gente não desiste.

Primeiro é importante verificar se o pc tem Java 7 da Oracle instalado.
A Oracle é mala, o CEO é um doidão! Até até avião de guerra ele tem (https://en.wikipedia.org/wiki/Larry_Ellison). Enquanto Neymar pega mulher com ferrari, esse cara pega mulher com mig29. Xupa Neymar.

Bom, não da pegar Java da Oracle pelo repositorio do Ubuntu, mas é possivel pegar desses caras:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer


Para verificar a versão instalada:

java -version

Este serve para ver a versão do compilador caso necessario.

javac -version 

No meu caso ele retornou isso:

java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)


Eu esperava algo como Java 7....keep walking...
Hora de baixar o Android Studio:

https://dl.google.com/dl/android/studio/ide-zips/1.5.1.0/android-studio-ide-141.2456560-linux.zip

Enquanto vc baixa o Android Studio sugiro instalar isso aqui (para o Linux 64 bits). Parece que parte do SDK é feito em 32 bits, e nos sitemas 64 bits do Linux isso gera um erro no final da instalacao:

Unable to run mksdcard SDK tool

A solução é esta aqui (https://code.google.com/p/android/issues/detail?id=82711):

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

Agora deve estar tudo certo para instalação. Descompacte o arquivo zip no diretorio preferido. No diretorio /bin abra o arquivo do studio:

./studio.sh

Ele deve abrir e rodar. Deve tb baixar o SDK mais atual para desenvolvimento e
Iiiiiirrráááá deve estar funcionando.

Para quem for valente e pretende utilizar o emulador do Studio vale a pena instalar o KVM. Eu preferi utilizar o próprio celular para rodar e debugar os programas:

http://developer.android.com/intl/pt-br/tools/devices/emulator.html

https://software.intel.com/en-us/android/articles/speeding-up-the-android-emulator-on-intel-architecture

Para usar o studio rode no terminal ./studio.sh.
O Android Studio é pesado! Nem tente usar celerons com 2G. Muitoo lento.