samsung – 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
Corrigindo o controle de brilho no notebook com Linux http://localhost:8080/corrigindo-o-controle-de-brilho-no-notebook-com-linux/ http://localhost:8080/corrigindo-o-controle-de-brilho-no-notebook-com-linux/#comments Sun, 03 Jun 2012 04:51:44 +0000 http://www.devhouse.com.br/?p=212 Possuo o ultrabook Samsung X420. Um notebook feito para ser leve, portátil e com bateria durável. E ele realmente é. No geral é um notebook bom considerando o seu processador Core 2 Duo de 1,3 GHz de baixo consumo de energia.

As teclas de atalho padrão neste notebook para o funcionamento do controle de brilho são fn (function) + seta para cima ou seta para baixo. Logo após a instalação do Linux Mint 12 Debian Edition eu tentei ajustar o brilho e nada. O problema é igual para todas as distribuições que testei: Ubuntu 11.10, Ubuntu 12.04 e Fedora 16. Ao teclar fn + seta para cima aparecia o ícone de brilho na tela mas nada acontecia e ao teclar fn + seta para baixo o brilho era ajustado ao máximo e o ícone mostrava que estava um pouco abaixo do máximo, o que era estranho.

Pesquisando na net encontrei a solução do problema e parece ser comum entre notebooks com chipset Intel GS45 + ICH9MS, por isso se o seu notebook posui este chipset ou se está tendo o mesmo problema tente a correção a seguir:

A correção consiste em adicionar um parâmetro de configuração do Kernel do Linux no boot. Para testá-lo tecle “e” na tela de boot do linux para editar os comandos de boot e insira acpi_osi= no final da linha “linux /boot/…”. O do meu computador ficou assim (linha 9):

setparams 'LinuxMint GNU/Linux, with Linux 3.3.0-6.dmz.1-liquorix-amd64

insmod gzio
insmod part_msdos
insmod ext2
set root='(/dev/sda, msdos1) '
search --no-floppy --fs-uuid --set=root 321e9577-ad48-4370-9276-06399e26b6da
echo 'Loading Linux 3.3.0-6.dmz.1-liquorix-amd64 ... '
linux /boot/vmlinuz-3.3.0-6.dmz.1-liquoriz-amd64 root=UUID=321e9577-ad48-4370-9276-06399e26b6da ro quiet acpi_osi=
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.3.0-6.dmz.1-liquorix-amd64

Segundo informações, o kernel do Linux por padrão se idenditifica como sendo qualquer versão do Windows para a BIOS e o problema é que algumas BIOS tem desvios de código para resolver bugs do Windows Vista e por isso acaba impactando no Linux.

Outra alternativa é usar o parâmetro abaixo caso a sua BIOS tiver suporte ao Linux:

acpi_osi=”Linux”

Ou usar o seguinte parâmetro para fazer com que o Linux se identifique como Windows Vista e executar comandos de compatibilidade com o mesmo:

acpi_osi=”Windows 2006″

Para usar o parâmetro de forma permanente

Conforme dito acima, para testar o parâmetro você pode teclar “e” no menu de boot do Grub2 e inserir o parâmetro, mas isso só vai funcionar até o próximo boot. Para deixar o parâmetro de forma permanente você precisa editar um arquivo de configuração do grub conforme asseguir:

$ sudo nano /etc/default/grub

O editor nano vai abrir o arquivo e seu conteúdo será parecido com esse:

# If you change this file, run 'update-grub' afterwards to update
 # /boot/grub/grub.cfg.
 # For full documentation of the options in this file, see:
 #   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Adicione o parâmetro na linha GRUB_CMDLINE_LINUX_DEFAULT conforme abaixo:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi="

Se você precisar usar parâmetros que contém aspas (“) você precisa fazer o escape das aspas conforme abaixo:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=\"Linux\""

Salve o arquivo e entre com o comando a seguir para atualizar as configurações do grub:

$ sudo update-grub

That’s all folks!

]]>
http://localhost:8080/corrigindo-o-controle-de-brilho-no-notebook-com-linux/feed/ 28