Atualizei meu HTPC do kernel 3.7.10 para 3.10.7 e parece que CONFIG_USB_SUSPEND agora saiu das opções do kernel e está incluído no PM.
O principal problema que estou enfrentando é que tenho um disco rígido externo e, ao suspender e ativar o HTPC, ele não está disponível para o sistema. O HDD acorda (você pode ouvi-lo girar novamente), mas quando você tenta acessar o ponto de montagem, obtém o seguinte erro:
ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error
E no dmesg:
[ 253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
Nos kernels anteriores, a configuração de CONFIG_USB_SUSPEND = N resolveria o problema, pois o HDD lidaria com sua hibernação sozinho e o ponto de montagem sempre era acessível. Quando o HDD estava em suspensão e o HTPC precisava de algo do ponto de montagem do HDD, o próprio HDD acordava e operava sem problemas.
No momento, tentei o seguinte sem sucesso:
- Altere manualmente / sys / bus / usb / devices / usb * / power / control para "on" em vez de "auto" .
- Altere manualmente / sys / bus / usb / devices / usb * / power / suspensão automática para "-1" em vez de "0" .
Porém, ao ativar novamente o HTPC, o ponto de montagem fica inacessível novamente. Como solução alternativa, posso desmontar e remontar o ponto de montagem e ele funciona novamente sem problemas, mas tenho certeza de que deve haver uma maneira de evitar que o sistema operacional lide com a suspensão automática do usb.
Alguma idéia de como desativar a suspensão automática do usb no kernel 3.7.10 ou superior?
fonte
/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist
te dá1
? Será quegrep CONFIG_PM_RUNTIME /boot/config-$(uname -r)
dar-lhey
? power-management.txtpower/persist
dá1
e não tenho nenhum arquivo de configuração/boot
.CONFIG_PM_RUNTIME=y
está configurado no.config
arquivo do kernel .Respostas:
Para Ubuntu e Debian ,
usbcore
é compilado no kernel, então criar entradas na/etc/modprobe.d
vontade não trabalho: é preciso mudar os parâmetros de inicialização do kernel.Edite o
/etc/default/grub
arquivo e altere aGRUB_CMDLINE_LINUX_DEFAULT
linha para adicionar ausbcore.autosuspend=-1
opção:Observe que
quit splash
já havia opções presentes. Portanto, mantenha outras opções que você também tem.Depois de salvar o arquivo, atualize o grub:
E reinicie .
Agora verifique o
autosuspend
valor:E deve ser exibido
-1
.Na documentação do kernel, afirma-se que algum dia no futuro esse parâmetro será alterado para
autosuspend_delay_ms
(em vez deautosuspend
).fonte
autosuspend_delay_ms
.De acordo com a documentação da árvore do kernel , o tempo de atraso de suspensão automática é controlado pelo
autosuspend
parâmetro module inusbcore
. Definir o atraso de inatividade padrão inicial como -1 impedirá a suspensão automática de qualquer dispositivo USB. Você ainda deve poder ativar a suspensão automática para dispositivos selecionados.O
usbcore.autosuspend
parâmetro do kernel pode ser definido quando o módulo é carregado manualmente:ou adicionando a seguinte linha a um arquivo de configuração em
/etc/modprobe.d
:Se
usbcore
for compilado no kernel, o parâmetro poderá ser ajustado adicionando o seguinte à linha de comando do kernel:Por fim, a opção pode ser ajustada em tempo de execução, fazendo o seguinte:
A alteração afetará todos os novos dispositivos USB. Os dispositivos já existentes não serão afetados.
fonte
usbcore
compilei no kernel, mas usar amodprobe.d
opção não parece funcionar. Apesar demodprobe -c usbcore | grep autosuspend
exibi-lo como-1
,cat /sys/module/usbcore/parameters/autosuspend
eu recebo #2
autosuspend
está obsoleto. O novo arquivo é oautosuspend_delay_ms
que leva ms em vez de segundos. ref . Maspower/control
definir comoon
deve ter o mesmo efeito.autosuspend=-1
ambosmodprobe.d
ekernel
parâmetro, mas o disco rígido ainda suspende e não acorda muito bem.autosuspend_delay_ms
a-1
? (In/sys/bus/usb/devices/<device>/power/autosuspend_delay_ms
)autosuspend_delay_ms
não está lá. Masautosuspend
é.Eu tenho um problema semelhante com um Microsoft Wheel Mouse Optical USB e PS / 2 compatível desde a atualização do sistema Linux Mint Debian Edition para o kernel
3.10-2-amd64
. Suspeitou-se de uma suspensão automática inadequada pelo gerenciamento de energia USB do kernel . No Debian, isso é compilado como ousbcore
módulo no kernel.Você pode alterar isso permanentemente emitindo na linha de comando:
Alguns kernels podem exigir
autosuspend=0
, no entanto.Se o seu sistema usa
initrd
(provavelmente), reconstrua oinitrd
para o seu kernel.Por exemplo:
Reinicie e verifique com:
que deve render
-1
agora.fonte
initrd
e as ações descritas aqui não funcionam neste caso, pois já foram respondidas antes.