[FUG-BR] [RESOLVIDO] pendrive USB UFS2 com FreeBSD 9.0 erro g_vfs_done =5
Marcel Bonnet
marcelbonnet em gmail.com
Terça Julho 24 23:47:58 BRT 2012
Olá, lista.
Eu estava doido com um problema e, logo antes de postar aqui, eu dei
uma pesquisada nas sysctls com a opção "-ad | grep usb" e, por sorte,
achei a resposta.
Como era um problema realmente intrigante e irritante, eu achei que
poderia ser útil a mais alguém e tomei a liberdade de criar o tópico
como RESOLVIDO, já de cara!
O PROBLEMA
Ao plugar um dispositivo usb, mas não qualquer um, somente pendrive,
com sistema de arquivos UFS2, com ou sem soft updates, no FreeBSD
9-STABLE, e usar o programa unison (para sincronizar mais de 1GB de
arquivos), o dispositivo parava de responder e o kernel jogava um
monte de erros "g_vfs_done [... uns params que não lembro] ...
error=5" . O problema foi verificado em mais de uma máquina rodando
diferentes datas de checkout do src do 9-STABLE.
Com FreeBSD 8.2-RELEASE o problema não ocorre.
AS POSSÍVEIS CAUSAS
Alguns fóruns mencionavam que tal erro seria falha de hardware. Como
ele opera normalmente em USB 2.0 no FreeBSD 8, eu descartei essa
hipótese.
A SOLUÇÃO / OU WORKAROUND
Se partirmos do ponto de vista da velocidade, então temos um
workaround, não uma solução. Mas como meu objetivo, a curto prazo, era
poder usar o dispositivo para sincronizar arquivos entre duas
máquinas, considero o problema solucionado até que eu ache que a
transferência está lenta demais.
Pensei que deveria haver alguma sysctl para alterar a velocidade da
USB, ou de 2.0 para 1.0, ou coisa parecida.
A sysctl é a seguinte:
# sysctl -d hw.usb.ehci.no_hs
hw.usb.ehci.no_hs: Disable High Speed USB
O padrão é =0, logo:
# sysctl hw.usb.ehci.no_hs=1
hw.usb.ehci.no_hs: 0 -> 1
Não passei de 1MB/s, mas executei o unison e sincronizei tudo
"bunitinho" no FreeBSD 9.
--
Marcel Bonnet
"No princípio era o caos... e no meio também."
www.monovox.net.br
Mais detalhes sobre a lista de discussão freebsd