Flyrics 0.1.0
ago 26th, 2009 por Fernando Scherrer
… as melhores coisas são simples.
ago 26th, 2009 por Fernando Scherrer
jan 17th, 2009 por Fernando Scherrer
Este post descreve minha experiência configurando dois monitores (dual monitor) no linux via Twinview utilizando uma nVidia GeForce 6500, à qual primeiramente foram conectados um Samsung SyncMaster 793DF na saída analógica (VGA) e um Samsung SyncMaster T220 na digital (DVI), e em seguida trocado o 793DF por outro T220, ficando dois T220.
Este apenas descreve uma experiência, não devendo ser considerado como passo-a-passo, solução ou recomendação.
Estou postando os detalhes apenas dos itens de hardware que considero pertinentes, ou seja, placa de vídeo e monitores.
Placa de vídeo:
Saída do lspci:
# lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation GeForce 6500 (rev a1)
Utilizado driver proprietário versão 177.82 (NVIDIA-Linux-x86-177.82-pkg1.run), útima versão no momento em que escrevo (12/2008).
Monitores:
Testadas duas combinações, sendo a primeira mantendo o monitor que já estava funcionando (793 DF) na saída analógica (VGA) e adicionando um T220 na digital (DVI), e a segunda trocando o 793 DF por mais um T220 (ficando um T220 na DVI e outro, também T220, na VGA, já que a GeForce 6500 utilizada tem uma DVI e uma VGA [diferente das mais novas, que têm 2 DVIs], além de uma S-Vídeo [TV-Out] que não estou usando atualmente e nem a incluo nos xorg.confs postados aqui).
Segue a primeira experiência, com um Samsung 793 DF, CRT, 17" na VGA e um Samsung T220, LCD, 22" na DVI:
A resolução do 793 (CRT) ficou 1280x1024, e a do T220 1680x1050, ou seja, ficou cortando 26 px da primeira tela (793) na vertical, do topo neste caso.
/etc/X11/xorg.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | # nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 1.0 (buildmeister@builder3) Thu Feb 14 18:21:33 ... Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" RgbPath "/usr/share/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/100dpi" FontPath "/usr/share/fonts/Speedo" FontPath "/usr/share/fonts/cyrillic" FontPath "/usr/local/share/fonts" FontPath "/usr/share/fonts/TTF" EndSection Section "Module" Load "dbe" Load "extmod" Load "type1" Load "freetype" Load "glx" EndSection Section "ServerFlags" Option "Xinerama" "0" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "abnt2" Option "XkbLayout" "br" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "Samsung SyncMaster" HorizSync 30.0 - 71.0 VertRefresh 50.0 - 160.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 6500" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "1" Option "metamodes" "1280x1024 +0+26, 1680x1050 +1280+0; 1280x1024" SubSection "Display" Depth 24 EndSubSection EndSection |
Segue a segunda experiência, com dois Samsung T220, LCD, 22", um na VGA e outro na DVI:
Ambos com resolução de 1680x1050, totalizando uma área de trabalho de 3360x1050. Como as alturas são iguais não ocorreu nenhum corte.
/etc/X11/xorg.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | # nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 1.0 (buildmeister@builder63) Tue Nov 4 14:08:09 ... Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" RgbPath "/usr/share/X11/rgb" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/100dpi" FontPath "/usr/share/fonts/Speedo" FontPath "/usr/share/fonts/cyrillic" FontPath "/usr/local/share/fonts" FontPath "/usr/share/fonts/TTF" EndSection Section "Module" Load "dbe" Load "extmod" Load "type1" Load "freetype" Load "glx" EndSection Section "ServerFlags" Option "Xinerama" "0" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbModel" "abnt2" Option "XkbLayout" "br" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "Samsung SyncMaster" HorizSync 30.0 - 81.0 VertRefresh 56.0 - 75.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 6500" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "1" Option "metamodes" "1680x1050, 1680x1050; 1680x1050; 800x600; 640x480" SubSection "Display" Depth 24 EndSubSection EndSection |
NÃO utilize o conteúdo dos xorg.confs listados acima exatamente como estão, principalmente devido ao HorizSync e ao VertRefresh, que dificilmente serão os mesmos, exceto, claro, se seus monitores forem iguais aos mencionados aqui.
O conteúdo inicial dos xorg.confs foi gerado pelo utilitário nvidia-settings, citado na seção abaixo. Tentei mantê-los o máximo possível inalterados, normalmente altero os nomes dos dispositivos e afins, como Monitor0 para 793df (ou T220), Device0 para GeForce6500, etc.
Mas alterei a seção File, adicionando/removendo/alterando as entradas de FontPath conforme as fontes que tenho instaladas, e a Option "metamodes" da seção Screen por dois motivos:
1680x1050; 800x600; 640x480
é o mesmo que:
1680x1050, NULL; 800x600, NULL; 640x480, NULL
ou seja, foi especificada apenas a resolução para o primeiro monitor. Repare também que as duas últimas não são wide. Sem especificar resoluções únicas, o lbreakout2, por exemplo, ficava em 4:3 no centro da tela, ou seja, em 640x480, 320 px ficavam na direita no monitor da esquerda e os outros 320 px na esquerda do monitor da direita. Confuso? Veja a imagem:
Caso não esteja familiarizado com a String informada como valor à Option "MetaModes", observe que foi usado tanto ; (ponto-e-vírgula) quanto , (vírgula). O ; separa os MetaModes, enquanto que a , separa os modes dentro de um MetaMode:
+----------------------- primeiro MetaMode
| +------ segundo MetaMode
/---------+---------\ /----+---\
1680x1050, 1680x1050; 1680x1050; 800x600; 640x480
\_______/ \_______/
| +------- segundo Mode (monitor direita) do primeiro MetaMode
+------------------ primeiro Mode (monitor esquerda) do primeiro MetaMode
Só como curiosidade, o jogo Neverwinter Nights funcionou normalmente com dual, não que seja muito interessante, mas rodou normal com resolução de 3360x1050.
O nvidia-settings é um utilitário instalado durante a instalação do driver proprietário da nVidia.
Através dele podemos obter algumas informações, como a versão driver instalado, a versão do xorg, informações sobre OpenGL/GLX, temperatura e outras informações do GPU. Além de podermos realizar ajustes de cores (brilho, contraste, gamma) com resultado em tempo real, configurar sombra para o cursor do mouse, antialiasing, e, conforme podemos observar na tela abaixo, configurar o xorg:
Esse utilitário é da placa de vídeo, portanto, não espere que ele configure adequadamente seu teclado abnt2. Sua função é configurar a placa de vídeo e o(s) monitor(es).
Não entrarei em detalhes sobre o uso do mesmo, se tiver alguma dúvida é só clicar no botão Help.
Após realizar uma configuração podemos clicar em Save to X Configuration File, onde podemos escolher mesclar o que foi configurado com a configuração já existente ou não, e, antes de salvar, podemos verificar como ficará o arquivo clicando em Show preview....
Como já mencionei anteriormente, isso não é um tutorial, passo-a-passo ou algo do gênero.
O propósito final é levar esses dois monitores para o trabalho. Programar numa tela com a documentação (especificações) na outra é uma mão-na-roda. Hoje trabalho com dois CRTs de 17", antigos, "piscam" muito. Mas não vou levar os novos até que troquem minha máquina, na qual utilizo duas placas de vídeo com dual via Xinerama, uma intel (i810) e uma riva TNT2 32M.
Apenas como curiosidade, paguei ~R$616,00 por cada T220 (quando o preço normal era ~R$830,00), não paguei frete e ainda ganhei 2 MP4s genéricos. Promoção da Saraiva, nem apenas o monitor (sem MP4 de brinde e frete grátis) tinha no Mercado Livre e semelhantes por esse preço. Hoje (17/01/2009) o mesmo monitor está por ~R$839,00 (com Subwoofer 2.1 Clone de brinde) na própria Saraiva.
Obs.: não tenho relação nenhuma com as marcas e lojas citadas nesse documento.
Críticas, sugestões, elogios, dúvidas, opiniões, correções - incluindo de gramática - e demais comentários são bem-vindos. Para tal favor utilizar o espaço para comentários abaixo.
Seguem as referências utilizadas:
/usr/share/doc/NVIDIA_GLX-1.0/README.txt
ou a versão em HTML:
/usr/share/doc/NVIDIA_GLX-1.0/html/index.html
http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors/Nvidia
As três primeiras imagens (placa de vídeo e os dois monitores 793 DF e T220) foram obtidas através da busca de imagens do google, e aparentam ser imagens de divulgação dos produtos. Caso eu esteja errado e você seja o detentor dos direitos das mesmas, basta comunicar-me que retíro-as do documento imediatamente.
Tem um ambiente parecido? Configurações diferentes? Encontrou algum problema? Quer linkar um post seu sobre dual monitor? Comente! Compartilhe sua experiência.
dez 13th, 2008 por Fernando Scherrer
Já está disponível a versão 12.2 da distribuição Slackware Linux.
A news foi postada no site do projeto dia 10 (de Dezembro de 2008).
No changelog, como de praxe, foi postada uma entrada datada de Tue Dec 9 00:00:23 CST 2008.
O announcement oficial pode ser lido em http://www.slackware.com/announce/12.2.php.
Este release inclui kernel 2.6.27.7, xorg 1.4.2, xfce 4.4.3, KDE 3.5.10, wicd (wired and wireless network manager) no /extra, slackpkg, etc.
O download do release pode ser realizado de duas formas: através de um dos mirrors oficiais, listados em http://www.slackware.com/getslack/, ou via BitTorrent: http://www.slackware.com/getslack/torrents.php.
Há ISOs disponíveis tanto para queimar em DVD quanto em CDs (total de 6 CDs, sendo 3 install [instalação] e 3 source [código fonte dos pacotes]).
Obs.: não são todos os mirrors listados no site da distro que já têm o novo release para download (mas provavelmente todos terão em breve), então estou deixando a lista de alguns (fui tentando na ordem) onde encontrei:
dez 1st, 2008 por Fernando Scherrer
Trata-se de um pequeno shell script que utilizo para reproduzir vídeos com legenda, com o intúito de adicionar uma faixa preta abaixo do vídeo onde a legenda aparecerá, não atrapalhando assim o conteúdo (como é o caso quando fica por cima). Obs.: o vídeo não é cortado, apenas é adicionada uma faixa abaixo.
Posto aqui um pequeno script shell que utilizo para reproduzir vídeos com legenda utilizando o mplayer, que é, na minha opnião, o melhor player multimídia.
Abaixo segue exemplo de como fica um vídeo com legenda. Somente para constar, é um trecho (00:01:00 mais especificamente) do Open Movie "Elephants Dream".
O script pode ser obtido aqui: http://www.fernando.scherrer.nom.br/wp-content/uploads/2008/12/playleg.
Costumo deixá-lo no home do meu usuário, então quando vou reproduzir algum vídeo apenas troco o comando mplayer por ~/playleg. A exemplo da imagem:
~/playleg Elephants_Dream_720-h264-st-aac.mov
Obs.: a legenda no exemplo acima está no mesmo diretório, como o mesmo nome do arquivo de vídeo, exceto pela extensão (Elephants_Dream_720-h264-st-aac.srt).
Lembre-se de dar permissão de execução ao script antes de rodá-lo (um mero chmod u+x playleg).
Parâmetros extras para o mplayer podem ser informados após o nome do arquivo de vídeo. Exemplo:
~/playleg Elephants_Dream_720-h264-st-aac.mov -ss 00:03:30
Estou deixando o código abaixo somente para o caso desejar dar uma olhada sem precisar baixar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #!/bin/bash # -- Criação # Autor: Fernando Scherrer # Email: fernando.scherrer at fernando.scherrer.nom.br # Data: 2008-12-01 # Desc: Pequeno script para reprodução de vídeos com legenda utilizando o # mplayer. Obtém a altura do vídeo e adiciona uma faixa preta na parte # de baixo desse para que a legenda fique sobre e faixa e não sobre # o vídeo. # # -- Alterações # Autor: # Data: # Desc: # # Configurações # # altura da faixa preta adicionada abaixo do vídeo para a legenda ALTURA_FAIXA=64 # fonte utilizada para a legenda FONT_LEGENDA=/usr/share/fonts/TTF/luxisr.ttf # tamanho para a fonte da legenda, como porcentagem do tamanho da tela TAMANHO_LEGENDA=3 # codepage (charset) da legenda CODEPAGE_LEGENDA=latin1 # função para exibir as opções de uso uso(){ echo "Uso:" echo " $0 arquivoVideo [opções para o mplayer]" echo "Exemplos:" echo " $0 linuxHistory.avi" echo " $0 linuxHistory.avi -ss 00:12:30" } # # Script # # arquivo passado para a reprodução ARQUIVO="$1" # se não foi informado ao menos um parâmetro (esperado vídeo), ou foi # passado -h ou --help exibe as instruções de uso e sai if [ -z "$ARQUIVO" -o "$ARQUIVO" == "-h" -o "$ARQUIVO" == "--help" ]; then uso exit 1 fi # altura do vídeo ALTURA_VIDEO=$(mplayer -identify "$ARQUIVO" -ao null -vo null -frames 0 \ | grep VIDEO: | cut -d" " -f5 | cut -dx -f2) # altura total (altura do vídeo + altura da faixa para a legenda) ALTURA_TOTAL=$(( $ALTURA_FAIXA + $ALTURA_VIDEO )) # restante dos parâmetros após o vídeo ($1) shift PARAMS=$@ echo "==========================================================================" echo "mplayer \"$ARQUIVO\" -subfont-text-scale $TAMANHO_LEGENDA -font \ $FONT_LEGENDA -vf expand=:$ALTURA_TOTAL::2 -subcp $CODEPAGE_LEGENDA $PARAMS" echo "==========================================================================" mplayer "$ARQUIVO" -subfont-text-scale $TAMANHO_LEGENDA -font $FONT_LEGENDA -vf \ expand=:$ALTURA_TOTAL::2 -subcp $CODEPAGE_LEGENDA $PARAMS |
Não achei necessário (preguiça) incluir informações sobre o funcionamento do script, já que os comentários são claros e o código em si está auto-explicativo.
Informações sobre as opções informadas ao mplayer podem ser obtidas dando uma olhada na man page do mesmo.
Mas se não entendeu alguma coisa, ou tiver alguma sugestão, crítica, etc, etc é só postar um comentário.
nov 30th, 2008 por Fernando Scherrer
Blender é uma suite livre open source para criação de conteúdo 3D, disponível sob GPL para todos os principais Sistemas Operacionais.
Já está disponível para download, a versão 2.48 do blender.
Confira o release log com a descrição das novidades desta versão em:
http://www.blender.org/development/release-logs/blender-248/.
O download do release pode ser realizado diretamente do site do projeto:
http://www.blender.org/download/get-blender/
Pacote compiladinho para slackware 12.1:
http://www.slacky.eu/index.php?option=com_content&task=view&id=8888&Itemid=65
As dependências podem ser obtidas no slacky.eu mesmo.
ago 30th, 2008 por Fernando Scherrer
Há pouco instalei o Arch Linux para testar o artigo que postei sobre a instalação do Neverwinter Nights Platinum e acabei mantendo-o para futuros testes, além de ter instalado na máquina do trabalho. Acabei instalando o kde 4 e, como de praxe, amarok e k3b, ambos (até o momento que escrevo este post) dependentes do kdelibs3. Pois bem, o porém foi que as fontes nestes dois ficaram um tanto quanto grandes em relação às das demais aplicações, e, onde configuro isso?
Este documento é apenas um relato de um problema e alguns workarounds que foram suficientes para resolvê-lo. Não tente nenhum passo descrito aqui se não entender e souber o que está fazendo.
E não é que não encontrei o que procurava? E se não tem no google não existe, logo o problema deveria ser comigo.
Dando uma fuçada notei que as configurações do kde 4 eram armazendas em ~/.kde4, e não havia um ~/.kde como estava acostumado, mas que tal era criado após configurar o amarok (criei um usuário test e startei o kde para chegar a esta conclusão).
Hmm... então ficam as configurações como, por exemplo, as fontes utilizadas? Nada que uma combinação de find, xargs e grep não esclareça: ~/.kde4/share/config/kdeglobals, assim como no kde3 aqui no slackware ficam em: ~/.kde/share/config/kdeglobals.
Pronto, era só dar um jeito de possibilitar o amarok e o k3b (e devem haver outras aplicações) acharem as configurações de fontes em ~/.kde/share/config/kdeglobals.
Antes de decidir escrever este post troquei uns e-mails (2) com o Lucas Hermann, o cara responsável por eu ter instalado o Arch, comentando o assunto e questionando-o se já tivera problemas semelhantes, e também comentando os workarounds que fiz.
A conclusão que pude tirar da "conversa" foi de que cada um dos workarounds poderia ser mais adequado para cada uma das duas possíveis situações:
Caso tenhamos o kde 4 instalado (kdebase, kdebase-runtime, kdebase-workspace, etc), um workaround possível é criarmos um link simbólico de ~/.kde4 para ~/.kde, possibilitando assim às aplicações citadas anteriormente acharem as configurações:
$ ln -s ~/.kde4 ~/.kde
Lembrando que se já existir um diretório ~/.kde (se já usou alguma aplicação dependente do kdelibs3 provavelmente já existe) devemos renomeá-lo, excluí-lo (isso removerá as configurações já realizadas!) ou o que acharmos mais adequado. Se tentarmos criar o link e ~/.kde já existir, será criado um link dentro de ~/.kde apontando para ~/.kde4 (~/.kde/.kde4 -> ~/.kde4), e não o que queremos (não, não fiz isso, mas desconfiava de que aconteceria e comprovei testando com outro diretório).
Caso não tenhamos o kde instalado (nenhum kdebase e afins), um workaround possível é criarmos o arquivo/configurações na unha mesmo. A idéia é que no arquivo ~/.kde/share/config/kdeglobals exista uma seção [General] com as configurações de fonte (podem haver outras seções e configurações), como:
[General] fixed=Monospace,8,-1,5,50,0,0,0,0,0 font=Sans Serif,8,-1,5,50,0,0,0,0,0 menuFont=Sans Serif,8,-1,5,50,0,0,0,0,0 toolBarFont=Sans Serif,8,-1,5,50,0,0,0,0,0
Este workaround pode ser útil quando, por exemplo, queremos apenas rodar o amarok, sem instalar o kdebase, já que nesta situação não teríamos o kcontrol ou o system-settings para configurar as fontes.
Pode ser que amanhã mesmo (ou enquanto escrevo) esses workarounds não façam o menor sentido, tanto devido à uma melhor solução quanto à disponibilização de tais aplicações para kde 4. Ou não.
Os workarounds citados não se limitam a configuração de fontes apenas.
Este post é apenas um relato de um probleminha corriqueiro e de como pôde ser resolvido. Não considere como uma solução (até porque o problema pode nem existir!), apenas como, quem sabe, uma inspiração para tentar entender um problema e não desistir apenas por não ter achado uma solução de cara.
(amarok antes, com as fontes bem maiores que as das demais aplicações)

(amarok depois, com as fontes iguais as das demais aplicações)
Como sempre: críticas, sugestões, dúvidas, opiniões, correções - incluindo de gramática -, soluções melhores e/ou mais elegantes e demais comentários são bem-vindos. Só não vai xingar que eu excluo :).
ago 27th, 2008 por Fernando Scherrer
Blender é uma suite livre open source para criação de conteúdo 3D, disponível sob GPL para todos os principais Sistemas Operacionais.
Já está disponível para download, desde o dia 23 (de Agosto de 2008), a versão 2.47 do blender.
Este release se compõe basicamente de correções de bugs que tornam estável o "Bunny Release" (2.46).
Confira o release log com uma breve descrição das novidades (correções) desta versão em:
http://www.blender.org/development/release-logs/blender-247/.
O download do release pode ser realizado diretamente do site do projeto:
http://www.blender.org/download/get-blender/
Pacote compiladinho para slackware 12.1:
http://www.slacky.eu/index.php?option=com_content&task=view&id=8391&Itemid=65
As dependências podem ser obtidas no slacky.eu mesmo. Aqui precisei do freealut e do openal, o restante já tinha.
jul 21st, 2008 por Fernando Scherrer
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e participe - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!
jul 18th, 2008 por Fernando Scherrer
Este artigo aborda a instalação do client do consagrado RPG Neverwinter Nights (NWN), versão Platinum em ambiente Linux. Abordando a instalação básica (suficiente para jogar), compilação de uma libSDL com patch para alternar entre os modos fullscreen e windowed, instalação do NWMovies para habilitar os vídeos e instalação do NWMouse para habilitar o cursor por hardware.
Testado com Slackware 12.1, openSUSE 10.3 e Ubuntu 9.04. Já está com base no final update (1.69) lançado por volta do dia 10 (de Julho de 2008).
Última atualização: 06/10/2009.
Os passos descritos neste artigo foram testados em três distribuições um tanto quanto distintas:
# cd /usr/include/asm # ln -s /usr/src/linux-headers-2.6.28-11/arch/x86/include/asm/page.h
# cd /usr/include/linux # ln -s /usr/src/linux-headers-2.6.28-11/arch/x86/include/asm/user.h # ln -s /usr/src/linux-headers-2.6.28-11/arch/x86/include/asm/user_64.h
No entanto são aplicáveis, possivelmente, a qualquer distribuição atual.
Caso use Gentoo, considere ler o artigo específico para esta distribuição, escrito pelo Renan Rangel, publicado em seu site: http://br-net.org/post/neverwinter-nights-platinum-no-gentoo.
Antes de iniciar a instalação leia o artigo até o final para certificar-se de que não há nenhum ponto que não lhe seja claro.
A instalação final, uma vez seguidos todos os passos aqui descritos, utilizará 4.5G. Os arquivos necessários para a instalação utilizarão aproximadamente 516M, já considerando o source da libSDL compilado, porém não considerando os arquivos da mídia de instalação (já que não precisamos copiá-los para a máquina antes de descompactá-los).
Abaixo segue o que vamos precisar inicialmente. Organização é a alma de tudo, recomendo fortemente que os downloads sejam realizados num diretório separado, não ficar "largando" arquivos no home ou no Desktop. Algo como ~/instalacoes/jogos/neverwinterNights.
Uma vez tendo tudo separadinho vamos partir para a instalação.
A instalação se dá de forma muito simples e tranqüila. Seguem os passos:
Obs. 1: estou considerando que o DVD do jogo foi montado em /mnt/dvd.
Obs. 2: não é necessária a descompactação do arquivo Language_update.zip do DVD, pois contém apenas o arquivo dialog.tlk, o qual o update que será aplicado já traz.
Obs. 3: não é necessária a instalação do nwclienthotu.tar.gz (apesar de descrito em muitos sites, inclusive no http://nwn.bioware.com/downloads/linuxclient.html), já que quase todos os arquivos providos por ele (exceto: fixinstall [não utilizaremos aqui], movies-HotU.txt [texto da fala do vídeo de abertura] e readme.txt) serão sobrescritos pelo update.
Obs. 4: não é mais necessária (como era no update 1.68) a instalação de todos os updates (English_linuxclient169_orig.tar.gz, English_linuxclient169_xp1.tar.gz e por último English_linuxclient169_xp2.tar.gz), apenas do último (English_linuxclient169_xp2.tar.gz). Mais detalhes vide este post no fórum do jogo.
Basicamente:
$ mkdir -p ~/games/nwn $ cd ~/games/nwn/ $ unzip /mnt/dvd/Data_Shared.zip $ unzip /mnt/dvd/Language_data.zip $ tar -zxvf ~/instalacoes/jogos/neverwinterNights/nwclient129.tar.gz $ tar -zxvf ~/instalacoes/jogos/neverwinterNights/English_linuxclient169_xp2.tar.gz
Para rodar o jogo é só chamar o script nwn. Porém, ao tentar rodar no Slackware e no openSUSE provavelmente obteremos os seguintes erros:
./nwn nwmain: xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed. ./nwn: line 12: 7736 Aborted ./nwmain $@
nwmain: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed. ./nwn: line 12: 16998 Aborted ./nwmain $@
No Ubuntu não ocorreu nenhum problema, abrindo o jogo normalmente.
Para contornar os erros citados acima, edite o arquivo nwn e remova o ./lib: da linha:
export LD_LIBRARY_PATH=./lib:./miles:$LD_LIBRARY_PATH
Se nada foi alterado no script ainda, a linha é a 10. O script ficará assim:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/sh # This script runs Neverwinter Nights from the current directory export SDL_MOUSE_RELATIVE=0 export SDL_VIDEO_X11_DGAMOUSE=0 # If you do not wish to use the SDL library included in the package, remove # ./lib from LD_LIBRARY_PATH export LD_LIBRARY_PATH=./miles:$LD_LIBRARY_PATH ./nwmain $@ |
Esta alteração fará com que seja utilizada a libSDL (a única coisa que tem na pasta ./lib) do sistema ao invés da disponível na pasta ./lib. Esta alteração está documentada no próprio script (If you do not wish to use the SDL library included in the package, remove ./lib from LD_LIBRARY_PATH).
Conforme descrito anteriormente, o jogo pode ser executado através do script nwn localizado no diretório em que fizemos a instalação (~/games/nwn):
cd ~/games/nwn ./nwn
Assim que o jogo iniciar aparecerão as telas solicitando os CD-Keys, é só informá-los na ordem solicitada (são três CD-Keys: Neverwinter Nights, Shadows of Undrentide e Hordes of the Underdark).
Se achar mais cômodo pode só criar manualmente o arquivo nwncdkey.ini na pasta do jogo e digitar os seriais:
;These are your CD Keys for Neverwinter Nights. ;DO NOT share these CD Keys with ANYONE. ;Apart from this installation, or when registering with the Official Neverwinter Nights ;Community Site [http://nwn.bioware.com], BioWare and Infogrames will NEVER ask you for ;this CD Key. [CDKEY] Key1=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX Key2=YYYYY-YYYYY-YYYYY-YYYYY-YYYYY-YYYYY-YYYYY Key3=ZZZZZ-ZZZZZ-ZZZZZ-ZZZZZ-ZZZZZ-ZZZZZ-ZZZZZ
Sendo Key1 o CD-Key do Neverwinter Nights, Key2 do Shadows of Undrentide e Key3 do Hordes of the Underdark.
Até aqui já temos o jogo rodando normalmente. As próximas seções descrevem como compilar uma libSDL com patch para alternar entre os modos windowed e fullscreen, habilitar os vídeos e cursor por hardware.
Não obtive sucesso com os vídeos utilizando a libSDL padrão do sistema. Tanto no Slackware quanto no openSUSE e no Ubuntu ao rodar o script nwn a tela ficava preta e não saia disso, tendo que logar num outro terminal e matar o processo.
A solução foi compilar um libSDL só para o jogo.
Existe um patch para a libSDL que permite alternar entre os modos fullscreen e windowed, então já vou explicar junto. Se não quiser aplicar o patch fique à vontade, não é necessário para o funcionamento dos vídeos.
Obs. 1: o meu "Alt da direita" é o Alt Gr, que não responde como Alt_R, mas sim como ISO_Level3_Shift (podes checar utilizando o utilitário xev), logo o primeiro atalho descrito no final desta seção não funciona. Eu optei por alterar o patch e trocar o KMOD_RALT por KMOD_RCTRL (Control-Direito). Uma outra alternativa é alterar o mapeamento da tecla mesmo (rodar xmodmap -e "keycode 113 = Alt_R", ou inserí-lo no ~/.xinitrc, ou configurar no ~/.Xmodmap ...).
Obs. 2: a possível necessidade de compilação de uma libSDL é mensionada no nwmovies.README.txt.
Obs. 3: enquanto escrevo este artigo a última versão estável da libSDL é a 1.2.13, porém, como a última versão do patch disponível é para a 1.2.11, estou utilizando esta (não testei com outras versões).
Arquivos envolvidos:
Etapas:
Assumindo que os arquivos foram salvos na mesma pasta que o nwclient e o update (~/instalacoes/jogos/neverwinterNights):
$ cd ~/instalacoes/jogos/neverwinterNights/ $ tar -zxvf SDL-1.2.11.tar.gz $ cd SDL-1.2.11 $ patch -p1 < ../fullscreen-toggle-1211.patch $ ./configure $ make $ cd ~/games/nwn/ $ mv lib lib.bioware $ mkdir lib $ cd ~/instalacoes/jogos/neverwinterNights/SDL-1.2.11/ $ cp build/.libs/libSDL-1.2.so.0.11.0 ~/games/nwn/lib/ $ cd ~/games/nwn/lib $ ln -s libSDL-1.2.so.0.11.0 libSDL-1.2.so.0
Como havíamos removido o .lib: do script ~/games/nwn/nwn, devemos reinserí-lo.
export LD_LIBRARY_PATH=./lib:./miles:$LD_LIBRARY_PATH
Agora é só rodar (./nwn) para checar se está tudo ok.
Atalhos para uso dos recursos que o patch proporciona:
Para habilitar os vídeos vamos precisar do Bink Player para linux da RAD Game Tools e do NWMovies:
Obs. 1: o NWMovies requer gcc, Perl e libelf (incluindo os cabeçalhos, os quais algumas distribuições separam em pacotes -devel). Verifique se a sua distribuição contém estes pacotes antes de prosseguir.
Obs. 2: considere a leitura da seção anterior (Compilando uma libSDL só para o jogo) antes de prosseguir.
Assumindo que os dois arquivos foram salvos na mesma pasta que o nwclient e o update (~/instalacoes/jogos/neverwinterNights):
$ cd ~/games/nwn/ $ unzip ~/instalacoes/jogos/neverwinterNights/BinkLinuxPlayer.zip $ chmod u+x BinkPlayer
É sempre bom dar uma testada antes de continuar:
$ ./BinkPlayer movies/NWNintro.bik
Isso deverá reproduzir o vídeo de abertura do jogo, não prossiga se não conseguir exibir o vídeo. Estando tudo ok vamos descompactar e executar o instalador do NWMovies. Será necessário informar o caminho da libSDL que o jogo está utilizando: ./lib/libSDL-1.2.so.0:
$ tar -zxvf ~/instalacoes/jogos/neverwinterNights/nwmovies-latest.tar.gz $ ./nwmovies_install.pl ./lib/libSDL-1.2.so.0
A saída do último comando deverá ser algo como:
NOTICE: NWMovies: Executing: gcc -m32 -Wall -Inwmovies/libdis -g -fPIC -shared ... NOTICE: NWMovies: Executing: gcc -m32 -Wall -shared -g -Wl,-soname,binklib.so ... NOTICE: NWMovies: Executing: gcc -m32 -Wall -shared -g -DSDLLIB=".... NOTICE: NWMovies: Please check for errors above NOTICE: NWMovies: nwmovies executable built. Please modify your nwn startup command to NOTICE: NWMovies: set LD_PRELOAD to 'nwmovies.so', before executing nwmain.
Se não ocorrer nenhum problema, altere o script de inicialização (~/games/nwn/nwn) incluindo as linhas abaixo em qualquer lugar no arquivo antes da chamada ao nwmain (./nwmain $@):
# SDL alsa driver export SDL_AUDIODRIVER=alsa # NWMovies export LD_PRELOAD=./nwmovies.so
Ficando assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/bin/sh # This script runs Neverwinter Nights from the current directory export SDL_MOUSE_RELATIVE=0 export SDL_VIDEO_X11_DGAMOUSE=0 # If you do not wish to use the SDL library included in the package, remove # ./lib from LD_LIBRARY_PATH export LD_LIBRARY_PATH=./lib:./miles:$LD_LIBRARY_PATH # SDL alsa driver export SDL_AUDIODRIVER=alsa # NWMovies export LD_PRELOAD=./nwmovies.so ./nwmain $@ |
Obs.: nos testes que fiz (todos numa mesma máquina), com o openSUSE a existência de export SDL_AUDIODRIVER=alsa era indiferente, no Slackware sua ausência fazia com que os vídeos não fossem reproduzidos (caindo direto no jogo), no Ubuntu 8.04 sua existência fazia com que o jogo ficasse sem áudio enquanto que no Ubuntu 9.04 o áudio funcionou com a existência do export. Portanto se tiver algum problema considere comentar esta linha e testar.
A primeira vez quer rodarmos o jogo após a instalação do NWMovies será gerado o arquivo de configuração (o jogo em si não será iniciado). Algo como:
$ ./nwn NOTICE: NWMovies: Version: 20080308.192336 NOTICE: SDL Library determined to be: /usr/lib/libSDL-1.2.so.0 WARNING: NWMovies: No INI file. Creating. WARNING: NWMovies: INI recalculation required: 7739472:0 1155672910:0 427800:0 ... WARNING: NWMovies: SDL_WM_GrabInputRaw() not visible. Looking for it the hard way. WARNING: NWMovies: This may not work. NOTICE: NWMovies: (crumb) Entry point determined: 0x7bb0 NOTICE: NWMovies: (crumb) Located address: 00031d40 NOTICE: NWMovies: (cookie) Entry point determined: 0x7830 NOTICE: NWMovies: (cookie) Searching executable: 28 NOTICE: NWMovies: (cookie) Cookie location: 0x1ac266 NOTICE: NWMovies: (cookie) Searching executable: 29 NOTICE: NWMovies: (cookie) Call Location #1: 00027100 NOTICE: NWMovies: (cookie) Call Location #2: 00027114 NOTICE: NWMovies: (cookie) Call Location #3: 00026fd0 NOTICE: NWMovies: (cookie) Searching executable: 16 NOTICE: NWMovies: (cookie) Searching executable: 02 NOTICE: NWMovies: (cookie) Searching executable: 02 NOTICE: NWMovies: (cookie) Searching executable: 18 NOTICE: NWMovies: (cookie) Searching executable: 02 NOTICE: NWMovies: (movies) Searching executable: 28 NOTICE: NWMovies: (movies) Searching executable: 30 NOTICE: NWMovies: (movies) Cookie start_location: 0x1b5611 NOTICE: NWMovies: (movies) Searching executable: 30 NOTICE: NWMovies: (movies) Cookie end_location: 0x1b5634 NOTICE: NWMovies: (cookie) Recalculated calls 0: 08076939 NOTICE: NWMovies: (cookie) Recalculated calls 1: 0807694d NOTICE: NWMovies: (cookie) Recalculated calls 2: 0815973c NOTICE: NWMovies: (cookie) Recalculated calls 3: 08159756 NOTICE: NWMovies: (cookie) Recalculated calls 4: 0807680b NOTICE: NWMovies: (movies) Recalculated calls 5: 08204e41 NOTICE: NWMovies: (movies) Recalculated calls 6: 08204e64 NOTICE: NWMovies: INI File written: Now exiting. This is perfectly normal! NOTICE: Your next run of NWN should be complete, and include movies.
Agora sim, já podemos rodar o jogo (./nwn) que os vídeos serão exibidos normalmente.
Assim que jogar um pouco poderá perceber que o cursor se movimenta com um pouco de atraso. Para melhorar a jogabilidade podemos configurar o cursor por hardware, através do NWMouse.
Vamos precisar de:
Obs.: o NWMouse, assim como o NWMovies, requer gcc, Perl e libelf (incluindo os cabeçalhos, os quais algumas distribuições separam em pacotes -devel). Verifique se a sua distribuição contém estes pacotes antes de prosseguir.
Assumindo que os arquivos foram salvos na mesma pasta que o nwclient, o update e os demais arquivos mensionados anteriormente (~/instalacoes/jogos/neverwinterNights):
$ cd ~/games/nwn $ tar -zxvf ~/instalacoes/jogos/neverwinterNights/nwmouse-latest.tar.gz $ cd nwmouse/cursors $ tar -zxvf ~/instalacoes/jogos/neverwinterNights/cursors.tar.gz $ cd ~/games/nwn $ ./nwmouse_install.pl
A saída do último comando deverá ser algo como:
NOTICE: NWMouse: Executing: gcc -Inwmouse/libdis -g -fPIC -shared -Wl,-soname,lib... NOTICE: NWMouse: Executing: gcc -shared -g -I/usr/include/libelf -Inwmouse/libdis -o... NOTICE: NWMouse: Please check for errors above NOTICE: NWMouse: nwmouse executable built. Please modify your nwn startup command to NOTICE: NWMouse: set LD_PRELOAD to include 'nwmouse.so', before executing nwmain.
Se não ocorreu nenhum erro, altere o script nwn, acrescentando/alterando as seguintes linhas antes da chamada ao nwmain (./nwmain $@):
# NWMouse export XCURSOR_PATH=`pwd` export XCURSOR_THEME=nwmouse # NWMovies e NWMouse export LD_PRELOAD=./nwmovies.so:./nwmouse.so
Repare que as duas últimas linhas mensionadas acima já existiam devido a alteração para habilitar os vídeos. Caso não os tenha habilitado, a última linha será simplesmente export LD_PRELOAD=./nwmouse.so.
Caso tenha realizado todos os passos deste artigo, o script ~/games/nwn/nwn deverá estar parecido com:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!/bin/sh # This script runs Neverwinter Nights from the current directory export SDL_MOUSE_RELATIVE=0 export SDL_VIDEO_X11_DGAMOUSE=0 # If you do not wish to use the SDL library included in the package, remove # ./lib from LD_LIBRARY_PATH export LD_LIBRARY_PATH=./lib:./miles:$LD_LIBRARY_PATH # SDL alsa driver export SDL_AUDIODRIVER=alsa # NWMouse export XCURSOR_PATH=`pwd` export XCURSOR_THEME=nwmouse # NWMovies e NWMouse export LD_PRELOAD=./nwmovies.so:./nwmouse.so ./nwmain $@ |
A primeira vez quer rodarmos o jogo após a instalação do NWMouse será gerado o arquivo de configuração (o jogo em si não será iniciado). Algo como:
$ ./nwn NOTICE: NWMouse: Version: 20050216.085035 WARNING: NWMouse: No INI file. Creating. WARNING: NWMouse: INI recalculation required: 7739472:0 1155672910:0 NOTICE: NWMouse: (cookie) Entry point determined: 0x7830 NOTICE: NWMouse: (cookie) Searching executable: 96 NOTICE: NWMouse: (cookie) Cookie0 location: 0x084e17b4 NOTICE: NWMouse: (cookie) Searching executable: 80 NOTICE: NWMouse: (cookie) Cookie1 location: 0x084d84dc NOTICE: NWMouse: (cookie) Cookie2 location: 0x086347a0 NOTICE: NWMouse: (cookie) Searching executable: 80 NOTICE: NWMouse: (cookie) Cookie3 location: 0x084f8134 NOTICE: NWMouse: (cookie) Searching executable: 80 NOTICE: NWMouse: (cookie) Cookie4 location: 0x084db44c NOTICE: NWMouse: (cookie) Searching executable: 80 NOTICE: NWMouse: (cookie) Cookie5 location: 0x084d89f7 NOTICE: NWMouse: (cookie) Searching for proper Orientation function, this may take... NOTICE: NWMouse: (cookie) Cookie6 location: 0x084e0874 NOTICE: NWMouse: INI File written: Now exiting. This is perfectly normal! NOTICE: Your next run of NWN should be complete, and include hardware mouse.
Agora sim, já podemos rodar o jogo (./nwn) e notar a diferença no tempo de resposta do cursor do mouse conforme movimentado pelo ambiente do jogo.
Com o update anterior (1.68), durante o carregamento de alguns ambientes do jogo, não me recordo exatamente de que campanha, o jogo fechava retornando um Segmentation fault no console, sem mais detalhes. Não sei se com o update 1.69 isso continua acontecendo. Em todo caso, estou mantendo esta seção para garantir.
Utilizando o strace (utilitário para rastrear os sinais e chamadas do sistema) foi possível encontrar o problema:
...
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such ↵
file or directory)
...
Não tenho (tanto Slackware quanto no openSUSE e no Ubuntu) um libc.mo referente ao LOCALE en_US (que é o locale padrão de ambas as distribuições). Porém outros locales o tem. Um simples cd /usr/share/locale; find -name 'libc.mo' pode nos mostrar quais locales contêm este arquivo, o pt_BR é um deles.
Solução: utilizar um locale que contenha o libc.mo, o pt_BR por exemplo. Para não termos que alterar o locale do sistema, basta adicionarmos um export LANG=pt_BR no script ~/games/nwn/nwn em qualquer lugar antes da chamada ao nwmain (./nwmain $@):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/bin/sh # This script runs Neverwinter Nights from the current directory export SDL_MOUSE_RELATIVE=0 export SDL_VIDEO_X11_DGAMOUSE=0 # If you do not wish to use the SDL library included in the package, remove # ./lib from LD_LIBRARY_PATH export LD_LIBRARY_PATH=./lib:./miles:$LD_LIBRARY_PATH # SDL alsa driver export SDL_AUDIODRIVER=alsa # NWMouse export XCURSOR_PATH=`pwd` export XCURSOR_THEME=nwmouse # NWMovies e NWMouse export LD_PRELOAD=./nwmovies.so:./nwmouse.so # devido ao Segmentation fault, strace: # open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT # (No such file or directory) export LANG=pt_BR ./nwmain $@ |
Acrescentadas as linhas 22 a 25.
Optei pela instalação dos pacotes SDL-devel no openSUSE ou libsdl-dev no Ubuntu para não complicar muito (ainda mais?) a leitura do artigo, não sendo exatamente necessária, já que estamos compilando uma libSDL apenas para o jogo, poderíamos ter instalado o resultado da compilação num local temporário:
$ make install DESTDIR=/tmp/sdl
e depois referenciado-o na instalação do nwmovies:
CFLAGS="-I/tmp/sdl/usr/local/include/" ./nwmovies_install.pl ./lib/libSDL-1.2.so.0
Esse approach me parece mais "bonito".
Se a instalação foi realizada seguindo os passos exatamente como descritos no artigo, não é necessária a execução do script fixinstall. Tal script apenas checa se algumas pastas existem, se as permissões estão de acordo e altera o case de alguns arquivos. Utilizando o DVD como origem dos dados, as pastas necessárias e o case dos arquivos já estarão corretos, e a permissão de escrita nas pastas criadas durante a descompactação também existirá.
A máquina onde tudo foi feito contém uma placa de vídeo nVidia GeForce 6500 (256MB) com o driver NVIDIA-Linux-x86-1.0-8756-pkg1.run (driver nvidia no xorg.conf), exceto no Ubuntu, que habilitei o driver da nVidia pelo jockey-gtk. Mas já joguei com uma intelzinha® genérica sem problemas (driver i810).
Não uso openSUSE nem Ubuntu, apenas Slackware (e agora [2009] estou migrando para Gentoo, distribuição essa que já utilizo há algum tempo no trabalho), mas para fins de tetes instalei o openSUSE 10.3 de um DVD que tinha aqui e agora (10/2009) baixei e instalei também o Ubuntu 9.04 considerando o comentário do Ricardo.
Este artigo começou a ser escrito no ínico do ano (2008), demorou um pouco pra ser terminado, mas está aí. Foi escrito inicialmente com base nos updates 1.68, porém quando estava revisando para publicar (checando os links) acessei o http://nwn.bioware.com e dei de cara com o announcement do release do final update, então voltei atualizando e testando tudo do zero novamente.
Apesar do artigo cobrir apenas a instalação da versão Platinum do jogo, pode ser facilmente adaptado para as demais versões, já que a Platinum é apenas uma edição que inclui o Neverwinter Nights original e as expansões Shadows of Undrentide e Hordes of the Underdark. Se este for seu caso, baixe o update referente à sua versão.
A instalação também é possível sem ter a mídia do jogo (CD/DVD), porém (não tenho certeza) sem as expansões, através do Linux Client Resources. Neste caso é só considerar a extração do arquivo baixado onde consta a extração dos arquivos do DVD (10/2009: porém não testei, mas pelo comentário do Thiago parece que pode não funcionar como o esperado).
Críticas, sugestões, elogios, dúvidas, opiniões, correções - incluindo de gramática - e demais comentários são bem-vindos. Para tal favor utilizar o espaço para comentários abaixo.
Seguem as referências utilizadas para a instalação que deu origem a este documento:
http://nwn.bioware.com/downloads/linuxclient.html
http://nwn.bioware.com/support/patch.html
http://www.mandrivabrasil.org/site/forum/index.php?topic=4520
http://ubuntuforums.org/showthread.php?t=113259
http://home.roadrunner.com/~nwmovies/
http://home.roadrunner.com/~nwmovies/nwmouse/
http://home.roadrunner.com/~nwmovies/libsdl.html
http://www.omgili.com/preview/aHR0cDovL3d3dy5oY...
READMEs.
Os comentários são os indicadores para contiuarmos desenvolvendo mais material para compartilhar, ou, desencanar de vez. Portanto se gostou do documento, se lhe foi útil: comente.
Grato.
mai 20th, 2008 por Fernando Scherrer
Blender é uma suite livre open source para criação de conteúdo 3D, disponível sob GPL para todos os principais Sistemas Operacionais.
Já está disponível para download a versão 2.46 do blender.
Confira o release log com uma breve descrição, acompanhada de imagens, das novidades desta versão em:
http://www.blender.org/development/release-logs/blender-246/.
O download do release pode ser realizado diretamente do site do projeto:
http://www.blender.org/download/get-blender/
Para Linux, hoje, há duas opções para download através do site oficial: para python 2.4 e 2.5, ambos para arquitetura x86-32.
Pacote compiladinho para slackware 12.1:
http://www.slacky.eu/index.php?option=com_content&task=view&id=6720&Itemid=65