Не удается запустить MOC – “Не найдено подходящего звукового драйвера” в Ubuntu 20.04

Вопрос или проблема

Мне пришлось жестко перезагрузить мой Raspberry Pi (отключив питание), на котором работает Ubuntu Server 20.04, и с тех пор я не могу запустить консольный музыкальный плеер mocp. Программа проходит инициализацию драйверов OSS и ALSA, а затем выдает ошибку с сообщением FATAL_ERROR: No valid sound driver!

Я пытался удалить пакет (через apt-get purge mocp) и заново установить его, но сообщение об ошибке остается. Поиск в Google по этому вопросу выдал несколько очень старых тем (здесь и здесь) на форумах MOC, где предполагается, что проблема может быть связана либо с ALSA, либо со звуковой картой, но я не уверен в этом, так как, когда я запускаю alsamixer, он запускается, и я могу, например, изменить его громкость. Плюс ко всему, если я запускаю другие программы, которые используют аудио, например, mpg123, звук работает нормально.

Подробный лог ошибок, извлеченный с помощью mocp -F, показан ниже, извините, если он немного многословный. Кто-нибудь знает, что может вызывать эту проблему?

Большое спасибо!

31 авг 15:34:23.139072: main.c:1191 main(): Это Music On Console (версия 2.6-alpha3)
31 авг 15:34:23.139216: main.c:1195 main(): Настроено: '--build=arm-linux-gnueabihf' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-silent-rules' '--libdir=${prefix}/lib/arm-linux-gnueabihf' '--runstatedir=/run' '--disable-maintainer-mode' '--disable-dependency-tracking' 'build_alias=arm-linux-gnueabihf' 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/moc-NiZ4Xl/moc-2.6.0~svn-r2994=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -pedantic' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fdebug-prefix-map=/build/moc-NiZ4Xl/moc-2.6.0~svn-r2994=. -fstack-protector-strong -Wformat -Werror=format-security'
31 авг 15:34:23.139240: main.c:1205 main(): Запуск на: Linux 5.4.0-1015-raspi armv7l
31 авг 15:34:23.140180: main.c:1157 log_command_line(): mocp -F
31 авг 15:34:23.140265: main.c:1171 log_popt_command_line(): mocp --foreground
31 авг 15:34:23.159074: decoder.c:700 load_plugins(): Загружено 11 декодеров: aac flac modplug mp3 musepack opus sidplay2 sndfile speex vorbis wavpack
31 авг 15:34:23.159160: server.c:360 server_init(): Запуск MOC Server
31 авг 15:34:23.159210: log.c:233 log_init_stream(): Запись лога в: stdout
31 авг 15:34:23.159384: server.c:300 log_process_stack_size(): Размер стека процесса: 8388608
31 авг 15:34:23.159402: server.c:317 log_pthread_stack_size(): Размер стека PThread: 8388608
Пробую JACK...
31 авг 15:34:23.160789: jack.c:121 error_cb(): ОШИБКА: JACK: Не удается подключиться к серверному сокету err = Нет такого файла или каталога
31 авг 15:34:23.160809: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.160847: jack.c:121 error_cb(): ОШИБКА: JACK: Не удается подключиться к каналу запроса сервера
31 авг 15:34:23.160861: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.163010: jack.c:121 error_cb(): ОШИБКА: JACK: сервер jack не запущен или не может быть запущен
31 авг 15:34:23.163028: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.163298: jack.c:121 error_cb(): ОШИБКА: JACK: JackShmReadWritePtr::~JackShmReadWritePtr - Инициализация не выполнена для -1, пропуск разблокировки
31 авг 15:34:23.163317: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.163332: jack.c:121 error_cb(): ОШИБКА: JACK: JackShmReadWritePtr::~JackShmReadWritePtr - Инициализация не выполнена для -1, пропуск разблокировки
31 авг 15:34:23.163344: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.163369: jack.c:148 moc_jack_init(): ОШИБКА: jack_client_open() завершился неудачей, статус = 0x11
31 авг 15:34:23.163381: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.163393: jack.c:150 moc_jack_init(): ОШИБКА: Не удается подключиться к JACK серверу
31 авг 15:34:23.163404: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
Пробую ALSA...
31 авг 15:34:23.163423: alsa.c:477 alsa_init(): Инициализация устройства ALSA: по умолчанию
31 авг 15:34:23.165678: alsa.c:365 alsa_init_mixer_channel(): ОШИБКА: Не удается найти микшер PCM
31 авг 15:34:23.165710: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.165733: alsa.c:365 alsa_init_mixer_channel(): ОШИБКА: Не удается найти микшер Master
31 авг 15:34:23.165751: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
Пробую OSS...
31 авг 15:34:23.165829: oss.c:206 oss_init(): ОШИБКА: Не удается открыть устройство микшера /dev/mixer: Нет такого файла или каталога
31 авг 15:34:23.165851: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.165899: oss.c:71 open_dev(): ОШИБКА: Не удается открыть /dev/dsp: Нет такого файла или каталога
31 авг 15:34:23.165918: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.165939: oss.c:87 set_capabilities(): ОШИБКА: Не удается открыть устройство.
31 авг 15:34:23.165956: server.c:672 add_event_all(): Не добавлено ни одного события, так как клиентов нет
31 авг 15:34:23.166034: audio.c:926 find_working_driver(): ФАТАЛЬНАЯ ОШИБКА: Нет действующего звукового драйвера!

У меня тоже были проблемы с запуском mocp на моем RPi.

Было несколько проблем:

  • мой пользователь не был в группе audio, поэтому мне приходилось использовать sudo для запуска amixer. Добавление моего пользователя в эту группу решило эту проблему.
  • в моем конфигурационном файле (~/.moc/config, который был копией из /usr/share/doc/moc/examples/config.example) настройки ALSA были PCM и Master.
  • при запуске с sudo этот файл настроек в папке моего пользователя игнорировался
  • при использовании -C или --config файл конфигурации считался “небезопасным”, потому что я запускал от sudo, а файл конфигурации принадлежал моему пользователю, а не root.
  • когда я запускал amixer, он показывал Simple mixer control 'Headphone',0
  • как только я установил настройки ALSA в конфигурации moc, чтобы использовать Headphone вместо Master или PCM, все заработало

Ответ или решение

Чтобы решить проблему "Не найден действительный звуковой драйвер" при запуске Music On Console (mocp) на Raspberry Pi с Ubuntu Server 20.04, выполните следующие шаги:

1. Проверьте наличие нужных драйверов

Убедитесь, что у вас установлены и загружены звуковые драйверы ALSA. Для этого выполните следующую команду:

lsmod | grep snd

Если вы не видите драйверов ALSA, попробуйте установить их с помощью:

sudo apt-get install alsa-base alsa-utils

2. Добавьте пользователя в группу audio

Убедитесь, что ваш пользователь добавлен в группу audio, чтобы иметь доступ к звуковым устройствам. Выполните следующую команду (замените username на ваше имя пользователя):

sudo usermod -aG audio username

После внесения изменений войдите в систему снова или перезагрузите Raspberry Pi.

3. Проверьте конфигурацию MOC

Откройте файл конфигурации MOC, который обычно находится по пути ~/.moc/config. Если он отсутствует, вы можете создать его, скопировав пример:

cp /usr/share/doc/moc/examples/config.example ~/.moc/config

В файле настройки проверьте параметры ALSA. Найдите следующие строки и измените их, если это необходимо:

# Убедитесь, что настройки выглядят следующим образом:
PCM = Headphone  # или другое имя вашего устройства
Master = Headphone  # аналогично, если pcm называется иначе, используйте его имя

Вы можете использовать команду amixer для определения доступных контроллеров звука:

amixer

4. Отключите JACK, если он не используется

Ваш вывод показывает, что MOC пытается подключиться к JACK, который не запущен. Если вы не используете JACK, убедитесь, что он не выбран в конфигурации MOC или удалите его полностью (если нужно). В вашем конфигурационном файле проверьте, нет ли параметров, связанных с JACK.

5. Перезагрузите MOC и проверьте

Теперь попробуйте снова запустить MOC:

mocp

Если проблема не исчезла, попробуйте задать конфигурацию непосредственно через командную строку, используя:

mocp -C ~/.moc/config

6. Убедитесь, что нет конфликтов с правами доступа

Если вы запускали MOC с помощью sudo, убедитесь, что права доступа к файлу конфигурации корректны. Вы можете изменить пользователя файла:

sudo chown username:username ~/.moc/config

Запуск после исправлений

После выполнения этих шагов MOC должен успешно запуститься. Если проблема все еще возникает, проверьте логи и убедитесь, что другие приложения, использующие звук, работают корректно (например, mpg123). Если вы видите ошибки, связанные с командой ALSA, это может указывать на проблемы с конфигурацией или с самим звуковым оборудованием.

Заключение

Если у вас остались вопросы или проблемы, пожалуйста, дайте знать, предоставив дополнительные детали вашей конфигурации и возможные сообщения об ошибках.

Оцените материал
Добавить комментарий

Капча загружается...