Vamos ver nessa matéria o Ubuntu Touch 13.04 na prática, com instalação, testes e usos no smartphone Google (LG) Nexus 4. Focando em mostrar o que não é visto em outras matérias.
(06/10/2013) Para instalação do Ubuntu Touch 13.10 recente, vide novo artigo.
Ubuntu Touch roda no smartphone Nexus 4 com suporte oficial da Canonical, que chegou no mercado brasileiro no final de Março por R$1.699, mas em Maio tem tido uma ou outra promoção por aprox. R$1,3 mil. Segundo algumas matérias, o Nexus 4 é o melhor smartphone para rodar Ubuntu Touch, inclusive supera o Nexus 7 que tem problemas de desempenho e instabilidade.
No início de 2013 foi anunciado o Ubuntu for Phone / Ubuntu Touch para smartphones e tablets, vide matéria anterior Ubuntu Phone OS : ponto de vista de usuário e programador.
Instalação do Ubuntu Touch no Nexus 4
É muito simples instalar o Ubuntu Touch no Nexus 4, basicamente se segue o guia “Ubuntu Touch – Install” da Canonical. Vide também essa matéria “How To Install The Ubuntu Touch Preview On Your Nexus Android Device” com fotos dos passos abaixo. Há 3 etapas :
1) Instalar o software “Touch Developer Preview Tools” em um computador com Ubuntu 12.04/12.10/13.04 via comandos (no X Terminal, em conta de usuário com permissão administrativa) :
$ sudo add-apt-repository ppa:phablet-team/tools
$ sudo apt-get update
$ sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot
2) Desbloquear o bootloader do Nexus 4. Isso apaga todo o conteúdo prévio do Nexus 4, zerando o Android 4.2.2 que vem nele, logo faça backup. Ligue o Nexus 4 com os 3 botões físicos pressionados ao mesmo tempo, aí entra na tela de bootloader (com um robozinho verde deitado). Conecte o cabo microUSB-USB entre o computador e o Nexus 4, digite no computador :
$ sudo fastboot oem unlock
e confirme no Nexus 4 que quer desbloquear (unlock). Então aperte o botão direito de desligar. Habilite então no Android do Nexus 4 o modo de depuração USB (USB debugging) via “Settings (Configurações) > About (Sobre)”, tocando 7 vezes no número da versão de build number (último ítem, abaixo da versão do kernel) tal que aparece um aviso de que entrou no modo “developer” (desenvolvedor). Vá em “Settings (Configurações) > Developer options (Opções do desenvolvedor)” e habilite a opção “USB debugging / Depuração USB”. Por fim, digite no computador :
$ sudo adb kill-server
$ sudo adb start-server
Após tal comando, conecte novamente o cabo USB entre o computador e o Nexus 4, e confirme no Nexus 4 que aceita a chave de segurança (host key).
3) (06/10/13, ultrapassado, vide novo artigo) Instalar o Ubuntu Touch no Nexus 4. Digite no computador, com o cabo USB conectado entre com o Nexus 4 :
$ sudo phablet-flash -b
Android 4.2.2 do Nexus 4 se despedindo enquanto que o Ubuntu Touch está sendo gravado
|
Tela de entrada (boas-vindas) do Ubuntu Touch no Nexus 4
|
Essa fase é mais demorada, com downloads de alguns arquivos (de aprox. uns 500 MB), descompactação em “~/Downloads/phablet-flash/” no computador, cópia para o Nexus 4 e por fim instalação no Nexus 4. Comigo gastou uns 20 minutos.
Pronto, agora o Nexus reinicializará e mostrará em uns 30s a tela de entrada do Ubuntu Touch.
Usando o Ubuntu Touch no Nexus 4
Deslize da direita para esquerda para destravar a tela de entrada, embora o círculo mostrando eventos sugira fazer um movimento circular, etc. Não vou abordar aqui como usar a GUI (Graphical User Interface) do Ubuntu Touch, várias matérias falam sobre isso, por exemplo essa da ArsTechnica.
Até agora (26/05/2013), a GUI está bem limitada, com poucos softwares funcionando, várias partes da GUI ainda estão sem interação, etc. Tal que na prática atualmente é necessário acessar a interface de comando-de-linha (CLI – Command Line Interface) para por exemplo instalar mais programas, via acesso (USB ou rede WiFi) a partir de um computador ou Terminal instalado no Ubuntu Touch.
Os softwares abertos no Ubuntu Touch são mostrados em miniaturas, porém sem animação.
|
Um toque demorado sobre uma miniatura mostra o X para fechar os softwares abertos.
|
Conectando o Ubuntu Touch do Nexus 4 a um computador
O 1o passo é conectar o computador ao Nexus 4 via USB e fazer a comunicação via adb (Android Debug Bridge). No computador digite :
$ sudo adb root
$ sudo adb shell
(13/07/2013) Para ‘flipped images’, agora “adb shell” cai diretamente no Ubuntu, não sendo mais necessário rodar chroot. Se quiser usar “legacy” images, com Android e chroot, então o último comando mostra o prompt dentro do Android do Nexus 4, “root@android:/ #”. Para entrar no Ubuntu Touch (que é um chroot em cima de um Android simplificado, sem Dalvik, etc), digite então no Nexus 4 :
$ ubuntu_chroot shell
Pronto, agora você tem o prompt de root no Ubuntu Touch : “root@ubuntu-phablet:/#” ! Caso queira mudar para o usuário default “phablet”, digite “su – phablet”, a senha também é “phablet”.
(06/10/13, ssh já vem instalado, vide novo artigo) Agora sim podemos instalar o servidor ssh no Nexus 4 para termos acesso via WiFi (sem precisar de conexão USB). Em “Networks” (deslize de cima para baixo no símbolo de sinal de antena), escolha a rede WiFi a que você tem acesso. Digite como usuário ‘root’ ou ‘phablet’ no Nexus 4 :
$ sudo apt-get install openssh-server
Eu recomendo configurar o roteador WiFi para atribuir um IP fixo ao Nexus 4, facilitando colocar atalhos nas conexões ssh/sftp no computador para o Nexus 4. Mas caso não tenha IP fixo, obtenha o IP do Nexus 4 via comando “$ ip addr show wlan0”. Então no computador, basta digitar o comando “ssh phablet@<número IP>” para conectar via WiFi com o número IP obtido antes.
Testando o Ubuntu Touch
Para tirar a dúvida se é Ubuntu 12.10 ou 13.04 após o instalar o Ubuntu Touch em 25/05/2013, nada melhor que o comando ‘lsb_release’ :
phablet@ubuntu-phablet:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
Release: 13.04
Codename: raring
Ou seja, já é a versão 13.04 Raring Ringtail em versão ARM (armhf) com kernel Linux v3.4.0 :
phablet@ubuntu-phablet:~$ uname -a
Linux ubuntu-phablet 3.4.0-1-mako #7-Ubuntu SMP PREEMPT Wed May 15 19:53:54 UTC 2013 armv7l armv7l armv7l GNU/Linux
Ubuntu Touch versão 13.04 armhf (ARM hard-float).
|
Python 2.7.4 já vem instalado e IPython 0.13.2 é disponível no Ubuntu Touch 13.04.
|
O Ubuntu Touch não usa servidor gráfico X11, mas sim SurfaceFlinger do Android (e futuramente Mir). E toda a GUI tem que ser feita em Qt5 ou HTML5. Por isso há poucos softwares com GUI até agora. Alguns que comporão o conjunto básico de softwares do Ubuntu Touch estão sendo desenvolvidos, são as Core Apps, com previsão para versão estável em Outubro de 2013 (Ubuntu Touch 13.10).
(06/10/13, Core Apps já vem instaladas, vide novo artigo) Para instalar Core Apps que ainda não estão inclusas no Ubuntu Touch atual :
$ sudo apt-get install ubuntu-terminal-app ubuntu-filemanager-app ubuntu-docviewer-app
$ sudo apt-get install ubuntu-clock-app ubuntu-emailclient-app ubuntu-rssreader-app
$ sudo apt-get install ubuntu-youtube-app ubuntu-facebook-app ubuntu-music-app
Use o “Search” (topo esquerdo superior da tela) para encontrá-las e rodá-las. Recomendo o Terminal e File Manager, tal que se possa usar sozinho o Nexus 4 com Ubuntu Touch, quando necessário.
Porém é nos softwares que não precisam de GUI que o Ubuntu é hoje muito forte, com dezenas de milhares de pacotes de instalação disponíveis, muitos são softwares de PC desktop e que usualmente não estão disponíveis (completos) para sistema operacionais móveis (Android, BlackBerry OS, iOS, Symbian, etc). Por exemplo linguagens de programação e softwares científicos : gcc/g++/gfortran (4.7.3), compilador TeX/LaTeX, CAS Maxima (5.29.1), módulos e ferramentas Python como IPython (0.13.2), MPMath, NumPy (1.7.1), MatPlotLib (1.2.1), SciPy (0.11.0), SymPy (0.7.2), etc. Basta instalar via “sudo apt-get install <nome-do-pacote>”.
IPython Notebook 0.13.2 rodando SymPy 0.7.2 com renderização MathJax/TeX das expressões matemáticas.
|
IPython Notebook 0.13.2 mostrando os novos gráficos do SymPy 0.7.2, embutidos no Notebook.
|
O IPython 0.13.2 roda inclusive com a interface de Notebook, vide fotos acima. No modo servidor e parcialmente no modo cliente. Parcialmente devido ao estágio de desenvolvimento atual do navegador web do Ubuntu Touch. IPython Notebook cliente funciona com DashBoard, abertura de IPython Notebooks já existentes, renderização MathJax e gráficos PyLab embutidos, cálculos, etc. Mas IPython Notebook não permite criar “New Notebook” (acho que falta poder criar aba ou nova janela no navegador web atual), longos Notebooks não são exibidos totalmente (o rolamento pára) e alguns botões não têm o toque preciso.
Atualização de 01/06/2013 do Ubuntu Touch
Em 1o de Junho foi lançada uma atualização relevante para o Ubuntu Touch, com novos recursos facilitando o uso do smartphone (Google Nexus e Nexus 4) para voz, SMS, 3G com dados, mais estabilidade, etc. O 3G para dados por enquanto tem configuração manual, mas para Junho está prometido que isso será feito via uma interface gráfica.
Para atualizar para essa nova versão do Ubuntu Touch é muito simples, via cabo USB ligando o PC com Ubuntu ao Nexus 4, digite no terminal do PC com Ubuntu :
$ sudo phablet-flash
Veja que é o mesmo comando para instalar o Ubuntu Touch na 1a vez, porém sem o “-b”. Depois o Nexus 4 reinicializa e pronto, temos o Ubuntu Touch atualizado. O diretório home (“/home/phablet/”) é preservado, mas todo o Ubuntu Touch é reinstalado, logo se você tinha instalado programas extras, então tem que reinstalar, vide exemplos mais acima.
Ainda usando a versão de 01/06/2013, testei fazer e receber chamadas de voz e enviar SMS, tudo funcionou 100%, sem ressalvas.
Flipped Ubuntu Touch images (03/07/2013)
Em 03/07/2013 foi anunciado que o Ubuntu Touch usaria a partir de então imagens ‘flipped’ (vide matérias de ILoveUbuntu e Liliputing) como padrão, i.e., em que o Android está dentro do Ubuntu (via LXC container), ao contrário de antes em que o Ubuntu estava dentro do Android (via chroot). Logo, para abrir um terminal dentro do Ubuntu Touch via cabo USB de um PC, só é necessário “sudo adb root” e depois “sudo adb shell”.
A atualização para tal Flipped Ubuntu Touch images é como antes (vide acima), via “sudo phablet-flash”. Caso queira usar a versão com chroot, então atualize via “sudo phablet-flash –legacy” (com 2 ‘-‘), mas não vi razões práticas para manter a versão legacy.
Principais novidades encontradas na versão de 06/07/2013 (versão diária que eu instalei) em relação a versão de Junho de 2013 : Ubuntu Touch 13.10 (ao invés de 13.04), Linux kernel 3.4.0-3 (no lugar de 3.4.0-1), vários softwares já vem incluídos (File Manager, Terminal, System Settings, etc), softwares em versões mais completas e com menos bugs (Terminal, File Manager, System Settings, Music, etc), screenshot disponível (vide abaixo), Python 2.7.5 (versus 2.7.4), gcc/g++ 4.8.1 (ao invés de 4.7.3), etc.
No Ubuntu Touch de Julho de 2013 há mais softwares pré-instalados, incluindo File Manager, System Settins e Terminal.
|
System Settings é uma novidade do Ubuntu Touch de Julho de 2013.
|
Para fazer screenshot agora tem uma forma oficial, vide “Getting a screenshot” em “Ubuntu Touch Dogfooding”, aqui criando uma imagem ‘screenshot.png’ no diretório ‘/tmp/’ e copiando para o PC via cabo USB :
$ sudo adb root
$ sudo adb shell /system/bin/screencap -p /tmp/screenshot.png
$ sudo adb pull /tmp/screenshot.png ./screenshot.png
A forma mais completa para atualizar o Ubuntu Touch é via “sudo phablet-flash” em um PC (com Ubuntu) com USB conectado ao Nexus 4. Atualizações via “sudo apt-get upgrade” (no Nexus 4) não atualizam todos os softwares do Ubuntu Software, p.e., System Settings, etc.
Opinião sobre Ubuntu Touch no Nexus 4
Pontos positivos atuais, na minha opinião :
- instalação muito fácil no Nexus 4;
- a interface do Ubuntu Touch roda suavemente no Nexus 4, tendo controles swipe (deslizar do dedo) para tudo, sem precisar de botões, à la MeeGo Harmattan 1.2 do Nokia N9;
- Ubuntu Touch tem multi-tarefa de verdade, em que o usuário controla realmente se e quando o software é mantido aberto ou fechado, ao contrário de Android, iOS, Windows Phone, etc. As miniaturas não são animadas que nem no Maemo 5 (Nokia N900), MeeGo Harmattan 1.2 (Nokia N9) e BlackBerry OS, sendo semelhantes às do Symbian;
- toda herança de milhares de pacotes Linux de desktop desenvolvidos nas últimas décadas à disposição de smartphones e tablets, desde que não tenham GUI. Assim temos servidores Internet, ferramentas diversas, dezenas de linguagens de programação, softwares científicos avançados, etc. Vários desses softwares não tem equivalentes em sistemas operacionais móveis (exceto Maemo, MeeGo e Mer/Nemo/Sailfish que são Linux móveis) ou somente têm versões simplificadas;
- via testes de desempenho que eu fiz com alguns programas de cálculos (assunto de futura matéria) que mostram que o Ubuntu Touch é bem mais eficiente em uso de CPU que o Android no mesmo hardware (Nexus 4, etc) em termos de cálculos em C/C++ e Python, inclusive permitindo o uso fácil de múltiplos núcleos nos cálculos (OpenMP, etc).
Pontos negativos e/ou que precisam ser resolvidos :
- a interface do Ubuntu Touch ainda está preliminar, com algumas funcionalidades sendo por enquanto decorativas, sem funcionar realmente. Mas até Outubro de 2013 o Ubuntu Touch deverá estar completo e estável, segundo a Canonical;
- ícones grandes na interface desperdiçam a tela HD do Nexus, com poucos ícones visíveis por vez, o ideal seria o tamanho dos ícones, espaçamento, etc, serem configuráveis;
- o teclado virtual não tem tecla “Ctrl”, isso poderia ser resolvido com diferentes opções de teclado virtual;
- (12/06/2013, 13/07/2013 :
como fazer screenshot sem X11 no Ubuntu ? Como aumentar o tempo de economia de energia que apaga a tela ? RESOLVIDO, via Ubuntu Touch Manager para Ubuntu de PC, porém meio instável, ou via ‘adb shell /system/bin/screencap’ disponível na atualização de 07/2013 (vide abaixo);
- (12/06/2013 : a estabilidade melhorou com a versão de 01/06/2013) em algumas horas de uso, experimentei o editor de notas fechando sozinho e forçando fechamento de outros 3 softwares que estavam abertos, bem como o navegador web ficar instável, fechando outros softwares e provocando reboot no Nexus 4;
- (12/06/2013, 13/07/2013) Terminal não suporta rolamento via toque, modo paisagem (landscape) não funciona bem (gestos continuam em modo vertical, portrait), não consigo abrir 2 terminais,
alguns botões dos painel tem texto abreviado (…), tamanho default do texto não mostra os caracteres direito enquanto digita logo é preciso aumentar;
- navegador web não pode ser aberto mais de uma vez e não permite abas. Não tem por enquanto opções de configuração, bookmaks, etc;
- a falta de interface gráfica X11 impede milhares de softwares Linux de funcionarem no Ubuntu Touch. O novo Qt5 (de 12/2012) é um pouco diferente do Qt4, logo há poucos softwares em Qt5 disponíveis atualmente, isso mudará somente a médio e longo prazos;
- centenas de programas em Python com GUI precisam de PyQt e/ou PySide (feitos para Maemo 5, MeeGo, Mer/Nemo/Sailfish), mas ambos ainda não estão compatíveis para Qt5 (somente para Qt4). PyQt5 “development snapshots” foram lançados em início de Maio de 2013, logo em poucos meses PyQt5 deve estar disponível estável nos repositórios Ubuntu. Mas o projeto PySide ainda está atrasado em Qt5 por falta de colaboradores.
O que o Ubuntu Touch promete até lançamento oficial da v13.10 ? Bem : 3G de dados via interface gráfica, uso de Click como formato simplificado de arquivos de instalação (no lugar dos .deb, sem suporte a dependências, etc, vide artigos do site ILoveUbuntu, 1 e 2), servidor gráfico Mir (no lugar do SurfaceFlinger do Android), vários softwares funcionais ou com mais recursos (navegador web, etc), etc. Enfim, eu aposto no Ubuntu Touch e Sailfish OS em final de 2013 em diante, podendo mudar o panorama de sistemas operacionais móveis para algo bem diferente das limitações de Android, iOS, etc.
Futuras matérias abordarão benchmarks no Nexus 4, etc.