Учебники (How-To & F.A.Q)
   3883

Щелчки в звуке при использование внешней звуковой 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. Если я вдруг перепутал термины, или что-то неправильно сказал — прошу прощения. Я это все познавал на собственном опыте и, после данных операций, у меня все работало.

5 комментариев

avatar
Познавательно. Но разве нельзя отключить USB_AUTOSUSPEND через TLPui (tlp)?
?
Правильные ответы начинаются с правильных вопросов.
0
avatar
Попробовал на свежеустановленном манджаро так сделать, и это не помогло. Проблема так и осталась
0
avatar
Смотрите в сторону правил udev.
0
avatar
Я пару дней назад поставил себе Манджарку и столкнулся с подобной проблемой. несколько часов ковырялся в инете и для себя нашел решение:
В файле /etc/default/grub в строчку GRUB_CMDLINE_LINUX_DEFAULT дописал usbcore.autosuspend=-1
Пример: GRUB_CMDLINE_LINUX_DEFAULT=«quiet splash usbcore.autosuspend=-1»
sudo update-grub
reboot
Таким образом отключаем(как я понимаю) энергосбережение на usb портах.
Возможно кому-то будет полезно.
Последний раз редактировалось
+1
avatar
Дополню загрузчиконезависимым вариантом.
В /etc/modprobe.d/ создаем файл, скажем, usbnosuspend.conf.
Содержимое будет выглядеть так:
options usbcore.autosuspend=-1


Плюсами такого варианта являются, собственно, упомянутая загрузчиконезависимость и то, что cmdline не превращается в простыню, если передается много параметров.
Минус — не поправить «на лету».
Последний раз редактировалось
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.