Librem 13 built-in microphone noise, and alternatives


#1
  1. I have a librem 13v1. I’m running Qubes. Sound data from the built-in microphone is quite noisy and contains the correct sounds mixed with a loud background hiss. It sounds like the microphone is in the middle of a waterfall.

  2. Things that don’t seem to help:

    (a) It makes no difference whether I record from dom0 or a VM.

    (b) Recording while the fan is not running (temperature below 50 °C) makes no difference.

    ( c) Bypassing PulseAudio makes no difference:

    pasuspender – arecord -fdat -r44100 -Dhw:1,0 -d5 test.wav

    (d) Pushing a PulseAudio filter module that contains a noise suppressor on the stream makes no difference:

    pactl load-module module-echo-cancel aec_method=webrtc source_name=ecsource sink_name=ecsink;
    parecord --device=ecsource test.wav
  3. Does anyone else have this problem or is the built-in microphone sound data on a Librem 13 or 15 usually fairly clear?

  4. Could this be some Linux/ALSA-level configuration issue? Xen? BIOS?

  5. Could this be a wiring issue and how could I tell?

  6. The audio chip seems to support an external microphone, but it seems this capability is not supported by the wiring of the audio jack. Could the audio jack be rewired to support an external microphone?

  7. Does the HDMI port support ARC (Audio Return Channel)? Is there any other way to use the HDMI port for sound input?

  8. Is there any progress on freeing the Bluetooth driver so I could use a Bluetooth microphone?

  9. Does anyone use microphones via wired or wireless Ethernet?

  10. If a USB microphone is the only option, is there a good one with freed drivers (preferably open hardware too)?

  11. Has anyone had success with speech-to-text on a Librem 13 or 15 and, if so, what microphone did you need to make it work?


#2

Does running PureOS help? (if only for fault isolation) Or another Linux distro? (again, for fault isolation)

A lot of USB devices should be recognised out-of-the-box i.e. without a driver. Ideally look for one that says that it works with Linux. Almost noone produces drivers specifically for Linux so “works with Linux” tends to mean “kernel already recognises the device and it just works”.

Can’t help you with the “open hardware” side though.

Can’t help you with “good” either.


#3

A followup.

@mladen listened to an audio file I recorded with my built-in microphone and thought it was noisier than expected. He suggested the wiring might be bent or somehow damaged.

@mladen also told me that the L13v1 (unlike other versions) supports a microphone via the 3.5 mm audio jack. I just confirmed this with a microphone that I plugged in. This gives me much less noise.

Now my new problem is to figure out if it is possible to plug in just a microphone without disabling the internal speakers. Does the hardware support this? Is there some software configuration for this somewhere? Any suggestions?


#4

depends on actual implementation (I don’t know how L13v1 audio circuitry is implemented). From my two linux laptops on one I can (may out different apps to different audio ports) but on another I cannot (seems amp circuitry is switched from port to port when jack is plugged and you cannot override it in software)


#5

I succeeded in getting audio input from the external microphone and output from the internal speakers using “alsamixer -c 1”. (The -c 1 is needed because the default of -c 0 works with the HDMI audio.) Not completely sure which of my changes made the difference. pavucontrol is quite unhelpful with this.