Follow falcon_dark on Twitter
Google

segunda-feira, fevereiro 20, 2006

Notebook, Linux e drivers ATI: o fim da novela

Até que enfim, após muitas batidas de cabeça na parede consegui configurar corretamente minha ATi Radeon x200 Mobility do meu HP/Compaq NX6115 no Mandriva 2006. Depois de instalar o sistema, desabilitar o ACPI para o barramento PCI (via pci=noacpi como parâmetro de boot do kernel no Lilo por razões de desempenho), configurar o wi-fi da Broadcom (BCM4318) com o ndiswrapper e o driver de Windows, atualizar o OpenOffice para a versão 2.0, o Firefox para a 1.5.1 e deixar todo o resto funcionando (leia-se Apache, PHP, firewall, anti-virus, conexões de rede, impressoras, e mais uma sacolada de programas, além do Kopete usando o jabber com logon no GTalk) decidi partir à sério para o vídeo.

O procedimento que detalharei aqui pode servir pra você também (na verdade espero que sirva mesmo) que quer configurar uma ATI no Mandriva ou outra distro derivada do RH. O procedimento na verdade deve servir para qualquer distro, mas vai saber. Me ajudou muito com o vídeo o amigo Helio Castro o cara do KDE no Brasil e membro do excelente time da Conectiva. Agradecimentos ao pessoal da Conectiva pela ajuda com os problemas de desempenho do Linux e pela descoberta do culpado (ACPI). Valeu pela força!

Baixando e instalando o driver
Primeiro eu baixei o driver proprietário da ATI, peguei os drivers de x86-32bit para Radeon 8500 and higher. Eu já havia tentado usando os drivers Notebooks with ATI Graphics e Motherboards with ATI Graphics sem sucesso, seguindo recomendações que achei na web, mas não havia funcionado com nenhuma das duas. Também já havia tentado o pacote pronto do PLF para Mandriva, e nada. Nem a aceleração 3D funcionava nem apareciam dispositivos em /dev/dri, ou seja era um problemão. Decidi tentar com a versão de driver para placas de desktop mesmo, por isso aconselho que você comece a tentar também por eles.

Baixei o ATI Driver installer versão 8.22.5, com pouco mais que 35MB. Ela é uma versão de instalação automática do driver, simples de usar. Após o download completar segui as instruções do site à risca, inclusive verificando se os pré-requisitos estavam instalados no sistema. Certifique-se de que você tem o seguinte material instalado corretamente em seu Linux:
1- o caminho /dev/shm que significa o sistema de memória compartilhada padrão POSIX;
2- glibc versão 2.2 ou 2.3 (pode ser instalada com # urpmi glibc);
3- Seu kernel é 2.4 ou 2.6 (se não for baixe o Mandriva 2006 ou sua distro de preferência mais recente);
4- Xorg 6.7 ou XFree 4.1 ou posteriores (idem acima).
5- Kernel sources ou kernel headers (pode ser instalado com # urpmi kernel-source)

Com tudo isso instalado eu fui ao local de download do arquivo dos drivers, tornei-me super usuário e digitei:
# sh ./ati-driver-installer-8.22.5-i386.run
o software checou sua integridade e abriu uma tela gráfica. O procedimento de instalação seguiu o descrito no site da ATI, basicamente um Next, Next, OK, que lembrou muito o processo do Windows, com pouca emoção ;-). Mal sabia eu que haveria muita emoção ainda por vir.

Depois que ele terminou de instalar tudo instrui-me a efetuar duas operações;
1- Um backup do arquivo de configuração atual do X (# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.2d.backup);
2- rodar o comando # aticonfig --initial para criar um novo arquivo com as configurações padrão do driver 3D da ATI.

Não preocupe-se em perder as configurações de mouse e teclado atuais do seu X, pois o driver da ATI usa o seu arquivo atual como base para o novo arquivo, apenas adicionando as configurações necessárias para que o 3D funcione. Fiz ambas as tarefas e reiniciei o sistema inteiro, apenas porque a documentação do driver aconselha a fazer isso. Após o boot do sistema o driver estava instalado, mas o X ainda iniciava com meu driver antigo. Editei o arquivo no braço e comentei a seção que referia-se ao driver antigo. Isso foi o bastante para que o sistema iniciasse com os drivers 3D da ATI. Executei os utilitários glxgears e fgl_glxgears para testar o driver. As enormes diferenças de FPS indicam que o driver está funcionando (com o driver antigo o glxgears reportava cerca de 100FPS, com o novo fica em cerca de 1000FPS).

O comando fglrxinfo deve retornar algo parecido com isso:
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON XPRESS 200M Series SW TCL Generic
OpenGL version string: 2.0.5642 (8.22.5)
Outro vendor string (algo como MesaGL ou SGI) pode não significar nada, mas aqui em todas as vezes que era diferente de ATI o driver 3D não estava funcionando na seção X apesar de instalado corretamente. Se isso acontecer com você (e seu driver não estiver mesmo funcionando) eu sugiro que você edite seu arquivo xorg.conf (depois de fazer um backup, claro) de modo a comentar ou deletar todas as seções relativas à sua placa de vídeo atual (seções DEVICE). Após isso execute novamente o procedimento aticonfig descrito acima. Quando você obtiver o vendor string da ATI e FPS bem altos usando os utilitários é porque o driver funcionou corretamente.


Ajuste fino
Depois de tudo isso o driver estava funcionando por aqui. Dá pra notar que depois do driver funcionar o consumo de processador do X cai um pouquinho (cerca de 5% do que já consumia antes). A aparência das coisas na tela também melhora, as páginas web exibidas pelo Firefox estão mais bem acabadas, as fontes menores aparecem com mais definição em telas LCD. A aparência dos ícones é mais suave. Tudo isso porque a ATI fez melhorias na parte 2D do driver também, além do ganho de performance os drivers trazem também um acabamento melhor na aparência do que é exibido na tela.

Mas alguns problemas começaram a acontecer, principalmente relativos à vídeo. Com o driver antigo (que acompanha o Xorg) vídeos exibidos em tela cheia davam pequenos pulos e atrasos a cada 10 ou 15 segundos, mesmo a máquina tendo um bom processador e bastante memória. Mas com os drivers recém-instalados o Kaffeine (usando engine do Xine) travava ao tentar abrir qualquer vídeo. O Mplayer apresentava a mensagem de erro: Could not open/initialize video device (-vo) e não fazia nenhuma reprodução. Algo precisava de ajustes!

Iniciei o Mplayer pela linha de comando e ele retornava a mesma mensagem de erro, mas com um dado a mais. Ele dizia que o comando mplayer -vo help me daria uma lista de dispositivos de vídeo permitidos para uso. Nessa lista constam o xv, X11 e outros (vídeo com overlay e vídeo comum do X, respectivamente). Usando mplayer -vo X11 nome-do-arquivo.mpeg o arquivo era reproduzido normalmente, mas ocasionalmente com alguns pulos e atrasos (bem menos que antes, verdade). O comando xvinfo retorna informações do layer X-Video, e ao usá-lo notei que ele acusava não haverem dispositivos compatíveis com o X-Video instalados. Isso é uma falha da configuração padrão do aticonfig, pois nesse momento eu já possuia os drivers 3D instalados e operacionais.

Após uma leitura cuidadosa dos parâmetros de configuração do aticonfig descobri que é possível setar o uso do Xv como opção de overlay para o driver, aqui a opção padrão foi o OpenGLOverlay. Decidi reconfigurar o driver (leia reconfigurar o Xorg pelo xorg.conf) usando o seguinte comando:
# aticonfig --ovt=Xv --dtop=clone --iagp=on -v -f
cujas opções são detalhadas a seguir:
--ovt=Xv: usa o overlay do X-Video em lugar do OpenGL;
--dtop=clone: minha placa ATI é dual head e esta opção joga na porta externa a mesma tela exibida no LCD do note, mas com opção de redefinir freqüências e taxa de atualização, útil para usar monitores ou projetores externos. Há outras opções como usar as mesmas taxas de atualização ou extender o desktop para uso com o Xinerama, para mais informações digite apenas aticonfig para ver todas as opções disponíveis;
--iagp=on: usa o agpgart interno do driver proprietário em lugar do fornecido pelo Kernel 2.6 do Linux, opção recomendada pela ATI;
-v: modo verbose para que o aticonfig informe detalhadamente todas as operações;
-f: força a reescrita do arquivo xorg.conf.

Foi necessário reiniciar o Xorg para que as opções entrassem em funcionamento. Na volta do Xorg o driver estava funcionando normalmente e o comando xvinfo informava o seguinte:
X-Video Extension version 2.2
screen #0
Adaptor #0: "ATI Radeon Video Overlay"

Além de outras informações sobre o sistema gráfico da máquina.

Com isso o Mplayer parou de reportar erro ao tentar reproduzir arquivos e a melhora no desempenho do vídeo foi muito sensível. O Kaffeine também parou de apresentar travamentos, reproduzindo de maneira normal todos os vídeos suportados.

Conclusão
Agora o vídeo 3D no meu Mandriva 2006 funciona perfeitamente, a aparência e usabilidade do desktop melhoraram muito e o desempenho e qualidade da reprodução de vídeos está bem melhor. Mas dá pra perceber que muita coisa precisa ser feita nesses drivers da ATI para que eles possam ser mais fáceis de configurar. As opções de configuração podem ser decisivas para o funcionamento adequado do driver, por isso é recomendável que todo usuário leia as opções e teste algumas delas para descobrir como usar melhor seu hardware sob o Linux. Vamos esperar que as próximas versões possam acertar melhor as configrações iniciais e que apresentem um desempenho adequado ao nome que a ATI tem no mundo do hardware gráfico.

Follow falcon_dark on Twitter
Google

domingo, fevereiro 12, 2006

A filosofia e o sistema

Fabio Ortolan me escreveu o seguinte:

"Quais as coisas que você discorda sobre a "filosofia" GNU/Linux e que limitações você enxerga no GNU/Linux??

Pode parecer estranho, mas seria interresante você postar algo a respeito."

Achei o tema interessante e decidi dedicar algum tempo pensando sobre isso.

A filosofia GNU/Linux poderia ser chamada na verdade de filosofia do Software Livre. Já que o GNU/Linux serve como exemplo de software livre, assim como muitos outros softwares e projetos. Sobre a filosofia do SL eu tenho uma expressão que vai demonstrar muito bem o que penso: ela não é perfeita porque nada é perfeito. Se algo no mundo da informática pudesse ser perfeito seria a filosofia do SL.

Informática é ciência, assim como matemática. Ciência deve ser livre, deve ser para o bem de todos e para o progresso do homem. Ciência paga é segregacional, exclui aqueles que não podem arcar com seus custos e cria barreiras para a distribuição de informação, conhecimento, aprendizado e progresso.

É possível ganhar dinheiro com ciência, é possível ganhar dinheiro com ciência livre, portanto não há mal algum em queremos que a informática seja mais parecida com outras ciências no sentido de distribuir igualitariamente seus frutos. Cito um exemplo controverso. Em Cuba não há direitos autorais para literatura. Se você é escritor o governo cubano pode, deliberadamente e sem comunicar a você, pegar sua obra, traduzir para a língua local e publicá-la e distribuí-la para seus cidadãos. O resultado é que Cuba possui um dos menores índices de analfabetismo do mundo, menor inclusive que o índice dos EUA.

Mas se o governo cubano pega meu livro e distribui sem me pagar um centavo, como eu ganho dinheiro? Simples! Aproveite que o governo e o povo cubanos interessaram-se por sua obra e ofereça uma palestra, curso, ou mesmo aulas sobre o assunto. Se você não ganhar dinheiro, pode ao menos passar algum tempo em uma bela ilha caribenha conhecendo outra cultura. Você trocou então uma vantagem monetária por uma cultural. E todos saíram ganhando de alguma forma.

Falando em respeito por leis de direito autoral, para aqueles que acreditaram que o exemplo foi controverso demais, grandes nomes da ciência e grandes empresas conseguiram muito respeito técnico, acadêmico, e até boa vantagem monetária fornecendo seus estudos e pesquisa de maneira livre. Insisto que se Albert Einstein, Maxwell, Newton e outros tivessem registrado suas teorias, patenteado-as se possível na época e decidido montar empresas para comercializar seus conhecimentos viveríamos em um mundo muito pior.

A informática ignorou por anos a oportunidade de contribuir para a sociedade humana como ciência. A filosofia do Software Livre busca corrigir esse comportamento errático que os homens de negócios perpetuaram por tantos anos, pregando apenas que o conhecimento deve ser repassado a todos sem distinção e sem limitações. O que um sabe, todos sabem; do que um aprende todos se beneficiam.

São conceitos tão antigos como a própria conciência humana. Abra a bíblia nos capítulos certos e você lerá coisas como "repartir o pão". Conceitos como "de cada um conforme sua capacidade para todos conforme sua necessidade" ou "igualdade, liberdade e fraternidade" são sonhos que muitos de nós tentamos por séculos tornar realidade. Nenhuma área da ciência humana pode negar a si própria a oportunidade de contribuir dessa forma para a espécie humana.

Gostei de Stallman e sua filosofia quando li uma entrevista onde ele falava algo como propagar os ensinamentos que recebemos de nossos pais quando crianças. Éramos ensinados que deveríamos compartilhar livros e brinquedos com nossos amigos, e quando crescemos descobrimos que é errado compartilhar software. Por quê? Porque alguém quer impedir-me de compartilhar algo bom com meus amigos, apenas para obter lucro. Tenho um nome pra isso, e é um nome feio.

Assim não vejo falhas na filosofia do SL, apenas boas intenções e uma vontade grande de tornar o campo tecnológico tão fraterno quanto o físico. Talvez haja problemas com suas implementações, as GPLs da vida ou as restrições sobre DRM que estão gerando tanta polêmica. Mas do ponto de vista filosófico, o SL é algo que pode nos ajudar a construir um mundo melhor.

O GNU/Linux, enquanto sistema operacional para computadores, possui limitações, como qualquer outro produto humano. E acho que grande parte delas é causada pela forma como o GNU/Linux tem sido desenvolvido. Inicialmente o GNU nasceu para substituir o UNIX. Ele proporcionaria a oportunidade das pessoas rodarem em seus equipamentos pessoais o mesmo sistema que trabalhava em seus laboratórios, ninguém preocupava-se com o Windows naqueles tempos. Nisso o GNU/Linux foi soberbo. Hoje você encontra poucos sistemas Unix proprietários rodando por aí em comparação ao número de máquinas operadas pelo GNU/Linux. Solaris, AIX, HPUX, todos eles tiveram que mudar seu sistema de licenciamento ou aceitar uma posição menor nas estratégias de mercado de seus próprios desenvolvedores, por força da capacidade e baixo custo do GNU/Linux.

Nos últimos tempos os desenvolvedores dos vários sabores de GNU/Linux decidiram que era hora de desbancar o Microsoft Windows onde ele era forte: desktops domésticos e aplicações e desktops de pequenas e médias empresas. E o desenvolvimento do GNU/Linux e seus correlatos (como interfaces gráficas, programas, drivers, aplicações) passou então a seguir os passos do próprio Windows.

Gnome e KDE apresentam interfaces com funcionamento e look & feel semelhantes ao Windows. Os programas como navegadores de web (Firefox), office (OpenOffice) desenvolvimento (Eclipse, etc.) ainda que apresentem funcionalidades que seus competidores não possuam inspiram-se nas interfaces concorrentes para tratar o usuário. Tenho a impressão que isso dê-se pela idéia de que se o Firefox parecer bastante com o Internet Explorer o usuário migrará com mais facilidade, idem para o OpenOffice que em sua versão 2 abandonou sua identidade visual anterior para buscar uma identificação maior com o Microsoft Office.

Mesmo que isso proporcione uma maior facilidade de migração, traz consigo um problema. Ao seguir os passos de alguém, você está sempre atrás. Enquanto a Apple é conhecida por inovar nas interfaces de seus produtos e usa isso como seu grande diferencial as interfaces de GNU/Linux parecem sempre ser uma adaptação do desenho da última interface adotada no Windows. Fica a impressão que junto com os acertos repetiremos também todos os erros dos outros sistemas. Ser uma alternativa ao que já está implementado significa antes de tudo ser diferente do que já está implementado. As pessoas tendem a não enxergar diferenças entre coisas que são muito similares. E acabam por concluir que é igual.

E assim vai ser com tudo que os desenvolvedores Linux esperarem sair em outro sistema antes para ter certeza que dará certo. Seja com EFI, seja com novos sistemas de arquivos, com uma nova abordagem para a organização e uso do desktop, seja com um novo método de instalar programas. Se você quiser ser reconhecido por algo diferente e inovador, você deve fazer algo diferente e inovador.

O maior ponto fraco do GNU/Linux enquanto alternativa ao Windows hoje é esse: estar mais preocupado em implementar coisas que o Windows implementa do que implementar coisas novas que a Microsoft nem tenha avaliado ainda. Há muito o que fazer nessa área. Coisas como Personal Clustering ou Desktops Remotos, são coisas que em um futuro podem ser desejáveis para muitos usuários e que o GNU/Linux não poderia esperar o Windows trazer para também decidir implementar. A inovação deve estar sempre em prineiro lugar para que o Linux possa apresentar-se com um diferencial forte ao ser considerado alternativa ao Windows. E aí me dá uma saudade da Conectiva... ;-)

Follow falcon_dark on Twitter
Google

terça-feira, fevereiro 07, 2006

Palestra sobre migração para software livre

Assuntos como aprender a usar novas ferramentas, benefícios do uso de software livre, estratégias de migração e adaptação são alguns dos temas sobre os quais falarei em minha apresentação sobre Migração para Software Livre no evento Desktop Livre, que ocorrerá na Unisal em Lorena (interior de São Paulo) nos dias 16 a 18 de Março de 2006.

O evento busca apresentar para o público geral as capacidades do software livre em aplicações desktop tanto em mercados doméstico como empresarial. O evento conta com muitas palestrar interessantes, como a apresentação sobre KDE do Helio Castro, a apresentação sobre Marketing de SL do Mauricio Toito e muitas outras.

Vou buscar elaborar uma apresentação com qualidade e à altura de tantas outras excelentes palestras que já estão agendadas. Pretendo falar rapidamente de muitos softwares livres que são grandes opções às soluções proprietárias e mostrar aos espectadores que é possível migrar para aplicações livres mantendo altos índices de produtividade e qualidade.

Por isso fica aqui o convite para que todos possam deslocar-se a Lorena e acompanhar o evento, uma grande oportunidade para trocar informações e conversar com o pessoal do software livre.

Follow falcon_dark on Twitter
Google

O garoto, o pai, o avô e a mula

Bons questionamentos e muito texto adicionados aos comentários após a publicação do artigo.

Um antigo conto diz que vinham pela estrada um garoto, seu pai, seu avô e uma mula. Compadecentes com o animal, que sofreria para carregar todos sob sol tão forte, os homens e o menino caminhavam à sua frente com os arreios em punho. Ao passar por um vilarejo escutaram os desocupados a rir.
"Que estúpidos, com uma mula forte como essa caminham neste sol."

Decidiram que Deus faz sempre o certo, se o quadrúpede nascera mula deveria carregar o que lhe puséssem nas lombas. Subiram todos no pobre bicho e seguiram viagem. Algum tempo depois passam por outra vila, novamente atentam-se aos palpites dos espectadores.
"É muito abuso, que sol forte, e todos sobre o burro!"

Com a culpa pesando ainda mais sobre o animal decidiram que dois deles deveriam descer, ficando apenas um sobre as costas do carregador. O pai achou por certo que o mais velho descansasse, e assim foi feito. Até que passaram por outro vilarejo.
"Que horor, um menino dessa idade caminhando enquanto um velho ainda forte como esse passeia!"

Olharam-se e decidiram por o garoto sobre a mula, foram então o pai e o avô caminhando. Aproxima-se outra vila e novos comentários.
"Onde já se viu? Em vez de ensinar o garoto desde cedo as coisas certas da vida deixam-no nesta moleza!"

Vai o garoto para a caminhada, junto com seu avô e o pai sobre a mula. Quando chega outro vilarejo.
"Mas era o que faltava! Põe um velho e um menino para guiar sua montaria, tome vergonha!"

Moral da história: Quem quer agradar a todos a si próprio não faz bem. Faz é papel de bobo e não agrada ninguém.

Como o garoto, seu pai e seu avô desta estória encontra-se o GNU/Linux, se compreendido pelas palavras de muitos textos que podemos ler pela internet afora. Quando trata-se de críticas ao sistema operacional livre o mais comum é encontrar as variações do tema: é muito difícil de usar.

E não faltam sugestões para deixá-lo mais fácil e portanto melhor candidato a tomar o lugar do Windows nos monitores dos usuários. Quando um advogado, médico, dentista ou outro profissional que usa computadores deve estar disposto a compilar kernel para poder abandonar o Windows e correr para os braços de algo que melhore a maneira como aquele usa computadores e produz todos os dias?

Parece que firmou-se uma espécie de jihad ou cruzada para colocar o Linux no desktop do maior número possível de usuários até que este supere e finalmente acabe com o Windows. E que para atingir isso deve-se fazer de tudo, inclusive desfigurar o GNU/Linux cada vez mais para que ele se pareça cada vez mais com o Windows e as pessoas possam aceitá-lo e engulí-lo. Mesmo que nesse caminho o GNU/Linux deixe de ser o GNU/Linux e perca todas aquelas características que fizeram dele uma alternativa realmente aceitável.

Não estou falando de compilar um kernel, acordem! Minha irmã usa Linux há 1 ano e nunca compilou um kernel, e nem eu o fiz para ela. Isso não é preciso há algum tempo! Sempre achei que tocar piano deve ser uma das coisas mais difíceis do mundo, mas nunca me passou a idéia de pedir para que alguém modificasse um piano para que ele ficasse mais fácil, só para que eu aprendesse a tocá-lo. E seria absurdo se eu pedisse isso a alguém, pois tanto aquilo deixaria de ser um piano quanto eu não aprenderia a tocar um piano de fato.

Mas é isso que vejo muita gente pedir por aí. Pedem para que o GNU/Linux fique mais parecido com o Windows para eles possam deixar de usar o Windows. Com qual finalidade?

Dizem que o Diabo leva mais vantagem por ser velho do que por ser diabo. Meus amigos, o GNU/Linux só é o GNU/Linux porque ele não é o Windows. Se ele fosse como o Windows nunca seria tanto quanto é hoje. Quem pensaria em trocar o Windows por algo que é igual ao Windows??? Vamos lá, faz uma força, baixa 3 CDs da internet, queime-os, formate seus HDs, instale tudo de novo, configure tudo de novo e então você terá algo que é bem parecido com o que você já tinha antes... Quem está perdido nesta história toda?

Não são os desenvolvedores GNU/Linux que não entenderam o que o usuário quer. É o usuário que não entendeu o que o Linux é. O Linux não é um concorrente do Windows, são sistemas de classes diferentes. O Linux não é um substituto do Windows, é um substituto do UNIX. O Linux não foi feito para que você abandone seu Windows, ele foi feito para funcionar de uma certa maneira e faz isso muito bem, obrigado.

A todos aqueles que querem que o Linux aproxime-se um pouco mais do Windows para poderem trocar um pelo outro, faço um pedido, continuem usando Windows. Aqueles que querem um sistema com características únicas, muito bom, muito estável, muito portável, muito flexível, totalmente configurável, e que seja único; bem vindos abordo. Basta um pouco de disposição para aprender a usar algo novo (lembra quando você teve que deixar as fraldas e usar o sanitário, acho que não eu também não lembro) pois gente querendo ajudar não falta.

O Linux é como a democracia, precisa ser requerida, não imposta. Você não invade um país e empurra a democracia guela abaixo, bem os EUA acha que sim e veja lá como estão as coisas. Com sistemas operacionais é a mesma coisa. Não há porque empurrar o Linux pela garganta de milhares de usuários que não querem isso, deixem-nos como estão, se estão felizes. Quando lhes aprouver a vontade de mudar eles mudarão e aceitarão todas as vantagens e custos que isso traga.

Afinal aprender coisas novas nunca matou ninguém. Quem aprendeu a ir ao banheiro sozinho, a andar, a falar, a escrever, a dirigir, pode aprender a usar outro sistema operacional se quiser. Se não quiser, pode ficar com o Windows mesmo. A Microsoft e a comunidade de software livre agradecem.

Follow falcon_dark on Twitter
Google

This page is powered by Blogger. Isn't yours?