Páginas

terça-feira, 23 de setembro de 2008

Cadê minhas máquinas virtuais? Debian Lenny!

Esses dias resolvi começar a usar o Debian Lenny, até semana passada só usava o Etch. O Lenny como todos sabem (ou a maioria) é testing, ou seja, ele tem alguns bugs ainda, está em desenvolvimento.
Tive alguns pequenos problemas com meus aplicativos antigos que eu era bem acostumado a usar, porém depois de umas horinhas tudo passou a funcionar perfeitamente, mas ainda tinha um problema! Cadê minhas máquinas virtuais? O Vmware Server 1.0.7 não queria funcionar de forma alguma no Lenny, ai me senti tentado a resolver o problema (como vocês já devem ter se sentido antes).

Bom o primeiro imprevisto foi o seguinte, o gcc que uso no momento é o gcc-4.3, provido pelo pacote de mesmo nome gcc-4.3 (nos repositórios do aptitude), não gosta do script de configuração do Vmware! O foco deste tutorial é resolver os problemas que o Vmware apresenta no Debian Lenny e não tratar passo a passo da instalação do Vmware, quem procura um tutorial de instalação recomendo que leia este material do Carlos Morimoto...

http://www.guiadohardware.net/tutoriais/vmware-server/

Explicando a encrenca número 1

O Vmware precisa compilar suas coisas no gcc-4.1, que na verdade normalmente já está instalado no Lenny por padrão, porém o que muda o gcc que você está usando é o link simbólico denominado gcc (nossa num me diga que o nome é esse :O ), bom vamos ver na prática....

z10n:~# aptitude install gcc-4.1 build-essential
z10n:~# which gcc
/usr/bin/gcc
z10n:~# ls -la `which gcc`
lrwxrwxrwx 1 root root 16 Set 22 23:37 /usr/bin/gcc -> /usr/bin/gcc-4.3

Veja que o link aponta para o gcc-4.3 e na verdade para compilar o Vmware precisamos do gcc-4.1, bom até ai é fácil vamos resolver o problema...

z10n:~# ln -sf /usr/bin/gcc-4.1 /usr/bin/gcc
z10n:~# ls -la `which gcc`
lrwxrwxrwx 1 root root 16 Set 23 22:01 /usr/bin/gcc -> /usr/bin/gcc-4.1

Observe agora que o link mudou! Agora você usará o gcc-4.1 por padrão! Bom menos um problema o Vmware agora irá compilar, será??

Explicando a encrenca número 2

Bom agora eu consigo compilar mas já saiu um patch para resolver umas encrencas com o script do Vmware! Este patch (e outros mais velhinhos) podem ser encontrados neste link: http://groups.google.com/group/vmkernelnewbies/files?pli=1

Bom o que vamos baixar é esse: vmware-any-any-update117d.tar.gz

Depois de baixar o arquivo vamos descompactá-lo...

z10n:~# tar -xvzf vmware-any-any-update117d.tar.gz -C /usr/local/src/

Neste tutorial eu resolvi descompactá-lo no /usr/local/src, mas na sua casa você poderá descompactá-lo em qualquer lugar de sua preferência que não muda em nada.

Bom agora vamos pegar o pacote do Vmware-server-1.0.7-108231.tar.gz, que pode ser baixado de ...

http://www.vmware.com/download/server/

Eu particularmente prefiro usar o 1.0.7 pois o 2.0 ainda é beta, e não gostei muito dele.

Bom depois de baixar o pacote vamos extraí-lo no mesmo local do outro...

z10n:~# tar -xvzf Vmware-server-1.0.7-108231.tar.gz -C /usr/local/src/

*** Lembrando que estou fazendo todas as operações como usuário root!

Certo agora estão descompactados, vamos fazer o seguinte...

z10n:~# cd /usr/local/src/vmware-server-distrib/
z10n:/usr/local/src/vmware-server-distrib# ./vmware-install.pl

Agora depois de rodar este script iremos parar com a execução do mesmo respondendo “no” a uma pergunta em específico que irei mostrar...

Before running VMware Server for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config.pl". Do you want this
program to invoke the command for you now? [yes]

Nesta pergunta respondam no e dêem enter! O default é yes mas cuidado com os dedos nervosos, vocês não podem teclar enter nesta opção, pois usaremos o script de configuração do patch a partir desta etapa...

z10n:/usr/local/src/vmware-server-distrib# cd ../vmware-any-any-update117d/
z10n:/usr/local/src/vmware-any-any-update117d# ls
runme.pl services.sh update update.c vmblock.tar vmmon.tar vmnet.tar
z10n:/usr/local/src/vmware-any-any-update117d# ./runme.pl

Agora iremos rodar um script parecido com o que já havíamos executado antes... responda as perguntas atentamente. Lembre-se o foco deste tutorial não é a instalação do Vmware mas sim a resolução dos problemas que ele tem com o Debian Lenny.

Certo depois de ter respondido as perguntas, agora o pensamento é que o Vmware já está funcionando, maaasssss... não é bem isso o que acontece. Se vocês tentarem rodar o vmware na linha de comando vão ter uma saída deste tipo mais ou menos...

Locking assertion failure. Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb7018767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb70188b1]
#2 /usr/lib/libX11.so.6(_XReply+0x244) [0xb7e8cc14]
#3 /usr/lib/vmware/lib/libXrender.so.1/libXrender.so.1(XRenderQueryFormats+0x109) [0xb7d78969]
#4 /usr/lib/vmware/lib/libXrender.so.1/libXrender.so.1(XRenderFindFormat+0x4c) [0xb7d78f4c]
#5 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7bbe180]
#6 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7bbed2c]
#7 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b8ec14]
#8 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b9b24f]
#9 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b8ec14]
#10 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_pixbuf_render_pixmap_and_mask_for_colormap+0x255)
[0xb7b9ab34]
#11 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a9f298]
#12 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a9f586]
#13 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7aa177e]
#14 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0xd1) [0xb7cb4459]
#15 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7c9c3a1]
#16 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_closure_invoke+0x1b1) [0xb7c9c076]
#17 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7cb36eb]
#18 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit_valist+0x91e) [0xb7cb2d46]
#19 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_signal_emit+0x38) [0xb7cb30b8]
Locking assertion failure. Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb7018767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0xb701881e]
#2 /usr/lib/libX11.so.6 [0xb7e8bdc9]
#3 /usr/lib/libX11.so.6(XAddExtension+0x2c) [0xb7e6e23c]
#4 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2(_XftDisplayInfoGet+0x77) [0xb7d70ed7]
#5 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2 [0xb7d6f8b1]
#6 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2 [0xb7d6fd39]
#7 /usr/lib/vmware/lib/libXft.so.2/libXft.so.2(XftDrawPicture+0x10) [0xb7d6fec0]
#8 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7bbc9b6]
#9 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7bbed75]
#10 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b8ec14]
#11 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0 [0xb7b9b24f]
#12 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_draw_pixbuf+0x270) [0xb7b8ec14]
#13 /usr/lib/vmware/lib/libgdk-x11-2.0.so.0/libgdk-x11-2.0.so.0(gdk_pixbuf_render_pixmap_and_mask_for_colormap+0x255)
[0xb7b9ab34]
#14 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a9f298]
#15 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7a9f586]
#16 /usr/lib/vmware/lib/libgtk-x11-2.0.so.0/libgtk-x11-2.0.so.0 [0xb7aa177e]
#17 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0xd1) [0xb7cb4459]
#18 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0 [0xb7c9c3a1]
#19 /usr/lib/vmware/lib/libgobject-2.0.so.0/libgobject-2.0.so.0(g_closure_invoke+0x1b1) [0xb7c9c076]
vmware: ../../src/xcb_lock.c:77: _XGetXCBBuffer: assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed

Explicando a encrenca número 3

Bom acontece que o pacote libx11-6 do Debian Lenny da um certo problema com o Vmware, o que o impede de abrir sua Interface Gráfica (gui) o que é mal, pois eu particularmente só uso o Vmware pela sua interface!
Depois de muito pesquisar, achei no site oficial dos Bugs do Debian, um post que me ajudou muito:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=486507

É o seguinte, no começo do post original, a turma ficou debatendo que era melhor fazer um downgrade (um “desupgrade”) do pacote libx11-6 o que eu não gostei nada nada, continuei a ler e teve uma pessoa (ST ) que descobriu uma forma menos “violenta” de arrumar o problema, segue a dica:

1. Pegue o arquivo libX11.so.6 mais velho, por exemplo do Debian Etch
2. Crie o diretório libX11.so.6 em: /usr/lib/vmware/lib/
3. Copie todos os arquivos que tiverem o nome parecido com esse libX11.so.6 do Debian Etch
e cole em /usr/lib/vmware/lib/libX11.so.6/
4. Edite o script /usr/lib/vmware/lib/wrapper-gtk24.sh adicionando a seguinte linha que mostro logo abaixo:


...
vm_append_lib 'libfreetype.so.6'
vm_append_lib 'libXft.so.2'
vm_append_lib 'libXrender.so.1'
vm_append_lib 'libX11.so.6' # << linha que vamos adicionar

# FontConfig is actually fairly well behaved but the fonts.conf that we
# force when VMWARE_USE_SHIPPED_GTK=yes generates seemingly harmless
...


5. Salve o script e saia!

Após feito tudo isso é só rodar abrir o Vmware e usar :)!!
Boa diversão!

Não entenderam algo?? Email-me...

2 comentários:

Amilton disse...

Olá Rafael! Bom artigo sobre máquina virtual no debian. Tomei a liberdade de publicar uma parte em meu blog. Com todos os créditos, claro!
Abs,
Amilton.
interamil.net

kikáa disse...

Oi Rafa!
Pra falar a verdade nem li o post inteiro!
Mas tá muito bom o seu blog, prometo que qdo crescer vou saber pelo menos 10 por cento do que vc sabe sobre linux!
Bjo
Grande admiração por vc vio amigo :)