Я обновил свой HTPC от ядра 3.7.10 до 3.10.7 и, кажется CONFIG_USB_SUSPEND теперь ушел из опций ядра и включен в личке.
Основная проблема, с которой я сталкиваюсь, заключается в том, что у меня есть внешний жесткий диск, и при приостановке и пробуждении HTPC он недоступен для системы. HDD просыпается (вы слышите, как он снова начинает вращаться), но при попытке доступа к точке монтирования выдается следующая ошибка:
ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error
И на dmesg:
[ 253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
В предыдущих ядрах установка CONFIG_USB_SUSPEND = N решала бы проблему, так как жесткий диск самостоятельно обрабатывал бы режим гибернации, а точка монтирования всегда была доступна. Когда жесткий диск находился в спящем режиме, а HTPC требовалось что-то из точки монтирования жесткого диска, сам жесткий диск просыпался и работал без проблем.
Прямо сейчас я безуспешно пробовал следующее:
- Вручную измените / sys / bus / usb / devices / usb * / power / control на «on» вместо «auto» .
- Вручную измените / sys / bus / usb / devices / usb * / power / autosuspend на «-1» вместо «0» .
Но при повторном пробуждении HTPC точка монтирования снова становится недоступной. В качестве обходного пути я могу размонтировать и перемонтировать точку монтирования, и она снова работает без проблем, но я уверен, что должен быть способ избежать того, чтобы ОС управляла автоподвеской usb.
Любая идея, как отключить USB AutoSuspend на ядре 3.7.10 или выше?
источник
/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist
тебе дает1
? Дает лиgrep CONFIG_PM_RUNTIME /boot/config-$(uname -r)
тыy
? power-management.txtpower/persist
дает1
и у меня нет никакого файла конфигурации в/boot
.CONFIG_PM_RUNTIME=y
настраивается в.config
файле ядра .Ответы:
Для Ubuntu и Debian ,
usbcore
скомпилирован в ядре, поэтому создавать записи на/etc/modprobe.d
воли НЕ работы: мы должны изменить параметры загрузки ядра.Отредактируйте
/etc/default/grub
файл и изменитеGRUB_CMDLINE_LINUX_DEFAULT
строку, чтобы добавитьusbcore.autosuspend=-1
опцию:Обратите внимание, что
quit splash
уже были представлены варианты. Так что оставьте другие варианты у вас тоже.После сохранения файла обновите grub:
И перезагрузка .
Теперь проверьте
autosuspend
значение:И это должно отображаться
-1
.В документации ядра указано, что когда-нибудь в будущем этот параметр изменится на
autosuspend_delay_ms
(вместоautosuspend
).источник
autosuspend_delay_ms
.Согласно документации дерева ядра , время простоя автоподвески определяется
autosuspend
параметром модуля вusbcore
. Установка начальной задержки по умолчанию равной -1 предотвратит автоматическую приостановку работы любого USB-устройства. Вы все еще должны иметь возможность включить автоподвеску для выбранных устройств.Параметр
usbcore.autosuspend
ядра может быть установлен, когда модуль загружается вручную:или добавив следующую строку в файл конфигурации в
/etc/modprobe.d
:Если
usbcore
он скомпилирован в ядро, параметр можно настроить, добавив следующее в командную строку ядра:Наконец, опция может быть скорректирована во время выполнения, выполнив:
Изменения коснутся всех новых USB-устройств. Уже существующие устройства не будут затронуты.
источник
usbcore
скомпилировал в ядро, но использованиеmodprobe.d
опции, похоже, не работает. Несмотря наmodprobe -c usbcore | grep autosuspend
это показывает, как-1
,cat /sys/module/usbcore/parameters/autosuspend
я получаю2
autosuspend
устарела. Новый файл,autosuspend_delay_ms
который занимает мс вместо секунд. исх . Ноpower/control
наборon
должен иметь тот же эффект.autosuspend=-1
оба параметраmodprobe.d
иkernel
параметр, но жесткий диск все еще зависает и не просыпается.autosuspend_delay_ms
на-1
? (In/sys/bus/usb/devices/<device>/power/autosuspend_delay_ms
)autosuspend_delay_ms
не там. Но естьautosuspend
.У меня похожая проблема с Microsoft Wheel Mouse Optical USB и PS / 2, совместимыми с момента обновления системы Linux Mint Debian Edition до ядра
3.10-2-amd64
. Подозревалось неправильное автоматическое приостановление управления питанием USB ядра . В Debian это компилируется какusbcore
модуль в ядро.Вы можете изменить это навсегда, введя в командной строке:
Некоторые ядра могут потребовать
autosuspend=0
, однако.Если ваша система использует
initrd
(скорее всего, так), то пересоберитеinitrd
ядро.Например:
Перезагрузитесь и проверьте с помощью:
который должен дать
-1
сейчас.источник
initrd
и действия, описанные здесь, не работают в этом случае, как мы уже отвечали ранее.