gnome – DevHouse Internet Software Development House http://localhost:8080 Desenvolvimento de Sistemas para Internet e Mobile Tue, 23 Jun 2026 08:58:43 +0000 pt-BR hourly 1 https://wordpress.org/?v=4.8.14 Instalação do Debian Linux no Galaxy Tab 10.1 http://localhost:8080/instalacao-do-debian-linux-no-galaxy-tab-10-1/ http://localhost:8080/instalacao-do-debian-linux-no-galaxy-tab-10-1/#comments Mon, 26 Nov 2012 03:26:13 +0000 http://www.devhouse.com.br/?p=435 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 LXDE Desktop

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

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/


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
]]>
http://localhost:8080/instalacao-do-debian-linux-no-galaxy-tab-10-1/feed/ 28
Arquivos desktop: colocando seu aplicativo nos menus do GNOME http://localhost:8080/arquivos-desktop-colocando-seu-aplicativo-nos-menus-do-gnome/ http://localhost:8080/arquivos-desktop-colocando-seu-aplicativo-nos-menus-do-gnome/#respond Fri, 15 Jun 2012 21:03:09 +0000 http://www.devhouse.com.br/?p=341 O Linux Mint Debian Edition vem por padrão com duas interfaces gráficas o Mate, que é um fork do Gnome 2, e o Cinnamon que é um fork do Gnome 3 que o modifica para ficar mais parecido com a versão 2 do Gnome. Portanto, não importa se você usa o Mate ou o Cinnamon você está usando Gnome.

Caso você instale um programa e o mesmo não apareça nos menus do Gnome você pode criar um arquivo .desktop fazendo com que o sistema o reconheça automaticamente.

A forma mais simples de criar um arquivo desktop é copiando de outro arquivo e alterando o que interessa mas se você quiser conhecer mais algumas informações sobre o arquivo e parâmetros possíveis eu recomendo estes links:

http://developer.gnome.org/integration-guide/stable/desktop-files.html.pt_BR

http://standards.freedesktop.org/menu-spec/latest/apa.html

http://www.nautilus-actions.org/?q=node/377

Para essa demonstração vou criar um arquivo .desktop para o Google Chrome. Quero que o Chrome entre no menu Internet igual ao Firefox e por isso vou usá-lo como base.

$ sudo cp /usr/share/applications/firefox.desktop /usr/share/applications/google-chrome.desktop
$ sudo pluma /usr/share/applications/google-chrome.desktop

O arquivo original estava assim:

[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Name[ar]=متصفح الوِب فَيَرفُكْس
Name[ca]=Navegador web Firefox
Name[cs]=Firefox Webový prohlížeč
Name[es]=Navegador web Firefox
Name[et]=Firefoxi veebibrauser
Name[fa]=مرورگر اینترنتی Firefox
Name[fi]=Firefox-selain
Name[fr]=Navigateur Web Firefox
Name[hu]=Firefox webböngésző
Name[it]=Firefox Browser Web
Name[ja]=Firefox ウェブ・ブラウザ
Name[ko]=Firefox 웹 브라우저
Name[nb]=Firefox Nettleser
Name[nl]=Firefox webbrowser
Name[nn]=Firefox Nettlesar
Name[no]=Firefox Nettleser
Name=Przeglądarka WWW Firefox
Name[pt]=Firefox Navegador Web
Name[pt_BR]=Navegador Web Firefox
Name[sk]=Firefox - internetový prehliadač
Name[sv]=Webbläsaren Firefox
Comment=Browse the World Wide Web
Comment[ar]=تصفح الشبكة العنكبوتية العالمية
Comment[ca]=Navegueu per el web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[de]=Im Internet surfen
Comment[es]=Navegue por la web
Comment[et]=Lehitse veebi
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Navigue sur Internet
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=ウェブを閲覧します
Comment[ko]=웹을 돌아 다닙니다
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment=Przeglądanie stron WWW 
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[sk]=Prehliadanie internetu
Comment[sv]=Surfa på webben
GenericName=Web Browser
GenericName[ar]=متصفح وب
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeč
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=ウェブ・ブラウザ
GenericName[ko]=웹 브라우저
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[sk]=Internetový prehliadač
GenericName[sv]=Webbläsare
Exec=/opt/firefox/firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/firefox/icons/mozicon128.png
Categories=Application;Internet;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox
StartupNotify=true

Após a edição ele ficou assim:

[Desktop Entry]
Version=1.0
Name=Google Chrome
Name[pt_BR]=Navegador Web Google Chrome
Comment=Browse the World Wide Web
Comment[pt_BR]=Navegue na Internet
GenericName=Web Browser
GenericName[pt_BR]=Navegador Web
Exec=/opt/google/chrome %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/google/chrome/product_logo_256.png
Categories=Application;Internet;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Chrome
StartupNotify=true

As alterações mais importantes são:

Name => Nome do Aplicativo
Exec => Path para o executável (o %u é específico para o browser abrir uma url passada como parâmetro).
Icon => Path para o ícone (pode ser jpg, png, svg ou até o próprio executável do programa).
Categories = > Menu onde o atalho para o programa vai aparecer.

Você pode sempre usar outros arquivos .desktop como base para a criação do seu.

Veja também como colocar seu programa no path neste artigo.

Espero ter ajudado!

]]>
http://localhost:8080/arquivos-desktop-colocando-seu-aplicativo-nos-menus-do-gnome/feed/ 0