[Jackaudio] Can't start with laptop speakers on Thinkpad Carbon X1 7th Gen and Ubuntu 20.04

Dan Zink sludgefree at gmail.com
Sun Sep 13 01:45:04 CEST 2020


Hi all,

I made some headway on this, I was able to start Jack, but... this is the
weirdest thing I've ever seen with hardware audio:

I had to make the period size 1008 samples - not 1024, etc.

I discovered this number by running Jack starting with the dummy server,
like: `jackd -d dummy` and then adding the alsa_in device, like: `alsa_in
-d hw:CARD=sofhdadsp,DEV=0 -r 48000`

alsa_in -d hw:CARD=sofhdadsp,DEV=0 -r 48000
WARNING: buffer size does not match: (requested 2048, got 2040)
WARNING: period size does not match: (requested 1024, got 1008)
selected sample format: 32bit
delay = 4208

So starting up jackd like: `jackd -d alsa --period=1008` boots, but the
sound is horrible from SuperCollider.

Is there any way to update my sound card to use a more standard period
size? Or am I out of luck here? That buffer size is also very... unusual.


On Mon, Sep 7, 2020 at 5:10 PM Dan Zink <sludgefree at gmail.com> wrote:

> Hello all,
>
> Sometimes I want to use jackd with the laptop speakers or headphones,
> instead of my audio interface. I can't get it to start on my new laptop
> (using the audio interface works perfectly, thanks community :) ).
>
> I've successfully and mostly painlessly gotten jackd working on a few
> different machines, but this one has me stumped. I'm going to try to
> document as much as I can here so please forgive me if I miss something.
>
>
> I'm using this version of jackd
>
> $jackd -V
> jackdmp version 1.9.12 tmpdir /dev/shm protocol 8
>
>
>
> and this version of Ubuntu:
>
> $uname -a
> Linux daniel-ThinkPad-X1-Carbon-7th 5.4.0-45-generic #49-Ubuntu SMP Wed
> Aug 26 13:38:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
>
>
>
> Starting up selecting the first device under `aplay` throws this error
> (using -R instead of -r doesn't seem to affect very much):
>
> $jackd --verbose -r -P 80 -d alsa -d hw:sofhdadsp,0
> jackdmp 1.9.12
> Copyright 2001-2005 Paul Davis and others.
> Copyright 2004-2016 Grame.
> Copyright 2016-2017 Filipe Coelho.
> jackdmp comes with ABSOLUTELY NO WARRANTY
> This is free software, and you are welcome to redistribute it
> under certain conditions; see the file COPYING for details
> no message buffer overruns
> no message buffer overruns
> no message buffer overruns
> JACK server starting in non-realtime mode
> self-connect-mode is "Don't restrict self connect requests"
> Jack: JackPosixThread::StartImp : create non RT thread
> Jack: JackPosixThread::ThreadHandler : start
> Jack: playback device hw:sofhdadsp,0
> Jack: capture device hw:sofhdadsp,0
> Jack: JackDriver::Open capture_driver_name = hw:sofhdadsp,0
> Jack: JackDriver::Open playback_driver_name = hw:sofhdadsp,0
> Jack: Check protocol client = 8 server = 8
> Jack: JackEngine::ClientInternalOpen: name = system
> Jack: JackEngine::AllocateRefNum ref = 0
> Jack: JackLinuxFutex::Allocate name = jack_sem.1000_default_system val = 0
> Jack: JackEngine::NotifyAddClient: name = system
> Jack: JackGraphManager::SetBufferSize size = 1024
> Jack: JackConnectionManager::DirectConnect first: ref1 = 0 ref2 = 0
> Jack: JackGraphManager::ConnectRefNum cur_index = 0 ref1 = 0 ref2 = 0
> Jack: JackDriver::SetupDriverSync driver sem in flush mode
> audio_reservation_init
> Acquire audio card Audio0
> creating alsa driver ...
> hw:sofhdadsp,0|hw:sofhdadsp,0|1024|2|48000|0|0|nomon|swmeter|-|32bit
> configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
> ALSA: final selected sample format for capture: 32bit integer little-endian
> ALSA: cannot set period size to 1024 frames for capture
> ALSA: cannot configure capture channel
> Jack: JackDriver::Close
> Jack: JackConnectionManager::DirectDisconnect last: ref1 = 0 ref2 = 0
> Jack: JackGraphManager::DisconnectRefNum cur_index = 0 ref1 = 0 ref2 = 0
> Jack: JackEngine::ClientInternalClose ref = 0
> Jack: JackEngine::ClientCloseAux ref = 0
> Jack: JackGraphManager::RemoveAllPorts ref = 0
> Released audio card Audio0
> audio_reservation_finish
> Jack: ~JackDriver
> Cannot initialize driver
> Jack: no message buffer overruns
> Jack: JackPosixThread::Stop
> Jack: JackPosixThread::ThreadHandler : exit
> JackServer::Open failed with -1
> Jack: Succeeded in unlocking 82280346 byte memory area
> Jack: JackShmMem::delete size = 0 index = 0
> Jack: ~JackDriver
> Jack: Succeeded in unlocking 1187 byte memory area
> Jack: JackShmMem::delete size = 0 index = 1
> Jack: Cleaning up shared memory
> Jack: Cleaning up files
> Jack: Unregistering server `default'
> Failed to open server
>
>
>
> Using a dummy server succeeds:
>
> $jackd -r -P 80 -d dummy
> jackdmp 1.9.12
> Copyright 2001-2005 Paul Davis and others.
> Copyright 2004-2016 Grame.
> Copyright 2016-2017 Filipe Coelho.
> jackdmp comes with ABSOLUTELY NO WARRANTY
> This is free software, and you are welcome to redistribute it
> under certain conditions; see the file COPYING for details
> no message buffer overruns
> no message buffer overruns
> no message buffer overruns
> JACK server starting in non-realtime mode
> self-connect-mode is "Don't restrict self connect requests"
>
>
>
> When I list my devices (with the interface unplugged), with aplay -l I
> get:
>
> $aplay -l
> **** List of PLAYBACK Hardware Devices ****
> card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
>   Subdevices: 0/1
>   Subdevice #0: subdevice #0
> card 0: sofhdadsp [sof-hda-dsp], device 1: HDA Digital (*) []
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
> card 0: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) []
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
> card 0: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) []
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
> card 0: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) []
>   Subdevices: 1/1
>   Subdevice #0: subdevice #0
>
>
>
> here's the relevant lsmod:
>
> $lsmod | grep snd
> snd_seq_dummy          16384  0
> snd_usb_audio         266240  0
> snd_usbmidi_lib        36864  1 snd_usb_audio
> snd_seq_midi           20480  0
> snd_seq_midi_event     16384  1 snd_seq_midi
> snd_seq                69632  3
> snd_seq_midi,snd_seq_midi_event,snd_seq_dummy
> snd_rawmidi            36864  2 snd_seq_midi,snd_usbmidi_lib
> snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
> snd_hda_intel          53248  0
> mc                     53248  5
> videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common
> snd_soc_skl_hda_dsp    24576  6
> snd_hda_codec_hdmi     61440  1
> snd_soc_hdac_hdmi      36864  1 snd_soc_skl_hda_dsp
> snd_hda_codec_realtek   126976  1
> snd_hda_codec_generic    81920  1 snd_hda_codec_realtek
> snd_soc_dmic           16384  1
> snd_sof_pci            20480  2
> snd_sof_intel_hda_common    69632  1 snd_sof_pci
> snd_soc_hdac_hda       24576  1 snd_sof_intel_hda_common
> snd_sof_intel_hda      20480  1 snd_sof_intel_hda_common
> snd_sof_intel_byt      20480  1 snd_sof_pci
> snd_sof_intel_ipc      20480  1 snd_sof_intel_byt
> snd_sof               106496  4
> snd_sof_pci,snd_sof_intel_hda_common,snd_sof_intel_byt,snd_sof_intel_ipc
> snd_sof_xtensa_dsp     16384  1 snd_sof_pci
> snd_hda_ext_core       28672  4
> snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda
> snd_soc_acpi_intel_match    32768  2 snd_sof_pci,snd_sof_intel_hda_common
> snd_soc_acpi           16384  2 snd_sof_pci,snd_soc_acpi_intel_match
> snd_soc_core          245760  6
> snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_soc_dmic,snd_soc_skl_hda_dsp
> snd_compress           24576  1 snd_soc_core
> ac97_bus               16384  1 snd_soc_core
> snd_pcm_dmaengine      16384  1 snd_soc_core
> snd_intel_dspcfg       24576  3
> snd_hda_intel,snd_sof_pci,snd_sof_intel_hda_common
> snd_hda_codec         131072  6
> snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda,snd_soc_skl_hda_dsp
> snd_hda_core           90112  11
> snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda,snd_soc_skl_hda_dsp
> snd_hwdep              20480  2 snd_usb_audio,snd_hda_codec
> snd_pcm               106496  11
> snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_core,snd_hda_core,snd_pcm_dmaengine
> ledtrig_audio          16384  4
> snd_hda_codec_generic,snd_hda_codec_realtek,snd_sof,thinkpad_acpi
> snd_timer              36864  2 snd_seq,snd_pcm
> snd                    90112  28
> snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_compress,thinkpad_acpi,snd_soc_core,snd_pcm,snd_soc_skl_hda_dsp,snd_rawmidi
> soundcore              16384  1 snd
>
>
>
> And finally, the lspci
>
> $sudo lspci
> 00:00.0 Host bridge: Intel Corporation Coffee Lake HOST and DRAM
> Controller (rev 0c)
> 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620
> (Whiskey Lake) (rev 02)
> 00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200
> v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 0c)
> 00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500
> v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
> 00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP
> Thermal Controller (rev 11)
> 00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI
> Controller (rev 11)
> 00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 11)
> 00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi
> [Wireless-AC] (rev 11)
> 00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP
> Serial IO I2C Controller #0 (rev 11)
> 00:15.1 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP
> Serial IO I2C Controller #1 (rev 11)
> 00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI
> Controller #1 (rev 11)
> 00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root
> Port #9 (rev f1)
> 00:1d.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root
> Port #13 (rev f1)
> 00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev
> 11)
> 00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition
> Audio Controller (rev 11)
> 00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 11)
> 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP
> SPI Controller (rev 11)
> 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6)
> I219-V (rev 11)
> 03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC
> SN720 NVMe SSD
>
>
> Has anyone else succeeded in getting jackd running with this particular
> hardware? Thanks!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/jackaudio/attachments/20200912/fb4fbb63/attachment-0001.html>


More information about the JackAudio mailing list