Как в Raspberry Pi 3 Model B настроить режим вывода аудио

Posted by

У кого есть миникомпьютер знают, что данная плата имеет два режима вывода аудио: это через HDMI подключение к монитору так и через разъем к которому можно подключить, как наушники так и колонки. И с помощью этих режимов как раз и идет аудио, можно указать принудительно конкретный или использовать режим Auto выбора. Но меня интересует только ручной способ указания. Вот об этом и пойдет речь в текущей заметке, чтобы если что нужно и быстро иметь пошаговые действия:

Следующие действия работают, как на релизе Raspbian Jessie так и Stretch.

Есть два способа поменять аудио выход — через командную строку и через raspi-config.

pi@raspberrypi:~ $ lsb_release -a

No LSB modules are available.

Distributor ID: Raspbian

Description: Raspbian GNU/Linux 9.1 (stretch)

Release: 9.1

Codename: stretch

pi@raspberrypi:~ $ sudo apt-get -y purge "pulseaudio*"

pi@raspberrypi:~ $ aplay -l

**** List of PLAYBACK Hardware Devices ****

card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]

Subdevices: 8/8

Subdevice #0: subdevice #0

Subdevice #1: subdevice #1

Subdevice #2: subdevice #2

Subdevice #3: subdevice #3

Subdevice #4: subdevice #4

Subdevice #5: subdevice #5

Subdevice #6: subdevice #6

Subdevice #7: subdevice #7

card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]

Subdevices: 1/1

Subdevice #0: subdevice #0

pi@raspberrypi:~ $ amixer

Simple mixer control 'PCM',0

Capabilities: pvolume pvolume-joined pswitch pswitch-joined

Playback channels: Mono

Limits: Playback -10239 - 400

Mono: Playback -2000 [77%] [-20.00dB] [on]

Подключаю к миникомпьютеру внешную колонку SVEN SPS-607 (или Наушники):

pi@raspberrypi:~ $ sudo raspi-config - 7 Advanced Options — A4 , по умолчанию выставлен режим 0 т. е. Автоматическое определение, но можно и указать принудительно отметив либо 1, либо 2, отмечаю 1 принудительно, т. е. Force 3.5mm (headphone) jack, нажимаю Ok, Finish

После завершения утилиты raspi-config на консоль выдается лог изменения:

numid=3,iface=MIXER,name='PCM Playback Route'

; type=INTEGER,access=rw------,values=1,min=0,max=2,step=0

: values=1

где видно, что значение 1 — это переключиться на разъем 3.5mm, а 2 на разъем HDMI, а 0 — это положиться на автоматику.

На заметку: Также изменять режим Audio можно и через консоль (amixer cset numid=3 1 or amixer cset numid=3 2)

Может случиться, что изменения выше не сыграют своей роли и придется по другому или лучше в дополнении проделать следующее:

pi@raspberrypi:~ $ sudo nano /boot/config.txt

hdmi_drive=1

dtparam=audio=on

pi@raspberrypi:~ $ sudo apt-get install alsa-base alsa-oss alsa-utils alsa-tools -y

pi@raspberrypi:~ $ cat /proc/asound/pcm

00-00: bcm2835 ALSA : bcm2835 ALSA : playback 8

00-01: bcm2835 ALSA : bcm2835 IEC958/HDMI : playback 1

pi@raspberrypi:~ $ sudo modprobe snd_bcm2835

pi@raspberrypi:~ $ lsmod | grep bcm2835

snd_bcm2835 24427 1

snd_pcm 98501 1 snd_bcm2835

snd 70032 5 snd_timer,snd_bcm2835,snd_pcm

bcm2835_gpiomem 3940 0

pi@raspberrypi:~ $ sudo nano /etc/modules

snd-bcm2835

pi@raspberrypi:~ $ sudo reboot

После подключаюсь по VNC к миникомпьютеру и пробую проиграть любой аудио файл, звук должен идти.

aollo@work:~$ scp Music/bonjovi/01.\ It\'s\ My\ Life\ 2000.mp3 pi@10.9.9.161:/home/pi

aollo@work:~$ ssh -l pi 10.9.9.161

pi@10.9.9.161's password:

Linux raspberrypi 4.9.45-v7+ #1031 SMP Fri Aug 25 19:02:16 BST 2017 armv7l

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

Last login: Tue Aug 29 14:09:55 2017 from 10.9.9.162

pi@raspberrypi:~ $

pi@raspberrypi:~ $ wget https://github.com/pbxware/asterisk-sounds-additional/blob/master/goodbye.wav

pi@raspberrypi:~ $ aplay goodbye.wav

pi@raspberrypi:~ $ aplay 01.\ It\'s\ My\ Life\ 2000.mp3

Playing raw data '01. It's My Life 2000.mp3' : Unsigned 8 bit, Rate 8000 Hz, Mono

^CAborted by signal Interrupt…

и звук пошел, только идет одно шипение, хотя как-то я отчетливо слышал как проигрывается. Так в чем же дело?

pi@raspberrypi:~ $ sudo aplay /usr/share/sounds/alsa/Front_Center.wav

Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

а вот тут было воспроизведение, сказало Front Center, как это понимать?

На заметку: Также можно поставить vlc

И вот когда в консоли запускаю cvlc и путь до audio файла воспроизведение идет нормально:

pi@raspberrypi:~ $ cvlc 01.\ It\'s\ My\ Life\ 2000.mp3

VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c)

[005e8d08] pulse audio output error: PulseAudio server connection failure: Connection refused

[005f0d88] core interface error: no suitable interface module

[00544930] core libvlc error: interface "globalhotkeys,none" initialization failed

[005f21e8] dummy interface: using the dummy interface module...

Вроде можно проверить, как:

pi@raspberrypi:~ $ cd /opt/vc/src/hello_pi/

pi@raspberrypi:/opt/vc/src/hello_pi $ make -C libs/ilclient/

pi@raspberrypi:/opt/vc/src/hello_pi $ make -C libs/vgfont/

pi@raspberrypi:/opt/vc/src/hello_pi $ cd hello_audio

pi@raspberrypi:/opt/vc/src/hello_pi/hello_audio $ make

pi@raspberrypi:/opt/vc/src/hello_pi/hello_audio $ ./hello_audio.bin 1

Outputting audio to hdmi — звука нет.

^C

pi@raspberrypi:/opt/vc/src/hello_pi/hello_audio $ ./hello_audio.bin 0

Outputting audio to analogue — звук есть.

^C

pi@raspberrypi:/opt/vc/src/hello_pi/hello_audio $ cd ~

Проверяю звук через другой проигрыватель, к примеру omxplayerзвук есть.

pi@raspberrypi:~ $ omxplayer -o local 01.\ It\'s\ My\ Life\ 2000.mp3

Audio codec mp3 channels 2 samplerate 44100 bitspersample 16

Subtitle count: 0, state: off, index: 1, delay: 0

have a nice day ;)

pi@raspberrypi:~ $ sudo apt-get install mpg321 -y

pi@raspberrypi:~ $ mpg321 01.\ It\'s\ My\ Life\ 2000.mp3

High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.

Version 0.3.2-1 (2012/03/25). Written and copyrights by Joe Drew,

now maintained by Nanakos Chrysostomos and others.

Uses code from various people. See 'README' for more!

THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!

Title : It's My Life Artist : Bon Jovi

Album : 25 Best Songs Year : 2015

Comment : Genre : Soft Rock

Playing MPEG stream from 01. It's My Life 2000.mp3 ...

MPEG 1.0 layer III, 128 kbit/s, 44100 Hz stereo

ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front

То же идет воспроизведение, но вот какая-то ошибка, а что она значит?

pi@raspberrypi:~ $ sudo nano /usr/share/alsa/alsa.conf

#pcm.front cards.pcm.front

pcm.front cards.pcm.default

После перезагрузки, также через aplay только на выходе шипение.

Пока делаю вывод, что не работает через утилиту aplay, а через дополнительно установленные такие как cvlc, vlc, omxplayer,mpg321 все отлично.

Из этого всего делаю вывод, что все работает. Если будут замечены еще какие-либо нюансы то они будут дополнены в этой заметке, а пока собственно всё. С уважением автор блога Олло Александр aka ekzorchik.