У кого есть миникомпьютер Raspberry Pi 3 Model B знают, что данная плата имеет два режима вывода аудио: это через 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 Audio
, по умолчанию выставлен режим 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.