Ubuntu – No Audio on Acer Chromebook 14 under Ubuntu 17.10


This is a question about running Ubuntu on a Chromebook. I've taken this question to /r/chrubuntu and /r/galliumos, and I haven't gotten any help so far. Someone recommended I ask this question at AskUbuntu, so here goes:

I've installed Ubuntu 17.10 under chrx (dual-booting with Chrome OS). Everything seems to be working fine on my system except audio. The system doesn't appear to see my sound card. The only interface I have is Dummy Audio. arecord -l gives the following:

**** List of CAPTURE Hardware Devices ****
card 1: chtrt5650 [chtrt5650], device 0: Audio (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

So, at most it seems my system is only finding the capture card, not the playback device. When logging in from a tty, I get tons of Audio Port: ASoC: No backend DAIs enabled for Audio Port messages. I've read about some braswell audio issues, and I found reynhout's fixes in Gallium, but from his documentation, they should have been implemented in kernel 4.11 or 4.12. uname -r is 4.13.0-16-generic, so I'm assuming they should already be there. If not, could someone give me some insight as to how to best implement those fixes under Ubuntu 17.10?

The machine is an Acer Chromebook 14 (CB3-431 / EDGAR). I know the sound card isn't dead because it works in Chrome OS.

Thank you in advance for any help you can provide. Cheers!

Best Answer

  • This is only a partial answer as I have not be able to get audio over hdmi to work, or test this except in a liveusb environment.

    In a ubuntu 17.10 liveusb environment run pgrep alsa to verify alsa is not running. Copy the asound.state file from a galliumos braswell install to /var/lib/alsa/asound.state. Then force reload alsa.

    pgrep alsa
    sudo cp /media/ubuntu/UUID/var/lib/alsa/asound.state /var/lib/alsa/asound.state
    sudo alsa force-reload

    Once completed the speakers can be tested from the sound mixer. I have included here a copy of the asound.state as found on my instance of galliumos for reference. Alternatively you may be able to use a copy of the asound.state file from chromeos.

    Once you have sound somewhat working running the following commands will instruct alsactl to attempt to initialize all devices to a default state. Then store the state and reload from that state.

    alsactl init
    sudo alsactl store --file /var/lib/alsa/asound.state
    sudo alsa force-reload