sábado, 10 de abril de 2010

Skype em AMD64

Já escrevi sobre como instalar programas 32 bits em Linux 64 bits. Só que nem tudo são flores: tentei fazer o mesmo com o Skype e quem disse que funciona?!

A solução parece simples: criar um chroot completo 32 bits. E é bem simples mesmo, só é preciso ter cuidado com algumas coisas.

Primeiro, criar um diretório e usar o cdebootstrap pra baixar todos os pacotes básicos nele (se não estiver instalado, apt-get nele!)
mkdir /opt/i386-chroot
cdebootstrap --arch i386 sid /opt/i386-chroot http://ftp.br.debian.org/debian/

O "i386" é a arquitetura. O "br" eu coloquei para usar os servidores nacionais, que devem ser mais rápidos por estarem mais próximos.

Depois, o "pulo do gato": colocar os diretórios de sistema do linux e o seu home nos 2 lugares ao mesmo tempo. Para isso, só é necessário acrescentar no arquivo /etc/fstab:
#i386 chroot
/dev        /opt/i386-chroot/dev    none    bind    0    0
/tmp        /opt/i386-chroot/tmp    none    bind    0    0
/home        /opt/i386-chroot/home    none    bind    0    0
/proc        /opt/i386-chroot/proc    none    bind    0    0
/sys        /opt/i386-chroot/sys    none    bind    0    0
E executar o comando para montar tudo:
mount -a
Com essas confs, quando o micro for reiniciado, tudo já vai estar automaticamente nos lugares certos. Todos eles são importantes, principalmente o "/proc" e o "/sys" para funcionar a webcam e o áudio... O "/tmp" é necessário para a interface gráfica... ;)

ATENÇÃO: quando vc faz isso, seus arquivos estarão nos 2 lugares. Se vc apagar o diretório i386-chroot, todos os arquivos do "/home" também serão excuídos.

Alguns sites colocam outras configurações para o "/proc" ou deixam o "/sys" de fora. Fazendo de outras formas eu não consegui usar o som e a webcam. Fica a dica, então.

Feito isso, é só executar o comando chroot para usar o novo diretório como se fosse um novo linux
chroot /opt/i386-chroot
Adicionar a linha do repositório do Skype (lembre-se que depois de executar o chroot você estará num ambiente completamente novo) :
## Skype
deb http://download.skype.com/linux/repos/debian/ stable non-free
 E instalar usando o apt-get:
apt-get install skype
Para rodar ele sem precisar ser root (vc deve ter percebido que o comand "chroot" só funciona como super usuário), utiliza-se o schroot (de novo, se não estiver, apt-get nele!).

Depois de instalar, é preciso configurá-lo. Adicione no fim do arquivo /etc/schroot/schroot.conf :
[i386]
description=Debian i386 (sid/unstable)
directory=/opt/i386-chroot
priority=3
groups=rodolfo,root
root-groups=root
personality=linux32
Em negrito está o nome do grupo dos usuários que podem usar o schroot. Use o seu (eu usei o meu... hehe). Outras opções e explicação para elas vc encontra no seu próprio linux:
man schroot.conf
Para rodar:

schroot -p -c i386 -- skype
"i386" é o nome entre [ ] no arquivo de configuração.
"skype" é o comando a ser executado em 32 bits.

Vc pode criar um script em shell bem criativo para automatizar essa tarefa (e ainda não precisar lembrar de tudo isso cada vez que instalar alguma coisa). Eu coloquei o meu em /usr/local/bin/i386_chroot.sh. Com permissão de execução (chmod +x i386_chroot.sh), vc pode chamá-lo de qualquer lugar.

O conteúdo:
#!/bin/bash
exec /usr/bin/schroot -p -c i386 -- "`/usr/bin/basename $0`" "$@"
 Pra funcionar, ele vai chamar o nome do arquivo que vc colocar. Então, ainda no /usr/local/bin, faça:
ln -s i386_chroot.sh skype
 Assim, quando vc chamar "skype" na linha de comando, ele vai entrar no chroot e rodar. Para outros programas, é só instalar no chroot e criar o link (não precisa alterar o script, só criar o link simbólico através do ln ali de cima).

Ufa! Está pronto. Só que a webcam não funcionou no skype. O erro é o seguinte:
 X Error, request 132, minor 18, error code 8 BadMatch (invalid parameter attributes)
A solução é simples. Adicione, no script i386_chroot.sh, antes da linha do "exec":

# skype: http://akdwivedi.wordpress.com/2009/05/09/skype-on-64bit-fedora-10/
export XLIB_SKIP_ARGB_VISUALS=1
Deixei o link no comentário, para futuras referências.

É isso. Nem todas as aplicações estão prontas pra usar 64 bits, mas nós usamos mesmo assim (e aproveitamos melhor os 4GB de memória).

Fontes:
http://blog.diovani.com/2008/03/11/usando-um-chroot-para-rodar-aplicacoes-32bit-em-uma-instalacao-amd64/
http://akdwivedi.wordpress.com/2009/05/09/skype-on-64bit-fedora-10/

sábado, 3 de abril de 2010

mplayer e legenda com erro de codificação

Assistindo umas séries no mplayer, algumas legendas perdem os caracteres acentuados por causa da codificação. A solução, para os "brasileiros" , é até bem simples. É só chamar o mplayer com identificação de idioma:

mplayer -slang pt-BR #arquivo#
Acho que não é o ideal, e ainda não encontrei solução na interface gráfica, se alguém tiver a dica, agradeceria... :)

Fonte: http://lists.mplayerhq.hu/pipermail/mplayer-dvb/2004-January/001405.html

Novo hardware encontrado...

O ano finalmente começou e eu entrei num período de "atualização de hardware". Por motivos de força maior, troquei de celular (um Nokia 5130) e de notebook (um Vostro V13). Finalmente eles chegaram...

Uma coisa divertida é que ambos possuem bluetooth. Assim, dá pra fazer algumas brincadeiras. Por enquanto, só estou usando o DVD pra tocar as músicas do celular e do note... (isso me lembra o "because we can" do The Big Bang Theory).

Pra fazer o mplayer acessar o dispositivo de áudio, é preciso instalar o blueman e rodá-lo (com usuário normal, não root)
sudo apt-get install blueman
blueman-manager
O software é bem intuitivo. Clicando na lupa, ele vai procurar os dispositivos. Depois, ele vai fornecer o endereço MAC. Pela interface, faça a sincronização (no meu DVD - da Samsung -, mesmo que ele não coloque a senha de acesso, foi só usar o clássico "0000").

Para usar o áudio, crie o arquivo ~/.asoundrc com o conteúdo:

pcm.bluetooth {
   type bluetooth
   device 00:16:6C:00:00:00
}
Observe que em "device" vai o endereço MAC do seu dispositivo.

Assim, é só chamar o mplayer apontando a saída de áudio para o bluetooth:
mplayer -ao alsa:device=bluetooth -shuffle *.mp3
Logo testo com outros players, mas acho que não vai ser mto diferente... :)

Fonte: http://wiki.bluez.org/wiki/HOWTO/AudioDevices