Roberto Colistete Jr.

Blog sobre computação científica e móvel : Mathematica, Python, CUDA, smartphone & tablets, Linux, etc

Usando Linux dentro do Android no Asus Transformer

Posted by robertocolistete em 17/09/2012

Muita gente não sabe que é sim possível instalar e usar distribuições Linux completas dentro do Android, usando chroot de imagens Linux. Para tanto o Android precisa estar rooteado (ter feito “root”, i.e., ter destravado um pouco o Android), vide artigo anterior meu para o Asus Transformer.

Quais vantagens de rodar Linux dentro do Android ? A principal é ter acesso aos mesmos softwares Linux encontrados em PC desktops/notebooks, como OpenOffice/LibreOffice, FireFox, Thunderbird, GIMP, TeXMaker/TeX/LaTeX, compiladores C/C++ (gcc/g++), Python completo (com centenas de módulos diversos), etc. Enfim, dezenas de milhares de softwares Linux (p.e., uns 29 mil na distribuição Debian) rodam em processadores com arquitetura ARM.

Anteriormente rodar Linux via chroot no Android era um procedimento bem longo e manual, mas nos últimos meses temos softwares que automatizaram a instalação e uso de Linux no Android.

Vou mostrar um caminho simples e testado para se ter Linux rodando no Asus Transformer, que tem atualmente Android 4.0.3 ICS. As instruções abaixo são para uso da distribuição Ubuntu 10.10 Maverick :

  1. instale os softwares gratuitos “Complete Linux Installer“, “Android Terminal Emulator” e “AndroidVNC Viewer“, todos no Google Play Store;
  2. vá no site do projeto LinuxOnAndroid (dos autores do software “Complete Linux Installer”), seção de downloads e escolha uma imagem. Porém, eu acho melhor o Ubuntu 10.10, um pouco mais antigo (Outubro de 2010) porém com a maioria dos softwares funcionando no Asus Transformer, ao contrário do Ubuntu 12.04. Por isso eu recomento o download da imagem UbuntuV5-image.zip (com 1,7 GB compactados) e o script ubuntuV6-1-scrip.zip, ambos para Ubuntu 10.10 Maverick;
  3. descompacte a imagem (com 3,5 GB) e o script em um computador PC. Copie então para o Asus Transformer (recomendo via cabo USB ou via cartão microSD por ser mais rápido e confiável), colocando tais arquivos (“ubuntu.img” e “ubuntu.sh”) em um novo diretório “ubuntu” dentro do “/sdcard” (“Armazenamento interno” do “Gerenciador de Arquivos”);
  4. clique no “Complete Linux Installer” no seu Android, depois em “Launch”, selecione “Ubuntu”, depois clique em “Start Linux”.
  5. um terminal será aberto com letrinhas pequenas em fundo azul (mude isso em “Preferências” do “Android Terminal Emulator”, eu coloquei fonte em 14pt e texto verde em preto). Vai pedir a resolução da tela da interface gráfica, digite “1280×752” (reservando 48 pixels para a barra inferior do Android ICS). Depois escolha “1 – LXDE” ou “2 – Gnome”, aí é sua preferência, LXDE é um pouco mais rápido. Após alguns segundos você terá o prompt de terminal Linux após “root@localhost:/#” esperando por algum comando seu, por exemplo “df -h /” (para ver espaço ocupado e livre na imagem), “ls -l”, etc. Se gosta de CLI (Command-Line-Interface), bem, então aproveite;
  6. clique no “androidVNC” e use uma nova conexão, com nickname “Ubuntu 10.10” (ou outro nome), password “ubuntu”, address “localhost”, port “5900”, color format “24-bit color”. Clique em “Connect” e… voilá, você agora vê o LXDE ou Gnome do Ubuntu 10.10 ! No “androidVNC” as melhores opções de “Input Mode” são a 1a (“Touch Mouse Pan and Zoom”) e a antepenúltima (“Mouse Pointer Control Mode”), dependendo do uso e gosto. Para aparecer o teclado virtual, use a 1a opção, dê um toque prolongado na tela, clique na grade na parte inferior (entre duas lupas). Para uso da Asus Eee Dock, eu prefiro a outra opção;
  7. para fechar o Linux, escolha “Disconnect” no “androidVNC”, depois no terminal digite “exit” (ou pressione Ctrl+d) para sair do chroot e desmontar a imagem.

Ubuntu 10.10 Maverick com LXDE rodando no Asus Transformer via chroot

Bem, cada vez que quiser usar, repita os passos 4 a 7. Dicas e informações diversas :

  • como o Android não tem X Windows, é preciso abrir um cliente VNC para ver a interface gráfica do Linux, por isso a necessidade de abrir o “androidVNC”. No Linux chroot roda um servidor VNC automaticamente. Essa camada extra de VNC servidor/cliente torna a interface gráfica do Linux mais lenta, às vezes dá para ver partes da tela sendo repintadas. Isso não é culpa do Linux, e sim do Android por não ter X Windows implementado;
  • para ficar mais fácil de usar toque na tela, aumente o tamanho das letras configurando em “System->Appearance” ou equivalente;
  • essa imagem Ubuntu 10.10 é bem completa, já tendo instalado OpenOffice 3.2.1, Firefox  3.6.13 (com Flash da comunidade), Thunderbird  3.1.17, GIMP, TeXMaker/TeXLive, Python 2.6.6, gcc/g++ 4.4.4, Leafpad, gedit, GNU Emacs 23, Evince, gv, Calculator, Xarchiver, PCManFM e Nautilus file managers, Gnome Terminal, LXTerminal, ImageMagic, Trasmission, Music Player, Synaptic, etc;
  • não atualize o Firefox e nem todos os softwares (via “apt-get upgrade”) da image, senão o Firefox pára de funcionar;
  • eu recomendo instalar softwares via terminal, com comando “sudo apt-get install –no-install-recommends <nome-do-pacote>”, pois evita instalação de pacotes recomendados, aproveitando o espaço limitado da imagem. Sugestões de pacotes : htop, abiword, gnumeric, icedtea6-plugin (Java 1.6.0 para o Firefox), maxima/wxmaxima/maxima-share, ipython, python-numpy, python-scipy python-matplotlib, python-mpmath, python-pyglet, python-sympy;
  • os diretórios “/external_sd” e “/sdcard” e apontam para o microSD externa e a memória flash interna, respectivamente, permitindo transferir arquivos entre Android e Linux chroot;
  • se fizer alterações na imagem (adicionando softwares, guardando arquivos pessoais, etc), então, com a imagem desmontada, faça cópias de segurança da imagem, pois elas não são robustas e se corrompem com facilidade (ao desligar o Android com a imagem montada, etc).

Em “LinuxOnAndroid downloads“, “Ubuntu 12.04 full” tem interface gráfica Unity que não funciona no Asus Transformer (devido ao processador Tegra 2), “Debian V4” não permite instalar novos programas e usa um XFCE bem feioso, “Backtrack” eu não testei. “Ubuntu 12.04 small” funciona, usando LXDE, mas vários softwares não funcionam (direito) : Chromium, Firefox, Thunderbird, Synaptic, etc. Recomendo instalar nesse “Ubuntu 12.04 small” : abiword, gnumeric, libreoffice, midori (navegador web leve), browser-plugin-gnash (Flash da comunidade), openjdk-6-jre e icedtea6-plugin (Java da comunidade).

Parte das instruções acima a priori funcionam para qualquer Android rooteado e smartphone/tablet. Basta mudar, por exemplo, no ítem 5 a resolução da janela VNC, tirando 42 pixels da dimensão vertical da resolução da tela do seu smartphone/tablet.

O Asus Transformer é um tablet bom para usar Linux via chroot, pois tem ótima tela com resolução de 1280×800 pixels, Tegra 2 rápido e bastante memória flash interna (mais de 10GB livres no “/sdcard”). Melhor ainda com a Asus Dock, adicionando ótimo teclado, bom touchpad e possibilidade de conectar mouse via USB.

Tabela de desempenho de alguns softwares rodando em Ubuntu em notebooks e no Asus Transformer. Formato : tempo em segundos para abrir pela 1a vez / na 2a vez (versão do software).

Software XPS 15 A1215B TF101-U10.10 TF101-U12.04
Open/LibreOffice Writer 6s / 1s (LO 3.5.4) 7s / 2s (LO 3.5.4) 21s / 5s (OO 3.2.1) 15s / 5s (LO 3.5.4)
Abiword 5s / 1s (2.9.2) 7s / 3s (2.9.2) 9s / 2s (2.8.6) 10s / 3s (2.9.2)
Gnumeric 3s / 1s (1.10.17) 3s / 1s (1.10.17) 5s / 2s (1.10.8) 4s / 2s (1.10.17)
Firefox 4s / 1s (14.0.1) 4s / 2s (14.0.1) 11s / 4s (3.6.13) Não abre (11.0)
TeXMaker 5s / 1s (3.2) 5s / 1s (3.2) 9s / 2s (2.0) GUI com erros
wxMaxima 2s / 1s (11.08) 2s / 1s (11.08) 3s / 1s (0.8.5) 4s / 1s (11.08)

Em azul temos os melhores tempos, em vermelhos os piores. Onde :

  1. XPS 15 : notebook Dell XPS 15 L502X com Ubuntu 12.04 64 bits, Core i7 2670QM 4 núcleos @ 2,2-3,1 GHz, 1+6 MB cache L2/L3, 8GB RAM DDR3 1.333 MHz, 1TB 5.400 RPM SATA hard drive;
  2. A1215B : notebook Asus 1215B com Ubuntu 12.04 64 bits, AMD C-50 2 núcleos @ 1,0GHz, 1 MB cache L2, 2GB RAM DDR3 1.066 MHz, 320 GB 5.400 RPM SATA hard drive;
  3. TF101-U10.10 : Asus Transformer TF-101 com Ubuntu 10.10, Tegra 2 (2 Cortex A9 @ 1000 MHz), 1 GB RAM LPDDR2 a 600 MHz, 1MB cache L2, ULP GeForce com 8 núcleos @ 333 MHz.
  4. TF101-U12.04 : Asus Transformer TF-101 com Ubuntu 12.04, idem.

Observações. No Ubuntu 12.04 rodando no Asus Transformer : o FireFox não abre, mas tem o navegador web Midori 0.4.3 que abre em 8s/3s, funcionando com Flash e Java; a alternativa ao TeXMaker é o Winefish; wxMaxima dá erro em cálculo, aí a alternativa é por exemplo o xMaxima.

Vemos que o Ubuntu no Asus Transformer é não muito mais lento ou mesmo igual em termos de velocidade que netbooks, notebooks baratos e mesmo notebooks topo-de-linha. Mas se os notebooks tivessem memória SSD (flash), os tempos seriam no máximo 1-2 s e mais rápidos que os do Asus Transformer.

28 Respostas to “Usando Linux dentro do Android no Asus Transformer”

  1. Airton said

    Amigo usando este ubuntu você consegue instalar todos os programas normalmente? Estou achando a idéia de ter ubuntu no tablet genial, e dependendo da sua resposta estou comprando esse mês um tablet legal e me desfazendo do note.

    • Caro Airton,
      Não 100%, pois :
      – nem todos os softwares Linux rodam na versão ARM, p.e., Kompozer nunca via funcionando em ARM. Mas é minoria;
      – via chroot nem todos os softwares funcionam, dependendo qual seja o sistema operacional nativo, hardware, etc. Por exemplo, o Ubuntu 12.04 tem vários softwares que não rodam (FireFox, etc), tal como citei acima, por causa do processador Tegra 2 do Asus Transformer ter problemas de OpenGL com a imagem Linux. Mas o Ubuntu 10.10 roda muito bem no Asus Transformer. Tem softwares Linux com muitas dependências (principalmente de som, vídeo, OpenGL) que não funcionam ou funcionam parcialmente.
      O legal de ter Linux via chroot no Android é usar o melhor dos 2 mundos, Android e Linux (de verdade). Se no Android tem software bom para a tarefa (tipo tocador de vídeo ou música bom), para que usar no Linux ? E usar no Linux softwares que não tem igual no Android,
      Sobre você se desfazer de notebook, aí só você experimentando um tablet + dock (tipo o Asus Transformer TF101 + Asus Dock) para decidir em função das suas necessidades, preferências, etc.

  2. […] com Android podem em alguns casos serem “rooteados” (digamos, destravados), permitindo rodar Linux dentro do Android (via chroot de uma imagem Linux). A maior parte do ambiente Python científico funciona no Linux dentro do […]

  3. Maurício said

    Amigo, adorei a ideia vou tentar por em prática. Agora me diz uma coisa, meu principal motivo para instalar o ubuntu no meu tf101 seria poder rodar o SAP R3. Vc saberia dizer se o sap gui linux rodaria no tf101 com ubuntu?

  4. […] Usando Linux dentro do Android no Asus Transformer […]

  5. Marcos Araujo said

    Boas!
    Fiz todos os passos direito do seu tutorial, mas na hora que eu clico connect no vnc dá a mensagem “ECONNREFUSED(connection refused)

    • Qual :
      – tablet está usando ? Está rooteado mesmo ?
      – imagem Linux você está usando ? Ubuntu 10.10 ?

    • Dê a mensagem completa. Mostra antes :
      “VNC connection failed!
      failed to connect to localhost/127.0.0.1 (port 5900): connect” ?

      • Marcos Araujo said

        Quando ligo o androidVNC dá a mensagem:
        “VNC connection failed!
        failed to connect to localhost/127.0.0.1 (port 5900): connect
        failed ECONNREFUSED(connection refused)

        Mas antes disso no android terminal emulator fica assim:
        su
        cd sdcard/ubuntu
        sh ubuntu.sh
        Loop device exists
        mount: mounting /dev/block/loop255 on /data/local/mnt failed: Device resource busy
        mount: mounting devpts on /data/local/mnt/dev/pts failed:Device resource busy
        mount: mounting proc on /data/local/mnt/proc failed:Device resource busy
        mount: mounting ssysfs on /data/local/mnt/sys failed:Device resource busy
        net, ipv4. ip_forward = 1
        ubuntu.sh[58]: cannot create /data/local/mnt/etc/resolv.conf: I/0 error
        ubuntu.sh[59]: cannot create /data/local/mnt/etc/resolv.conf: I/0 error
        ubuntu.sh[60]: cannot create /data/local/mnt/etc/hosts: I/0 error
        Ubuntu is configured with SHH and VNC servers thatcan be accessed from the IP:
        eth0: No such device
        Now enter the screen size you want in pixels(e.g. 800×480), followed by [ENTER]:
        1280×752
        Please select which Desktop environment you want to use, type the number to select it then press[ENTER]
        1-LXDE
        2-Gnome
        Make your Selection:
        1-LXDE
        /root/init.sh: line 51: vncserver: command not found
        /root/init.sh:line 53: /etc/init.d/ssh: No such file or directory

        If you see the message ‘New ‘X’ Desktop is localhost:0’ then you are ready to VNC into your ubuntu 0S. .
        If using androidVNC, change the ‘Coloro Format’ setting to 24-bit colour, and once you´ve VNC´d in, change the ‘input mode’ to touchpad (in settings)
        To shut down the VNC server and exit the ubuntu environment , just enter ‘exit’ at this terminal – and WAIT for all shutdown routines to finish!

        Bash-4.1#

      • Olá Marcos,
        O seu problema é a montagem da image Ubuntu, que está com sérios problemas. Dê um reboot, cheque se os arquivos são os citados abaixo.
        Carregando a imagem “ubuntu.img” (Ubuntu 10.10 do arquivo “UbuntuV5-image.zip”) com script “ubuntu.sh” (do arquivo “ubuntuV6-1-scrip.zip”), ambos dentro do diretório “/sdcard/ubuntu/”, tenho o seguinte resultado :

        =======================
        app_83@android:/ $ export PATH=/data/local/bin:$PATH
        app_83@android:/ $ cd /sdcard/ubuntu
        app_83@android:/sdcard/ubuntu $ su
        app_83@android:/mnt/sdcard/ubuntu # sh /data/data/com.zpwebsites.linuxonandroid/files/bootscript.sh /sdcard/ubuntu/ubuntu.img
        Checking loop device… MISSING
        Creating loop device… OK
        No user defined mount points
        net.ipv4.ip_forward = 1
        Now enter the screen size you want in pixels (e.g. 800×480), followed by [ENTER]:
        1280×752
        Please select which Desktop environment you want to use, type the number to select it then press [ENTER]
        1 – LXDE
        2 – Gnome
        Make your Selection:
        1

        New ‘X’ desktop is localhost:0

        Starting applications specified in /root/.vnc/xstartup
        Log file is /root/.vnc/localhost:0.log

        * Starting OpenBSD Secure Shell server sshd [ OK ]

        If you see the message ‘New ‘X’ Desktop is localhost:0′ then you are ready to VNC into your ubuntu OS..

        If VNC’ing from a different machine on the same network as the android device use the 1st address below:
        /root/init.sh: line 63: ifconfig: command not found

        If using androidVNC, change the ‘Color Format’ setting to 24-bit colour, and once you’ve VNC’d in, change the ‘input mode’ to touchpad (in settings)

        To shut down the VNC server and exit the ubuntu environment, just enter ‘exit’ at this terminal – and WAIT for all shutdown routines to finish!

        root@localhost:/#
        =======================

      • Marcos said

        Amigo já tentei de tudo mas não deu certo, será que há outro método?

  6. rodrigo said

    Roberto, muito obrigado pela sua boa vontade de divulgar esse tutorial. Certamente vai ajudar muitos.
    Você acha que esse método funciona com TF300t? Abraço

  7. yuri said

    Boa noite Roberto!
    Gostaria de saber se é possível imprimir com o linux no tf101.
    Como sou absolutamente leigo, se puder me explicar o passo-a-passo, fico grato. Tenho uma lexmark pro209 e o linux só seria útil se conseguir imprimir o que faço no editor de texto, substituindo meu note, que é muito pesado para ficar levando ao escritório.
    Abraços.

    • Olá yuri,
      Ainda não tenho essa experiência, nunca testei impressão de dentro do Linux chroot no Asus TF101.
      Pois quase não imprimo via rede, quer seja em casa ou no trabalho.
      Tente configurar a impressão no Linux no TF101 como se fosse um PC normal com Linux, via rede, evitando interfaces USB, etc.
      Abraços e boa sorte, Roberto

  8. Pedro said

    Caro roberto tenho um tf101 , e instalei todos o programas acima, e acontece e quando seleciono Ubuntu em iniciar, aparece a mensagem:
    “Aviso!A imagem definida neste perfil não existe!Por favor, use o botão do menu e altere o nome da imagem.”
    Estou seguindo todas as suas indicações, não sei o que está acontecendo.
    Se puder me dar umas dicas do que fazer , ficarei grato!
    Pedro R. Filho

    • Tem certeza que existe a imagem renomeada para “/sdcard/ubuntu/ubuntu.img” no seu tablet ?

      • Pedro said

        Roberto; “/sdcard” em meu tablet é uma pasta comum com arquivos que minha esposa salvou da internet, ela deve ter desconfigurado o sistema de arquivos, o que acontece é que o arquivo aparece em “Removable/MicroSD/ubuntu/ubuntu.imag” tentar mudar isso apagando a pasta “/Removable/” mas tive “ação não permitida”, devo “reinstalar” o android para reparar isso? pois quero muito colocar ubuntu nele. A propósito meu tablet ja estava roteado, roteei ele segundo o blog. ccpv

      • No meu Asus TF101, usando o “Gerenciador de Arquivos” padrão, ele já abre em “Armazenamento interno”, que é o “/sdcard/”, onde tem vários diretórios, alguns de configurações de softwares, DCIM (fotos), Documents, Download, Movies, Video, etc. Então em “Armazenamento interno” crie um diretório “ubuntu” e coloque os 2 arquivos, “ubuntu.img” e “ubuntu.sh”.

      • Pedro said

        Fiz como o Srº(ou vc, se me permitir) me indicou e funcionou!!!!!!!
        Mas quando vc disse “imput mode” no VNC(passo 6) , eu não entendi como escolher a opção “Mouse Pointer Control Mode”, estou muito enferrujado, vou dar mais uma estudada.
        Obrigado!!!!!!
        Pedro Ribeiro filho

      • Sim, podemos usar “você”, com certeza.
        Ótimo que tenha conseguido fazer funcionar o Linux chroot no seu Asus TF101.
        Após abrir a tela gráfica do Ubuntu no AndroidVNC, escolha a opção “Input Mode”. Aí ela mostra uma janela de diálogo com 7 opções. Escolha aquelas sugeridas pela matéria acima ou experimente-as.

  9. Pedro said

    Roberto, estou querendo usar algumas ferramentas no “LXDE” como os programinhas de matemática e “GeoGebra” e “Winplot”, mas sou “desprovido” de conhecimentos para “instalação” destes, poderia me indicar um material básico para iniciantes ???
    Curiosidade: Me formei em Matemática no CEUNES-UFES(São Mateus).
    Saudades da UFES.
    Abraço;
    Pedro

    • A instalação de softwares no Linux (via chroot) no Asus Transformer é que nem no Linux para PC.
      Uma forma fácil é usar o Synaptics (gerenciador de instalação de softwares).
      Outra via X Terminal, usando “sudo apt-get install “.
      Então procure se existem os softwares que você quer no Linux, se tanto, como instalá-los (alguns têm instalação mais manual).

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: