|
[19/03]
:. Resumo do dia [19/03] :. Marvell promete tablet de 99 dólares para estudantes [19/03] :. GM desenvolve realidade aumentada para automóveis [19/03] :. YouTube: 24 horas de vídeos exibidos por minuto [19/03] :. Microsoft fala brevemente sobre o SP1 do Windows 7 [18/03] :. Modo XP do Windows 7 agora não precisa de Intel-VT/AMD-V [18/03] :. Resumo do dia [18/03] :. Estudo: encurtadores de URL tornam a Internet lenta [18/03] :. Need for Speed gratuito e online atinge beta público [18/03] :. Pesquisa: 50 bilhões de aplicativos para portáteis em 2012 [18/03] :. IE9 não rodará no Windows XP [17/03] :. Resumo do dia [17/03] :. Serviço nos EUA testa ingressos de cinema pelo celular [17/03] :. Samsung desenvolve tablet com o mesmo poder dos desktops [17/03] :. Windows Phone 7 não terá suporte ao recurso copiar/colar :. Mais noticias » |
Podemos dividir o processo de ativação de um dispositivo no Linux em três passos: em primeiro lugar é carregado o módulo que dá suporte a ele, em seguida é criado um device (como "/dev/sda"), um arquivo especial através do qual ele é acessado e, opcionalmente, é executado algum script ou ação adicional. Ao plugar uma webcam, seria carregado (por exemplo) o módulo "spca5xx" e criado o device "/dev/video0", através do qual os programas podem acessar a câmera. Ao plugar um pendrive seria carregado o módulo "usb-storage e, assim por diante. Em muitos casos, é preciso carregar mais de um módulo. Para sincronizar o Kpilot com um Palm USB, por exemplo, é preciso carregar os módulos usbserial e visor. Um device é a combinação de dois endereços de Kernel: um major number e um minor number. O major number é usado para indicar uma categoria de dispositivos, enquanto o minor number identifica o dispositivo em si. Por exemplo, o major number "180" é usado em relação a impressoras USB. A primeira impressora conectada recebe o device "/dev/usb/lp0", que é formado pela combinação do major number "180" e o minor number "1". A segunda impressora conectada recebe o device "/dev/usb/lp1", que é formado pelo major number "180" e pelo minor number "2" e assim por diante. Tradicionalmente, o responsável por criar e manter os devices correspondentes a cada dispositivo era o devfs. Ele cumpre a função usando uma abordagem bem simples: o diretório "/dev" contém devices prontos para todos os dispositivos suportados, mesmo que poucos deles estejam realmente em uso. Os devices vão sendo atribuídos conforme novos dispositivos são ativados. O hotplug entra em cena com a função de detectar novos dispositivos. É ele o responsável por carregar os módulos apropriados, ajustar permissões e executar tarefas diversas sempre que um novo dispositivo é conectado. Sem o hotplug, seu pendrive ainda funciona normalmente, mas você passa a ter o trabalho de ter que carregar os módulos e montar o dispositivo sempre que quiser acessá-lo e sua impressora passa a aparecer no gerenciador de impressão apenas depois que você carrega os módulos apropriados e a configura manualmente através do kaddprinterwizard, ou outro gerenciador. O hotplug surgiu originalmente como um script responsável por detectar e ativar dispositivos USB conforme eram plugados no micro. Embora tenha um funcionamento interno relativamente simples, o hotplug se mostrou bastante eficiente e passou a ser expandido para assumir a configuração de outros dispositivos. Atualmente, o hotplug não se limita a apenas pendrives, impressoras e câmeras, dá suporte a todo tipo de dispositivo firewire, PCMCIA, PCI e SCSI. A partir do Kernel 2.6, o hotplug se tornou um componente padrão do sistema. Ele vem pré-instalado em qualquer distribuição que se preze. Mesmo o Slackware que é espartano em termos de ferramentas automáticas de detecção passou a incluí-lo a partir da versão 9.2. Verifique apenas se o serviço "hotplug" está ativo e, se necessário, ative-o com o comando: # /etc/init.d/hotplug start ou
(no Slackware) Os arquivos de configuração do hotplug estão concentrados dentro da pasta "/etc/hotplug". O hotplug trabalha com os códigos de identificação dos dispositivos, carregando módulos ou executando scripts com funções diversas sempre que dispositivos conhecidos são conectados. Na maioria das distribuições, é incluído o arquivo "/etc/hotplug/usb.distmap", que contém uma grande quantidade de regras pré-configuradas. Você pode adicionar regras adicionais usando o arquivo "/etc/hotplug/usb.usermap". A possibilidade mais interessante é executar scripts personalizados quando determinados dispositivos são plugados. Isto permite fazer desde coisas simples, como tocar um som, ou abrir um determinado programa, até incluir scripts mais complexos, que fazem backups automáticos. Veremos isso com mais detalhes logo adiante. Outro arquivo útil dentro da configuração do hotplug é o "/etc/hotplug/blacklist", onde são especificados módulos que não devem ser carregados automaticamente pelo hotplug. Este arquivo permite solucionar problemas causados por módulos "mal comportados", que causam travamentos ou problemas diversos ao serem carregados. Isto é relativamente comum com relação a módulos proprietários, como os drivers para softmodems e para algumas placas wireless, que em muitos casos chegam a congelar o sistema caso o dispositivo a que dão suporte não esteja presente, ou ao tentarem (incorretamente) ativarem um dispositivo similar, mas que não é inteiramente compatível com ele. Um exemplo é o módulo "Intel537", que dá suporte a modems Intel Ambient. Os modems Intel Ambient "legítimos" possuem um chip DSP grande, com a marca "Ambient" decalcada. Existem muitos modems com chips Intel537AA ou 537EA (fáceis de reconhecer, pois possuem chips bem menores) que não são compatíveis com o driver. Ao tentar carregar o módulo Intel537 com um destes modems instalado, o sistema em muitos casos simplesmente trava, mesmo que o modem nem esteja em uso. Em geral, as distribuições já vem com o arquivo populado com vários drivers que reconhecidamente possuem problemas. No Kurumin, por exemplo, eu incluo o módulos dos softmodems, que podem ser carregados manualmente através dos ícones no menu:
Além dos periféricos USB, o hotplug é capaz de detectar outros tipos de dispositivos, que são configurados através de arquivos como o pci.agent, scsi.agent, tape.agent, ieee1394.agent, net.agent e wlan.agent. Todos estes arquivos são na verdade scripts, que são executados durante o boot e conforme o hotplug encontra novos dispositivos. Individualmente, os scripts são rápidos, mas executá-los em massa faz com que a inicialização das versões recentes do hotplug seja relativamente demorada, aumentando o tempo de boot da máquina. Conforme o hotplug cresce em complexidade e incorpora mais scripts, a tendência é que o tempo se torne cada vez maior. Isso é apontado como um dos pontos negativos do hotplug em relação ao udev, que vem ganhando espaço e substituindo-o em muitas distribuições.
|
||||||||