Introdução
Eu tenho me deparado com muitos usuários que estão iniciando no mundo do software livre, e que recentemente acabaram de instalar uma distribuição, e infelizmente, se decepcionaram com o desempenho dos dispositivos e compatibilidade com aplicativos.
O objetivo deste post é mostrar uma maneira alternativa para buscar, descobrir e ativar o módulo correto(como assim?? a distribuição não conseguiu detectar?? como ela fez isso comigo?? ativando outro módulo??) através de comandos conhecidos, principalmente em distribuição debian-like(Ubuntu,Mepis, Sidux, Knoppix, DSL e etc). Os módulos ativos estão em “/proc/modules”. Para mostrar na saída digite: “cat /proc/modules”, ou o comando “lsmod”. Existem diversos métodos para detectar os módulos(mais práticos principalmente), porém, este método que demonstrarei, poderemos aprofundar no funcionamento e detecção dos dispositivos.
Primeiramente, devemos entender o porquê de um módulo não estar “funcionando” corretamente. Possibilidades:
1º Ainda não existe o módulo do dispositivo. Isto ocorre com dispositivos recém-lançado no mercado. Alguns fabricante não lançam drivers para o nosso pinguin, e sobra para nossa comunidade correr atrás de um módulo alternativo livre, o que pode levar um tempinho. Os dispositivos criados por “empresas desconhecidas”, também são fortes candidatos a não possuírem módulos alternativos livres no kernel do linux.
2º O módulo está em desenvolvimento ou com bugs. Alguns módulos podem funcionar parcialmente, conter bugs ou mesmo defasados(pode ter sido substituído por outro módulo), e para evitar que este dispositivo comprometa ou mesmo trave o sistema, muitas distribuições “jogam” estes módulos para arquivos blacklists localizados em /etc/modprobe.d/. Dentro deste mesmo diretório encontra-se arquivos de configuração dos módulos e seus respectivos parâmetros para comunicar com o dispositivo. Muitas distribuições ativam módulos genéricos para compensar a falta de um módulo funcional( ex. módulo vesa em placas de vídeo) .
3º O módulo pode estar correto, porém, limitado. Como a comunidade corre atrás de módulos alternativos livres, muitas das vezes ela é limitada por falta de informações sobre o dispositivo. Em conseqüência destas restrições a comunidade não consegue desenvolver um módulo que explore na totalidade os recursos do dispositivo. Empresas criadoras querem acesso restritos aos seus dispositivos, em contrapartida, o linux ganhou o apoio grandes corporações como AMD, Google,Dell, HP, IBM,Intel, AMD, VIA(recentemente) e tem conseguido ganhar espaço.
4º O módulo pode estar correto, porém, mal configurado pelo o usuário. O kernel conseguem detectar praticamente todos os módulos, porém, falta apenas um toque final do usuário para configurar na sua distribuição, como ex:
-
-
Resolução de Vídeo;
-
Parâmetros para ativar canais de som Live 5.1, 7.1. Usuários com ouvidos refinados conseguem perceber se os canais live 5.1 da SoundBlaster estão ativados ou o se é um estéreo distribuído e nas caixas;
-
Memória compartilhada de Vídeo 3D compartilhada, nas placas Intel.
-
O comando lspci e lsusb:
Nas distribuições debian-like existe o comando o comando lspci, cujo a finalidade é disponibilizar informações do barramento PCI bem como os dispositivos conectado a ele. Vale ressaltar que os dispositivos on-board são listados também. A detecção é feita pelo kernel, caso não exista módulos para o dispositivo, na saída mostrará uma mensagem com de dispositivo desconhecido. O mesmo acontece com o comando “lsusb”, porém, este exibe a lista de dispositivos conectados as portas USB's.
Ao digitar o comando sem parâmetros aparece uma lista dos dispositivos, onde: 1º campo: Endereço do Barramento; 2º Tipo de Dispositivo; 3º Fabricante e Modelo; 4º O número de revisão.

Cada dispositivo conectado possui um ID de acordo com o fabricante/dispositivo. Para que apareça na saída, basta acrescentar o parâmetro “-nn”, ficando “lspci -nn”.

Note em destaque o ID de cada dispositivo dentro de colchetes, com um delimitador “:”. No meu caso, tenho uma placa mãe intel, e os ID's dos dispositivos pertencente a placa começam com “8086”. Apenas as minhas placas de rede começam com ID diferente.
No caso do “lsusb”, para se obter o ID basta combinar o comando lsusb com o parâmetro -v.
O comando hwinfo:
Um outro utilitário para buscar informação sobre o hardware é o “hwinfo”. O comando sem parâmetros retorna toda a informação do seu hardware, neste caso é necessário redirecionar a saída para um arquivo, pois retorna muita informação. ex. “sudo hwinfo > hardwareinfo”. Este comando gerou na minha estação um relatório de 3133 linhas de informação sobre o meu hardware. Na figura 1, o endereço retornado na saída do barramento do vídeo é PCI 00:02.0, e procurando por essa informação no arquivo gerado pelo “hwinfo” encontrei mais informações sobre o meu dispositivo, entre elas o modalias = ”pci:v00008086d00002572sv00001043sd000080A5bc03s c00i00”. O modalias referencia o módulo “selvagem” utilizado pelo kernel. Nesta nomenclatura encontra-se informações relativos dispositivos como Tipo_Barramento/ID. Outra informação importante é o diretório /sys, onde se encontra informação a respeito do hardware principalmente na subpasta devices, onde os barramentos e dispositivos estão organizados em forma de estrutura de arquivo - lembrando que o diretório /sys passou a ser implementado à partir da versão 2.6 do kernel e é um diretório virtual(como o /proc) para informações do sistema.

O comando modprobe:
O comando responsável por ativar ou desativar os módulos é o modprobe. Caso eu queira ativar basta digitar “modprobe nome_módulo”, para remover: “modprobe -r nome_módulo”. O comando modprobe com o parâmetro “-l” (L) mostra a árvore de módulos compilados e disponíveis do kernel. O parâmetro “-c” mostra a lista de módulo com os seus aliases respectivos. Estes aliases são encontrados no diretório “/lib/modules/versao_do_seu_kernel/modules.alias”. Os aliases são criados para facilitar a nomenclatura “selvagem” dos módulos no kernel, como vimos no comando “hwinfo”.
Por ex: A saída abaixo foi filtrada com os módulo skge(Marvell Technology Group Ltda). A parte destacada na figura é a nomenclatura “selvagem” e ao seu lado a nomenclatura simples. A nomenclatura simples pode assumir diversas nomenclatura “selvagens” através destes aliases, como o exemplo abaixo.

A nomenclatura “selvagem” segue um padrão como o tipo de barramento, informações fabricante entre outros, e o alias relativo a ele pertence a outros módulos “selvagens”. Na figura podemos ver na quinta linha da saída é:
...
alias pci:v000011ABd00004320sv*sd*bc*sc*i* skge
...
Observe em destaque algumas informações do ID fabricante.
Se houver a necessidade de buscar um módulo através de um ID(retornado pelo comando lspci -nn), e buscar o módulo necessário basta filtrá-lo através do “egrep” que permite expressões regulares. Por ex: na figura 2(em lspci) a minha placa de rede 3Com retornou o ID [10b7:9055]. Caso eu queira filtrar o módulo relativo a ele, basta filtrar a saída:
modprobe -c | egrep '10B7.*9055'
Lembrando que na saída na figura 2 o ID aparece [10b7:9055](b minúsculo) e quando filtramos as letras deverão ser maiúsculas, no caso, a letra B deve ser maiúscula.
... | egrep '10B7.*9055'
Caso deseje criar um script e aproveitar a saída maiúscula, use o comando “tr a-z A-Z” para filtrar a saída, para evitar essas diferenças na pesquisa egrep, por ex:
lspci -nn | grep net | tr a-z A-Z
O comando modinfo:
Uma vez que eu sei qual módulo usar, o comando “modinfo” poderá me retornar informações como a localização, as nomenclaturas “selvagem”, autor e etc.
modinfo 3c59x
Na saída aparecerá informações como: localização arquivo de driver(na árvore do kernel), autor, licença, aliases “selvagens” relativos, dependências, versão e parâmetros do dispositivo.
Conclusão
Dos comandos mostrados, que são apenas alguns dos recursos que podemos obter informações sobre o hardware, podemos explorar os dispositivos do sistema operacional, analisar a detecção do kernel, os módulos compatíveis(estáveis ou não) e buscar a melhor funcionalidade dos dispositivos.
As situações mostradas aqui visam um maior entendimento do sistema operacional, o que muitas vezes não necessitamos de saber, mas para todos aqueles curiosos e amantes do pinguin esse post é um pouquinho de conhecimento compartilhado, e caso alguém queira acrescentar dicas, o que é muito bem vindo, mande idéias, críticas e sugestões.






2 comments
Post a comment
pearls
www.lpearls.com/Freshwater-Pearl-Necklaces/c109/index.html
www.lpearls.com/FW-Pearl-Beads-&-Strands/c96/index.html
www.lpearls.com/Sterling-silver-jewelry/c121/index.html
www.lpearls.com/Shell-jewelry/c125/index.html
www.lpearls.com/Akoya-&-South-sea-Pearls/c122/index.html
www.lpearls.com/Akoya-&-South-sea-Pearls-Akoya-pearl-earrings/c122_199/index.html
www.lpearls.com/a18/How-to-choose-akoya-pearl/article_info.html
www.lpearls.com/Akoya-&-South-sea-Pearls/c122/index.html
www.lpearls.com
www.lpearls.com/Wish-pearls-wholesale/c131/index.html
www.lpearls.com/FW-Pearl-Beads-&-Strands-Blister-&-keishi-pearls/c96_105/index.html
www.lpearls.com/FW-Pearl-Beads-&-Strands-Loose-freshwater-pearls/c96_108/index.html
www.lpearls.com/Pearl-bracelets-&-rings/c119/index.html
www.lpearls.com/Pearl-earrings-&-pendants/c120/index.html
www.lpearls.com/Jewel-fittings-&-accessories-Necklace-chains/c123_170/index.html
www.lpearls.com/p1866/blue-turquoise-jewelry-bracelet/product_info.html
www.lpearls.com/Pearl-bracelets-&-rings-Freshwater-pearl-bracelets/c119_138/index.html
www.lpearls.com/Pearl-bracelets-&-rings-Twisted-FW-pearl-bracelets/c119_137/index.html
www.lpearls.com/Gem-stone-jewelry-gemstone-strand/c127_224/index.html
www.lpearls.com/p1366/20pcs-Four-colors-Cardboard-Ring-Box/product_info.html
www.lpearls.com/Pearl-bracelets-&-rings-Freshwater-pearl-ring/c119_139/index.html
www.lpearls.com/Sterling-silver-jewelry-Silver-925-pearls-earrings/c121_157/index.html
www.lpearls.com/Coral-&-Turquoise-jewelry/c126/index.html
www.lpearls.com/Coral-&-Turquoise-jewelry-Coral-necklaces/c126_188/index.html
www.lpearls.com/Coral-&-Turquoise-jewelry-Coral-strands/c126_185/index.html
www.lpearls.com/crystal-jewelry/c129/index.html
www.lpearls.com/crystal-jewelry-crystal-earrings/c129_206/index.html
www.lpearls.com/crystal-jewelry-crystal-pendant/c129_231/index.html
www.lpearls.com/Jewel-fittings-&-accessories-Jewelry-mounting-sets/c123_168/index.html
www.lpearls.com/Pearl-bracelets-&-rings-Freshwater-pearl-bracelets/c119_138/index.html
www.lpearls.com/Gem-stone-jewelry/c127/index.html
www.lpearls.com/Jewel-fittings-&-accessories-Jewelry-boxes/c123_171/index.html
www.lpearls.com/crystal-jewelry-Bridal-hair-jewelry/c129_152/index.html
www.lpearls.com/FW-Pearl-Beads-&-Strands-Loose-freshwater-pearls/c96_108/index.html
www.lpearls.com/Pearl-bracelets-&-rings-Freshwater-pearl-ring/c119_139/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Illusion-pearl-necklaces/c109_116/index.html
www.lpearls.com/Sterling-silver-jewelry-Silver-925-pearls-rings/c121_159/index.html
www.lpearls.com/Akoya-&-South-sea-Pearls-Akoya-pearl-necklaces/c122_163/index.html
www.lpearls.com/FW-Pearl-Beads-&-Strands-Blister-&-keishi-pearls/c96_105/index.html
www.lpearls.com/p932/freshwater-keshi-pearl-necklace-with-crystal-beads/product_info.html
www.lpearls.com/p5221/4*8mm-blue-round-and-flat-turquoise-necklace-with-red-coral/product_info.html
www.lpearls.com/Akoya-&-South-sea-Pearls-Loose-akoya-pearls/c122_160/index.html
www.lpearls.com/Akoya-&-South-sea-Pearls-Loose-Tahitian-pearls/c122_161/index.html
www.lpearls.com/Shell-jewelry/c125/index.html
www.lpearls.com/Shell-jewelry-Shell-earrings-&-rings/c125_184/index.html
www.lpearls.com/Akoya-&-South-sea-Pearls/c122/index.html
www.lpearls.com/p1855/hand-knotted-white-pearl-necklace-and-bracelet-set-with-agates/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Style-Pearl-Necklaces/c109_110/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Twisted-pearl-necklaces/c109_111/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Multi-strand-necklaces/c109_112/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Single-strand-necklaces/c109_113/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Tin-cup-necklaces/c109_114/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Opera-or-Rope-necklace/c109_115/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Illusion-pearl-necklaces/c109_116/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-FW-Pearl-jewelry-sets/c109_117/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Ribbon-bead-necklaces/c109_118/index.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Style-Pearl-Necklaces/c109_110/p6114/fashion-style-three-rows-8-9mm-white-freshwater-pearl-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Style-Pearl-Necklaces/c109_110/p5805/white-potato-freshwater-pearl-nacklece-with-black-bead/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Twisted-pearl-necklaces/c109_111/p6703/five-strands-7-8mm-black-freshwater-pearl-twisted-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Twisted-pearl-necklaces/c109_111/p6172/pretty-seven-rows-multicolor-freshwater-pearl-twisted-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Multi-strand-necklaces/c109_112/p7172/7-8mm-freshwater-pearl-necklace-with-crystals/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Multi-strand-necklaces/c109_112/p7175/wholesale-potato-shape-7-8mm-freshwater-pearl-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Multi-strand-necklaces/c109_112/p7175/wholesale-potato-shape-7-8mm-freshwater-pearl-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Single-strand-necklaces/c109_113/p7327/wholesale-8-9mm-white-rice-freshwater-pearl-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Tin-cup-necklaces/c109_114/p5713/plated-silver-tin-cup-necklace-with-crystals/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Tin-cup-necklaces/c109_114/p5712/7-8mm-pink-potato-freshwater-pearl--tin-cup-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Opera-or-Rope-necklace/c109_115/p7166/wholesale-7-8mm-pink-freshwater-pearl-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Opera-or-Rope-necklace/c109_115/p7164/potato-shape-white-7-8mm-freshwater-pearl-necklac/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Illusion-pearl-necklaces/c109_116/p4385/6-7mm-blue-top-drilled-potato-freshwater-pearl-necklace/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-FW-Pearl-jewelry-sets/c109_117/p3214/18kgp-pearl-necklace-set-with-earrings&ring/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-FW-Pearl-jewelry-sets/c109_117/p3211/side-drilled-bread-pearl-necklace-set-with-bracelet/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Ribbon-bead-necklaces/c109_118/p1934/festive-red-ribbon-necklace-with-14mm-18K-GP-argent-hollow-beads/product_info.html
www.lpearls.com/Freshwater-Pearl-Necklaces-Ribbon-bead-necklaces/c109_118/p1936/charming-purple-ribbon-necklace-with-18K-GP-golden-beads/product_info.html
Post a comment
Please type the two words below