4265
Щелчки в звуке при использование внешней звуковой USB карты
Я использую внешнюю звуковую карту Focusrite Scarlett Solo. И на Manjaro у меня возникла одна проблема — когда в системе некоторое время не было никаких звуков, то раздавался щелчок. А когда включаешь звук, то перед его проигрыванием раздавался еще один, а иногда даже система переставала видеть аудиокарту и вообще не воспроизводила звук. Я так и не нашел, как ни русско, так и на англо язычных форумах, как это можно исправить, поэтому пришлось разбираться самому. И вот, собираюсь поделиться решением данной проблемы для тех, у кого может появиться такая же проблема.
Как я правильно понял, эти щелчки происходят из-за того, что USB через некоторое время уходит в энергосберегающий режим и, как бы, отключает все неиспользуемые USB девайсы. Так что, для решения этой проблемы нам нужно отключить этот сберегающий режим. Делается это следующим образом.
Для начала, нужно зайти в режим суперпользователя. Иначе, система не даст ничего редактировать.
sudo su
Система попросит ввести пароль, если он у вас стоит.
И далее останется только ввести нужные команды
echo on > /sys/bus/usb/devices/*-*/power/level
Где вместо звездочек нужно ввести порядковый номер вашего USB устройства. Так как, этот номер постоянно меняется в зависимости от количества устройств, я советую включать сразу все.
Выглядеть это будет примерно вот так:
echo on > /sys/bus/usb/devices/1-2/power/level
echo on > /sys/bus/usb/devices/2-2/power/level
echo on > /sys/bus/usb/devices/3-2/power/level
echo on > /sys/bus/usb/devices/4-2/power/level
echo on > /sys/bus/usb/devices/5-2/power/level
К сожалению, при перезагрузке системы, все эти значения обнуляются и нужно вводить их заново. Мне не удалось адекватно создать исполняемый файл с разрешением .sh так как вся эта махинация требует прав суперпользователя, а через такой файл оно не заходит. Если вы знаете, как решить эту проблему, можете написать об этом.
Спасибо за внимание. Надеюсь, это будет кому-нибудь полезно.
P.S. Если я вдруг перепутал термины, или что-то неправильно сказал — прошу прощения. Я это все познавал на собственном опыте и, после данных операций, у меня все работало.
Как я правильно понял, эти щелчки происходят из-за того, что USB через некоторое время уходит в энергосберегающий режим и, как бы, отключает все неиспользуемые USB девайсы. Так что, для решения этой проблемы нам нужно отключить этот сберегающий режим. Делается это следующим образом.
Для начала, нужно зайти в режим суперпользователя. Иначе, система не даст ничего редактировать.
sudo su
Система попросит ввести пароль, если он у вас стоит.
И далее останется только ввести нужные команды
echo on > /sys/bus/usb/devices/*-*/power/level
Где вместо звездочек нужно ввести порядковый номер вашего USB устройства. Так как, этот номер постоянно меняется в зависимости от количества устройств, я советую включать сразу все.
Выглядеть это будет примерно вот так:
echo on > /sys/bus/usb/devices/1-2/power/level
echo on > /sys/bus/usb/devices/2-2/power/level
echo on > /sys/bus/usb/devices/3-2/power/level
echo on > /sys/bus/usb/devices/4-2/power/level
echo on > /sys/bus/usb/devices/5-2/power/level
К сожалению, при перезагрузке системы, все эти значения обнуляются и нужно вводить их заново. Мне не удалось адекватно создать исполняемый файл с разрешением .sh так как вся эта махинация требует прав суперпользователя, а через такой файл оно не заходит. Если вы знаете, как решить эту проблему, можете написать об этом.
Спасибо за внимание. Надеюсь, это будет кому-нибудь полезно.
P.S. Если я вдруг перепутал термины, или что-то неправильно сказал — прошу прощения. Я это все познавал на собственном опыте и, после данных операций, у меня все работало.
5 комментариев
В файле /etc/default/grub в строчку GRUB_CMDLINE_LINUX_DEFAULT дописал usbcore.autosuspend=-1
Пример: GRUB_CMDLINE_LINUX_DEFAULT=«quiet splash usbcore.autosuspend=-1»
sudo update-grub
reboot
Таким образом отключаем(как я понимаю) энергосбережение на usb портах.
Возможно кому-то будет полезно.
В /etc/modprobe.d/ создаем файл, скажем, usbnosuspend.conf.
Содержимое будет выглядеть так:
Плюсами такого варианта являются, собственно, упомянутая загрузчиконезависимость и то, что cmdline не превращается в простыню, если передается много параметров.
Минус — не поправить «на лету».