10-07-2021, 08:59 PM
(This post was last modified: 10-07-2021, 09:45 PM by TheOldPresbyope.
Edit Reason: fix typo
)
@Steven Crook
Remember that all the audio device detection, connection, and communication occurs in the Linux kernel, its drivers, and the Advanced Linux Sound Architecture (ALSA) layer.
Aha, and if you read the moOde release notes (/var/www/relnotes.txt) you'll see this snippet:
My experience with manufacturers is that when you merely name a specific Linux-based player they immediately say "talk to the player developer". You need to confirm with Schiit that its Gen5 USB interface works with these versions of RaspiOS and kernel. For reference, RaspiOS 10.6 is based on Debian 10.6 and both are codenamed Buster.
Regards,
Kent
PS - there's plenty of legwork you could do from the command line, for example reading the output of the dmesg command (or reading the /var/log/kern.log file) for the case when the DAC is detected during boot and also for the case when the DAC is not detected.
Here's examples with my Khadas Tone1 USB DAC (firmware updated from original release)
Note the "USB disconnect" line. There seems to be a repeating cycle of discovery and disconnection before things settle down. I don't know why (perhaps it's a little starved for power?). The same pattern is repeated in the kern.log file but with full date/time stamp.
Once this discovery and connection is done, the USB DAC should show up in the summary output from the lsusb command. As well, various audio related endpoints should show up in its verbose mode.
Again, the Khadas Tone1 (note the firmware dev didn't bother to have the interface announce itself by name in the summary line; eg, assigned no string value to the idVendor and idProduct parameters)
And then we're off to aplay and other familiar commands.
Remember that all the audio device detection, connection, and communication occurs in the Linux kernel, its drivers, and the Advanced Linux Sound Architecture (ALSA) layer.
Quote:all of these connection problems started when I upgraded from the last 6.* to 7.0.
Aha, and if you read the moOde release notes (/var/www/relnotes.txt) you'll see this snippet:
Code:
################################################################################
#
# 2020-12-15 TC moOde 7.0.0
#
################################################################################
New features
...
Updates
- UPD: Bump to RaspiOS 10.6
- UPD: Bump to Linux kernel 5.4.77 build #1371
...
My experience with manufacturers is that when you merely name a specific Linux-based player they immediately say "talk to the player developer". You need to confirm with Schiit that its Gen5 USB interface works with these versions of RaspiOS and kernel. For reference, RaspiOS 10.6 is based on Debian 10.6 and both are codenamed Buster.
Regards,
Kent
PS - there's plenty of legwork you could do from the command line, for example reading the output of the dmesg command (or reading the /var/log/kern.log file) for the case when the DAC is detected during boot and also for the case when the DAC is not detected.
Here's examples with my Khadas Tone1 USB DAC (firmware updated from original release)
Code:
pi@rpi4b2:~ $ dmesg
...lots of lines of output
[14187.746985] usb 1-1.3: new high-speed USB device number 21 using xhci_hcd
[14187.877881] usb 1-1.3: New USB device found, idVendor=3353, idProduct=a001, bcdDevice= 2.00
[14187.877901] usb 1-1.3: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[14187.877917] usb 1-1.3: Product: Tone1
[14187.877934] usb 1-1.3: Manufacturer: Khadas
[14187.885092] usb 1-1.3: 1:3 : unsupported format bits 0x100000000
[14258.352071] usb 1-1.3: USB disconnect, device number 21
[14258.658195] usb 1-1.3: new high-speed USB device number 22 using xhci_hcd
[14258.789090] usb 1-1.3: New USB device found, idVendor=3353, idProduct=a001, bcdDevice= 2.00
[14258.789109] usb 1-1.3: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[14258.789126] usb 1-1.3: Product: Tone1
[14258.789142] usb 1-1.3: Manufacturer: Khadas
[14258.793385] usb 1-1.3: 1:3 : unsupported format bits 0x100000000
Note the "USB disconnect" line. There seems to be a repeating cycle of discovery and disconnection before things settle down. I don't know why (perhaps it's a little starved for power?). The same pattern is repeated in the kern.log file but with full date/time stamp.
Once this discovery and connection is done, the USB DAC should show up in the summary output from the lsusb command. As well, various audio related endpoints should show up in its verbose mode.
Again, the Khadas Tone1 (note the firmware dev didn't bother to have the interface announce itself by name in the summary line; eg, assigned no string value to the idVendor and idProduct parameters)
Code:
# Show the detected USB devices
pi@rpi4b2:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 022: ID 3353:a001 <<<=== this is the Khadas interface
Bus 001 Device 003: ID 05dc:a81d Lexar Media, Inc. LJDTT16G [JumpDrive 16GB]
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# Dump just the first stanza to see the manufacturer and product names
pi@rpi4b2:~ $ sudo lsusb -v -d 3353:a001|head -17
Bus 001 Device 023: ID 3353:a001
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x3353
idProduct 0xa001
bcdDevice 2.00
iManufacturer 1 Khadas
iProduct 3 Tone1
iSerial 0
bNumConfigurations 2
# See if there are audio-related features
pi@rpi4b2:~ $ sudo lsusb -v -d 3353:a001|grep -i audio
bFunctionClass 1 Audio
bInterfaceClass 1 Audio
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
...blah blah blah...
And then we're off to aplay and other familiar commands.