Jump to content

Orange Pi Zero (Problem With Onboard Soundcard)


Recommended Posts

Hi Srs!

I have problem in using Armbian 14 with orange pi zero ..

I already used the Armbian system in my OrangepiZero. However, I reinstalled everything again and downloaded the latest version of the operating system here on the site. When I try to use onboard audio (both capture and output) does not work. I have already enabled the analog-codec and it still does not work.

Remembering that I already used the equipment with the Armbian and used the onboard capture of the board perfectly.

 

Thanks!

Link to comment
Share on other sites

14 minutes ago, Aurélio Radioamador said:

I have problem in using Armbian 14 with orange pi zero ..

Armbian is at 5.4x now.. :P I think you use Armbian with 4.14 mainline kernel right?

Link to comment
Share on other sites

Before enabling analog-codec in armbian-config:

# arecord -l

arecord: device_list:270: no soundcards found...

 

After enabled analog-codec in armbian-config:

# arecord -l

**** List of CAPTURE Hardware Devices ****
card 0: Codec [H3 Audio Codec], device 0: CDC PCM Codec-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

 

but not play audio and not capture ..

Do you guys have any suggestions on what it might be?

 

Thanks!

Link to comment
Share on other sites

 

# arecord -L

 

null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=Codec
    H3 Audio Codec,
    Default Audio Device
sysdefault:CARD=Codec
    H3 Audio Codec,
    Default Audio Device
dmix:CARD=Codec,DEV=0
    H3 Audio Codec,
    Direct sample mixing device
dsnoop:CARD=Codec,DEV=0
    H3 Audio Codec,
    Direct sample snooping device
hw:CARD=Codec,DEV=0
    H3 Audio Codec,
    Direct hardware device without any conversions
plughw:CARD=Codec,DEV=0
    H3 Audio Codec,
    Hardware device with all software conversions

 

Link to comment
Share on other sites

do you got (for playback) a /etc/asound.conf with this content?:
 

pcm.!default {
    type hw
    card 0
    device 0
  }
  ctl.!default {
    type hw
    card 0
  }

Did you check with alsamixer the lebel of "Line Out" and "DAC"?

 

Link to comment
Share on other sites

15 hours ago, Aurélio Radioamador said:

 You are not yet playing the audio on the analog outputs (3.5mm jack).

My audio is comming from the analog audio (3.5mm jack)

 

For recording you could try:

arecord -D plughw:0,0 -f cd ./test2.wav

 

BUT arecord doesnt support natively .flac - so you have to use a longer command from
https://askubuntu.com/questions/490850/arecord-flac-format

 

 

Link to comment
Share on other sites

I had the same issue today, with a system working well with xenial but no sound on stretch.

 

The problem was with the wrongly identified active / passive controls, i had to manually adjust the line out volume and enable the line out to get any sound out from the 3.5 jack.

You can use this code to enable the line out on your board:

# enable line out on jack connector (IMPORTANT)
/usr/bin/amixer -c 0 cset numid=4 on
# Set line out volume to maximum (0-31)
/usr/bin/amixer -c 0 cset numid=3 31
# Setting the DAC volume (master PCM channel) (0-63)
/usr/bin/amixer -c 0 cset numid=1 63
# Enable DAC to be routed to output (analog pcm) (on/off)
/usr/bin/amixer -c 0 cset numid=10 on

 

You must also disable the mic1 loopback, otherwise everything coming from your microphone will be forwarded to the line out and you most certainly dont want to do that:

# Microphone settings
#mic1 (internal) volume 0-7
/usr/bin/amixer -c 0 cset numid=7 7
#mic1 CAPTURE switch (on/off) - this will let you use the microphone
/usr/bin/amixer -c 0 cset numid=18 on
#mic1 (input) boost (0-7, 1 recommended)
/usr/bin/amixer -c 0 cset numid=8 1
#mic1 (internal) playback loop switch (direct route to output) (on/off) LEAVE IT OFF to avoid feedback loop between internal microphone and speakers !!!
/usr/bin/amixer -c 0 cset numid=13 off

#mic2 volume 0-7
/usr/bin/amixer -c 0 cset numid=5 7
#mic2 CAPTURE switch (on/off) - this will let you use the microphone
/usr/bin/amixer -c 0 cset numid=19 on
#mic2 boost (0-7, 1 recommended)
/usr/bin/amixer -c 0 cset numid=6 1
#mic2 playback loop switch (direct route to output) (on/off)
/usr/bin/amixer -c 0 cset numid=14 off

# obviously you can disable the capture in either or both of the microphones if you want to have a single source (mic1/mic2/linein)

Simply save it somewhere, make it executable, and insert at /etc/rc.local before the exit 0; line.

I hope someone will find this info valuable.

 

Edited by Gipsz Jakab
corrected some typo and added some comment
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines