EDIT: Veja nos comentários o que foi postado pelo Luis. Ele indica como contornar o problema sem precisar de patch e recompilar o kernel. =)
Adquiri recentemente um case para HD externo CoolerMaster X-Craft 310 e acabei sendo pego de surpresa quando vi que ele não era devidamente reconhecido. Nos logs apareciam mensagens do tipo:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Bateu a dúvida se o problema era com o hardware, mas isso foi descartado ao verificar que o o case+HD funcionaram no Windão. Procurando na Internet, acabei encontrando várias queixas no (http://forum.coolermaster.com/search.php?st=0&sk=t&sd=d&keywords=x+craft+linux)[fórum] da CoolerMaster sobre problemas com vários outros modelos. Todos eles receberam respostas (sobre o suporte a Linux) do tipo: “Unfortunately it isn’t. We apologize for any inconvenience.”
Resolvi então dar uma olhada no bugzilla do kernel, onde encontrei o bug report 8639 que fala sobre o modelo X-Craft 360 e de uma solução para o mesmo problema que eu estava tendo.
Há um e-mail enviado por Jaroslav Kysela para a lista linux-usb que explica com mais detalhes o problema e a solução. O problema parece residir no fato de que em geral os chips USB 2.0 levam cerca de 5 segundos para responderem à requisição USB_REQ_GET_DESCRIPTOR, entretanto o chip utilizado na linha X-Craft demora cerca de 10 segundos. Assim, com o timeout, não há a correta identificação do dispositivo.
Até o kernel 2.6.27-rc8 a alteração não havia sido incorporada ao código, mas provavelmente algo será feito nesse sentido numa versão futura. Até lá, o patch sugerido dá conta do serviço. O que é feito nele é a simples alteração do timeout de 5 para 12 segundos.
Testei com a versão 2.6.27-rc8, mas a alteração deve funcionar também com a 2.6.26.
- PS1: O patch aqui disponibilizado não é meu (infelizmente =P), mas sim a versão da segunda solução proposta por J. Kysela.
- PS2: o usuário ”tinga” usado no fórum da CoolerMaster é uma homenagem à uma grande personalidade da Unicamp =)
- PS3: Correções sobre eventuais bobagens que eu tenha escrito aqui são bem vindas.
- EDIT PS4: Pessoas, não adianta só aplicar o patch e esperar algo acontecer, precisa recompilar o kernel, instalar e rebootar…