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.
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.
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/
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
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
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




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……
[...] 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.