Desde que comprei o Galaxy Tab lí que era possível rodar linux no android. Logo ví que isso poderia ser útil: ter um sistema linux completo na ponta dos dedos. Melhor ainda: até comprei o keyboard dock original samsung e um mouse bluetooth para deixar a brincadeira ainda melhor.
Debian Linux Squeeze rodando no Galaxy Tab 10.1 com Android ICS.
Existem dois aplicativos na Play Store que fazem este “serviço” para você.
O Linux Installer Standard foi o primeiro que fiquei sabendo da existência. Ele permite que você instale as distribuições Debian ou Ubuntu e ainda pode selecionar a versão. Tentei fazer a instalação a partir dele pois é o que mais tem recursos para você personalizar seu linux. Não tive sucesso. O processo de debootstrap não concluía. Tentei todas as alternativas possíveis e artimanhas, gambiarras e nada. Só perdi tempo. Talvez seja diferente para você.
Uma alternativa era o Complete Linux Installer. Este é moleza de usar e funcionou bem para mim. Ele permite a instalação das distros Debian, Ubuntu, Arch, Backtrack e Fedora. O problema dele é que você não tem muitas escolhas de personalização da imagem a ser criada, até porque ela já está pronta e ele só faz o download para o seu dispositivo android. Mas o problema principal foi que eu desejava instalar o Debian Wheezy mas o app só possui o Debian 4 com xfce. Não gostei.
Pelos motivos que descrevi acima decidi criar a minha própria imagem de disco do tamanho que eu queria e com o Linux configurado como eu desejava. Se você quiser pode fazer o download dela no link abaixo. Ela foi testada no Galaxy Tab 10.1 mas deve funcionar em qualquer android com processador arm.
http://www.4shared.com/archive/iDICVTs_/squeeze-armel-android-chrootim.html
Fiz um vídeo demonstrando o linux no galaxy tab:
Requerimentos:
- Uma maquina com Debian ou Ubuntu (usei meu Linux Mint Debian Edition).
- Galaxy Tab 10.1 rootado com BusyBox instalado.
- Muita paciência.
Criando a Imagem:
Na maquina com o Linux você precisará instalar o debootstrap.
sudo apt-get update
sudo apt-get install debootstrap
Crie uma imagem em branco, depois formate e monte ela.
dd if=/dev/zero of=squeeze.img bs=1M count=2048
sudo mkfs.ext4 -F squeeze.img
sudo mkdir /mnt/squeeze/
sudo busybox mount -t ext4 -o loop squeeze.img /mnt/squeeze/
Nota: O arquivo de imagem acima é para 2GB. Mude o count para o tamanho que desejar (a instalação do lxde ocupa mais de 800 MB)
Rode o debootstrap e instale o sistema na imagem.
sudo debootstrap --verbose --arch armhf --foreign squeeze /mnt/squeeze/ http://ftp.debian.org/debian
Desmonte a imagem
sudo umount /mnt/squeeze
Instalação da Imagem no Android
Crie uma pasta no Android. Eu coloquei em /sdcard/Debian. Copie a imagem para a pasta.
A instalação resume-se em:
- Criar um ponto de montagem e montar a imagem.
- Chroot para a imagem do Debian.
- Definição de variáveis de ambiente.
- Rodar a segunda parte do debootstrap
Sugiro a instalação de um emulador de terminal para o android. Eu uso o Better Terminal Emulator. Você pode usar o adb shell também.
Digite os seguintes comandos no terminal. O código está comentado para facilitar a compreensão.
# Torne-se root.
su
# Crie um ponto de montagem e monte a imagem nele.
mkdir /data/local/debian
busybox mount -o loop,noatime -t ext4 /sdcard/Debian/squeeze.img /data/local/debian
# Faça chroot para o Debian
chroot /data/local/debian/ /bin/sh
# Defina algumas variáveis de ambiente
export PATH=$bin:/usr/bin:/usr/sbin:/bin:$PATH
export TERM=linux
export HOME=/root
export USER=root
# Defina o prompt do shell
export PS1='$USER@$HOSTNAME:${PWD-?} # '
# Termine o debootstrap
/debootstrap/debootstrap --second-stage
# Inicie um shell do bash
/bin/bash
Não saia do shell antes de mover para a próxima sessão.
Primeiro Boot
Tecnicamente o sistema está rodando mas ainda precisamos fazer uma última coisa:
# Adicione os repositórios para instalação de pacotes.
echo "deb http://ftp.debian.org/debian/ squeeze main contrib non-free" >> /etc/apt/sources.list
echo "deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free" >> /etc/apt/sources.list
# Faça o primeiro update
apt-get update
Retorne para o Android executando o seguinte comando:
exit
O sistema está pronto para ser usado então precisamos de um script para facilitar a inicialização do Linux. Copie esse script para o diretório onde você colocou a imagem e chame ele de linux.
#!/bin/sh
if [ $EUID -ne 0 ]
then
echo "Tornando-se root!"
su -c linux
exit 1
fi
mnt=/data/local/debian
# Soh eh preciso caso use o nautilus. Se usar outro
# gerenciador de arquivos nao eh necessario.
echo "Remontando a raiz para escrita para escrita..."
busybox mount -o rw,remount /
echo "Montando o Debian Squeeze..."
busybox mount -t ext4 -o loop,noatime squeeze.img $mnt/
echo "Definindo variáveis de ambiente..."
export PATH=$bin:/usr/bin:/usr/sbin:/bin:/sbin:$PATH
export TERM=linux
export HOME=/root
export USER=root
# export PS1='$USER@$HOSTNAME:${PWD-?} # '
export PS1='\[\e[1;31m\][\u@\h \W] \$\[\e[0m\] '
echo "Montando devpts/proc/sysfs..."
busybox mount -t devpts devpts $mnt/dev/pts
busybox mount -t proc proc $mnt/proc
busybox mount -t sysfs sysfs $mnt/sys
# Voce pode colocar aqui o comando para montar o cartao de
# memoria externo tambem. No meu caso o galaxy tab nao tem.
echo "Montando o cartaão de moemória..."
if [ ! -d $mnt/mnt/sdcard ]; then
mkdir $mnt/mnt/sdcard
fi
busybox mount --bind /mnt/sdcard $mnt/mnt/sdcard
echo "Entrando no Debian Squeeze..."
echo " "
chroot $mnt/ /bin/sh /root/.init.sh
# busybox fuser -m $mnt -k
echo "Desmontando devpts/proc/sysfs..."
busybox umount $mnt/mnt/sdcard
busybox umount $mnt/dev/pts
busybox umount $mnt/proc
busybox umount $mnt/sys
echo "Desmontando Debian Squeeze..."
busybox umount $mnt/
Agora quando quiser rodar o linux abra o emulador de terminal do android e digite os comandos:
cd /sdcard/Debian
su
sh linux
LXDE ou GNOME e VNC Server
O LXDE tem desempenho muito superior ao Gnome em máquinas mais lentas mas é possível instalar os dois como eu fiz.
LXDE:
apt-get install lxde
Gnome:
# Não instale o pacote gnome pois é gigante e cheio de dependências.
# Instale os seguintes pacotes separados:
apt-get install gnome-session gnome-themes gnome-terminal xserver-xorg-core gdm
Durante a instalação aparecerão duas janelas de configuração. Deixe as configurações padrão e continue.
Instale o VNC Server.
apt-get install tightvncserver
O tightvncserver é o servidor vnc padrão. Para melhor desempenho baixe o código fonte do turbovnc e da libjpegturbo e compile.
TurboVNC: http://www.virtualgl.org/Downloads/TurboVNC
Libjpeg-turbo: http://libjpeg-turbo.virtualgl.org/
Para iniciar e parar o vncserver usando “service start” crie o script abaixo em /etc/init.d/vncserver e execute chmod 755 nele.
export HOME="/root"
export USER="/root"
STARTCMD="vncserver -geometry 1280x752"
STOPCMD="vncserver -kill :1"
case $1 in
start)
if [ -e /tmp/.X1-lock ] ; then
echo "VNCServer already running"
else
$STARTCMD
fi
;;
stop)
$STOPCMD
;;
restart)
$STOPCMD
$STARTCMD
;;
*)
echo "$0 start|stop|restart"
exit 1
;;
esac
exit 0
Execute o comando abaixo para iniciar o vncserver automaticamente.
echo "service vncserver start" >> /root/.bashrc
A primeira vez que você rodar ele vai pedir para entrar com a senha do vnc.
Configure o vncviewer do android para conectar com localhost na porta 5901.
Pronto! Temos o Debian 6 rodando em paralelo com o Android.
Algumas dicas:
Caso o script exit não consiga desmontar a imagem do linux experimente executar o seguinte comando:
killall menu-cached
Para aumentar o tamanho da imagem depois de criada (substitua 256 para a quantidade de megabytes que deseja adicionar):
dd if=/dev/zero bs=1M count=256 >> data.img
e2fsck -f data.img
resize2fs data.img
e2fsck -f data.img
Para mudar para o gnome:
update-alternatives --config x-session-manager

Comentários 28
Sem dúvidas uma ótima iniciativa.
Será que é completamente possível também fazer uma instalação dessas (com as devidas modificações) num Acer Iconia Tab A500?
Tranquilo. Vai funcionar sim. O Acer Iconia Tab A500 é muito parecido com o Galaxy Tab e por isso você não vai precisar mudar nada. Pode baixar a imagem e testar ou fazer a sua própria.
Obrigado. Irei testar e ver o resultado.
Parabéns pelo artigo !
sera que roda em um Galaxy P1010 ?
Roda sim! Você vai precisar mudar a resolução do vncserver. Onde diz: STARTCMD=”vncserver -geometry 1280×752″ mude para a resolução do seu dispositivo.
Valeu, vou testar……
leonardo ,so pra entender essa distro serve em qualquer modelo ?
A distro é o Debian e esse tutorial é para instalar ele em qualquer dispositivo android com processador arm.
Esse tutorial está obsoleto tendo em vista que hoje já existem apps que fazem esse trabalhão todo pra você de forma automática.
Outra coisa é que também já conseguiram portar o servidor X para o android dispensando assim o VNC e deixando a coisa muito séria.
Veja:
https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy
https://play.google.com/store/apps/details?id=x.org.server&hl=en
https://play.google.com/store/apps/details?id=au.com.darkside.XServer&hl=en
[…] Squeeze no seu Galaxy Tab, compartilhou a imagem de instalação para os interessados, escreveu um artigo contando como fazer, e ainda publicou um vídeo mostrando como […]
Faltou um descrição de desempenho, no vídeo me pareceu lento… mas achei legal o post.
Realmente é mais lento do que no PC mas funciona. Vale a pena testar. Como eu disse, com processadores quadcore e overclock vai ficar melhor ainda. Um diferencial desta instalação é o turbovnc e a libjpeg-turbo que melhoram muito o desempenho.
[…] Squeeze no seu Galaxy Tab, compartilhou a imagem de instalação para os interessados, escreveu um artigo contando como fazer, e ainda publicou um vídeo mostrando como […]
Sou leigo no assunto. Instala o Linux dentro do Android? (Parece pela foto) ou seja… não é preciso formatar/excluir/arriscar inutilizar o aparelho? Estou inclinado a fazer isso num galaxy tab p6800. Desde que seja “seguro como um simples aplicativo”. Obrigado.
Uma alternativa era o Complete Linux Installer . Este é moleza de usar e funcionou bem para mim. Ele permite a instalação das distros Debian, Ubuntu, Arch, Backtrack e Fedora. O problema dele é que você não tem muitas escolhas de personalização da imagem a ser criada, até porque ela já está pronta e ele só faz o download para o seu dispositivo android. Mas o problema principal foi que eu desejava instalar o Debian Wheezy mas o app só possui o Debian 4 com xfce. Não gostei.
Exatamente. Eu testei mas eu queria o debian com lxde mais atual e por isso preferi fazer a minha imagem personalizada. Na época o wheezy era testing e não funcionava varias coisas. Muitos erros de segmentation falt. Por isso eu testei com o squeeze e ficou ótimo.
Se eu instalar no meu galaxy s2 gt-9100, tem como desinstalar caso eu não goste? Se como como faço? ?
Para desinstalar basta apagar a pasta e os arquivos adicionados.
Olá amigo,
Você acredita que essa instalação também pode ser feita em um Galaxy S III ?
Abraços e Parabéns
Sim. Vou instalar ele agora em um Motorola Razr. Apenas mude a resolução do VNC Server para adaptar-se a sua tela.
Enviei um e-mail porque gostaria de colocar ubuntu ou outra distro deb no meu galaxy tab 2 7 (1310)… poderia me ajudar?
OK. Respondido.
Aguardarei seu tutorial…
Ola Leonardo,
Comprei recentemente um tablet chines (Genesis 7305), com a intenção de substituir o android por linux e rodar alguns programas voltados de áudio do linux, como o Linuxsampler e o Qsynth. Basicamente, eu queria transformar meu tablet em um móduo de timbres midi, para operar com um controlador usb, o que eu já faço com um computador muuuuito antigo.
Eu consegui instalar tanto o debian como o ubuntu, usando o complete linux installer, mas aparentemente, nenhuma dessas soluções que instalam o linux sobre o android tem suporte ao som.
Vc sabe como resolver isso?
Conhece algum tutorial com o qual eu possa eliminar o android e instalar apenas o linux, para que eu possa ter acesso ao hardware de audio, eliminando a camada android?
Desde já obrigado, este tutorial foi muito util para mim!
Eu já havia pesquisado sobre isso e na época não tinha solução pronta. Agora uma breve pesquisa já revelou alguns artigos sobre o assunto (em inglês). Dá uma olhada nisso:
http://forum.xda-developers.com/showthread.php?t=2420586
[
](https://www.youtube.com/watch?v=4wAMu0H0-n0)
Fala amigo.. Sou o Luckzzz do youtube. (foto de cachorro)..
Vc disse pra eu comentar e marcar pra receber atualizações que vc faria um vídeo novo sobre instalar ubuntu no galaxy note 10.1 2014 num novo método.. vlw
Legal, só estou esperando chegar meu smartphone novo. O tutorial vai ser nele mas vai servir para qualquer android.
Qual a senha para acessar pelo vnc atraves dessa imagem que voce disponibilizou?
Faz tempo que eu fiz isso. Nem lembro mais. Tenta 123456. Se não for isso tente alterar a senha do vnc conectando via ssh no linux e rodando o comando vncpasswd.