PDA

View Full Version : Rasp Pi 2 + M2tech Hiface 1 - Anyone tried?



pitadavespa
02-11-2015, 15:06
Hi,

I'm trying to use my Hiface 1 (USB to Spdif out) in order to connect my Rasp Pi to my DAC using Moode, Volumio or similar, but I can't seem to be able to make them work.
Is it possible?

I search the net and I think it is possible with Hiface 2, but what about verison 1?


Thanks,
Luis

Rothchild
02-11-2015, 15:18
Looks like it needs a very specific driver.

Instructions and downloads available here: https://github.com/panicking/snd-usb-asyncaudio/wiki

On a second read, it looks like the driver is in the kernel from 3.11 onwards. You might need to add snd-usb-hiface to /etc/modules if it's not enabled out of the box.

pitadavespa
02-11-2015, 15:29
Looks like it needs a very specific driver.

Instructions and downloads available here: https://github.com/panicking/snd-usb-asyncaudio/wiki

On a second read, it looks like the driver is in the kernel from 3.11 onwards. You might need to add snd-usb-hiface to /etc/modules if it's not enabled out of the box.

I already tried it, but I guess I didn't notice the second part.
I'll try it later.

Thanks!

Rothchild
02-11-2015, 16:02
According to here: https://github.com/panicking/snd-usb-asyncaudio

The module is actually SND_USB_HIFACE

pitadavespa
02-11-2015, 17:21
According to here: https://github.com/panicking/snd-usb-asyncaudio

The module is actually SND_USB_HIFACE

Thanks. ;)

pitadavespa
02-11-2015, 21:29
What am I missing here?
Can you please help?

--

root@moode:/dev/snd# apt-get install kernel-headers-$(uname -r)
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package kernel-headers-4.1.10-v7
E: Couldn't find any package by regex 'kernel-headers-4.1.10-v7'

--

Thanks

Rothchild
02-11-2015, 21:51
For some reason Raspbian doesn't have the headers in their repository, if you search around a bit there are some guides about how to get around this (but they're a bit more involved than a simple couple of lines here), like this: https://www.raspberrypi.org/forums/viewtopic.php?f=71&t=17666&p=179845

Did adding the module to /etc/modules not work then?

pitadavespa
02-11-2015, 21:57
For some reason Raspbian doesn't have the headers in their repository, if you search around a bit there are some guides about how to get around this (but they're a bit more involved than a simple couple of lines here), like this: https://www.raspberrypi.org/forums/viewtopic.php?f=71&t=17666&p=179845

Did adding the module to /etc/modules not work then?

Sorry, I'm not sure how to do that, either... :\

Rothchild
02-11-2015, 22:03
At the prompt type: sudo nano /etc/modules

it will prompt you for a password and then open the file to edit

Add: SND_USB_HIFACE

press ctrl+o to save and ctrl+x to exit nano

reboot the pi and cross your fingers...

pitadavespa
02-11-2015, 22:04
I'm now following your link and learning a bit more.
Let's see... hmmm...

pitadavespa
02-11-2015, 22:08
At the prompt type: sudo nano /etc/modules

it will prompt you for a password and then open the file to edit

Add: SND_USB_HIFACE

press ctrl+o to save and ctrl+x to exit nano

reboot the pi and cross your fingers...

I thought modules was a directory and was trying to locate SND_USB_HIFACE inside it...:lol:

Thanks!
I'll try that.

Rothchild
02-11-2015, 22:13
There's also some useful discussion here: http://www.raspyfi.com/hiface-on-linux-getting-hiface-1-working-on-raspyfi-and-debian/

It might be worth throwing snd-usb-hiface in to the module file too?

pitadavespa
02-11-2015, 22:23
Fingers were crossed, but no luck. :\
I'm now starting over with a clean install, just in case I did something wrong.

Rothchild (thank you for your help),

Do you mean snd-usb-hiface and SND_USB_HIFACE, right?
No problem, I'll do that.

One more (silly) question: if it works, how do I know?
I won't need to choose a DAC, right?
Will it just start to play sound through my DAC?


Thanks,
Luis

Light Dependant Resistor
02-11-2015, 23:54
Hi
It is always a good idea to run updates first
when installing later packages ,as any packages
that are dependant will be automatically updated .for you

sudo apt-get update

In page one you had explanation kernel headers were
not the current ones needed to install the hiface software.
applying updates should fix.

if it is a upgrade then

sudo apt-get upgrade

Cheers / Chris

Rothchild
03-11-2015, 07:23
Hi
It is always a good idea to run updates first
when installing later packages ,as any packages
that are dependant will be automatically updated .for you

Cheers / Chris

Generally a good tip but in this case the update wouldn't help as Raspbian kernel sources (which are needed to compile the driver against) aren't bundled in the repository, so one has to go through some additional hoops to get them working more info here: https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=57401

You can check this by doing: sudo apt-cache search kernel-headers

pitadavespa
03-11-2015, 17:40
Guys, thank you for your kind help, but I feel this is too much for me...
I'm not sure, but I think all these information is related with Rasp Pi, not Pi2. Am I wrong?

Thanks,
Luis

Rothchild
03-11-2015, 17:47
Guys, thank you for your kind help, but I feel this is too much for me...
I'm not sure, but I think all these information is related with Rasp Pi, not Pi2. Am I wrong?

Thanks,
Luis

Hi Luis,

No problem, it would be great if we could help get you up and running (but it does look like this is quite involved, maybe Tim in the Moode thread could help us?)

The OS is the same for both (all) Pi versions (although there are some differences for drivers compiled between the two because of the upgrade from v6 to v7 of the broadcom chip that drives them - that's what I've been working on reconciling for the version of FFmpeg used in DietPi recently) - in fact apart from the kernel (which is provided by the pi foundation with the (closed) broadcom drivers rolled in, most of the rest of raspbian is just a lightly repackaged mirror of Debian's ArmHF version.

Rothchild
03-11-2015, 18:26
On a bit of further reading the module name (what should be in /etc/modules) is snd-usb-hiface

And in response to your earlier question as to how you know it's working (it's a good one)

I think you should be able to see if the module has been loaded by using the lsmod command.

If it's loaded then we should assume it is working, if there is still no sound then we may need to configure alsa so it knows to direct the sound there (rather than to the onboard card) TBH I'm not entirely sure how to do this at the moment but certainly aplay -l will show you what the currently selected device is.

pitadavespa
03-11-2015, 18:36
On a bit of further reading the module name (what should be in /etc/modules) is snd-usb-hiface

And in response to your earlier question as to how you know it's working (it's a good one)

I think you should be able to see if the module has been loaded by using the lsmod command.

If it's loaded then we should assume it is working, if there is still no sound then we may need to configure alsa so it knows to direct the sound there (rather than to the onboard card) TBH I'm not entirely sure how to do this at the moment but certainly aplay -l will show you what the currently selected device is.

Thank you for your help.

I guess there are a few things here that I need to try again: http://www.raspyfi.com/hiface-on-lin...fi-and-debian/

TimCurtis
03-11-2015, 20:47
Hi,

I'm trying to use my Hiface 1 (USB to Spdif out) in order to connect my Rasp Pi to my DAC using Moode, Volumio or similar, but I can't seem to be able to make them work.
Is it possible?

I search the net and I think it is possible with Hiface 2, but what about verison 1?


Thanks,
Luis

Hi Luis,

In Moode, USB attached audio devices are automatically configured. Most devices work without issue but a vary small number do not because they require their own special USB sound drivers or a special version of the standard USB driver, none of which are included in mainline Linux.

If you wouldn't mind following a short procedure I can help troubleshoot if issue comes up.

(1) copy the latest Moode 2.4 image to SD card
(2) start from powered off Pi
(3) plug Hiface device into USB port
(4) power up the Pi
(5) http://moode (or moode.local, whichever works on your network)
(6) Menu, Configure, MPD

Does "USB audio device" appear in the "Audio output" field?

If it does, this is an indication that automatic configuration phase completed.

Regards,
Tim

pitadavespa
03-11-2015, 21:05
Tim, that's great help!

I'll try it right now and let you know.
Thanks. ;)

pitadavespa
03-11-2015, 21:18
Hi Luis,

In Moode, USB attached audio devices are automatically configured. Most devices work without issue but a vary small number do not because they require their own special USB sound drivers or a special version of the standard USB driver, none of which are included in mainline Linux.

If you wouldn't mind following a short procedure I can help troubleshoot if issue comes up.

(1) copy the latest Moode 2.4 image to SD card
(2) start from powered off Pi
(3) plug Hiface device into USB port
(4) power up the Pi
(5) http://moode (or moode.local, whichever works on your network)
(6) Menu, Configure, MPD

Does "USB audio device" appear in the "Audio output" field?

If it does, this is an indication that automatic configuration phase completed.

Regards,
Tim

Hi Tim,

No, it does not. Only shows "Onboard audio device".
What can/should I do?

Thank you very much,
Luis

TimCurtis
03-11-2015, 22:10
Hi Tim,

No, it does not. Only shows "Onboard audio device".
What can/should I do?

Thank you very much,
Luis

Hi Luis,

Generally, that result means that Linux was not able to detect the device and not much I can do. This USB device must require a special driver that is not in latest mainline Linux kernel.

Here are the USB sound drivers included in 4.1.10+ kernel that Moode uses.

root@rp4:/lib/modules/4.1.10-v7+# find . -name snd-usb*
./kernel/sound/usb/caiaq/snd-usb-caiaq.ko
./kernel/sound/usb/snd-usbmidi-lib.ko
./kernel/sound/usb/6fire/snd-usb-6fire.ko
./kernel/sound/usb/snd-usb-audio.ko
root@rp4:/lib/modules/4.1.10-v7+#

One option of course is switch to a HifiBerry Digi+ S/PDIF card for the Pi. A lot of Moode users report that this card works really well :-)

Regards,
Tim

pitadavespa
03-11-2015, 22:47
From what I read, it need this driver: ./kernel/sound/usb/snd-usb-audio.ko

So, how can I "activate" it?


Thanks,
Luis

pitadavespa
03-11-2015, 23:12
If I try to install the module, I receive an error;

root@moode:/lib/modules/4.1.10-v7+/kernel/sound/usb# sudo insmod snd-usb-audio.ko
insmod: ERROR: could not insert module snd-usb-audio.ko: Unknown symbol in module


What am I doing wrong?
(I don't even know if this is the right way os installing a driver...)

Thanks,
Luis

TimCurtis
04-11-2015, 00:38
If I try to install the module, I receive an error;

root@moode:/lib/modules/4.1.10-v7+/kernel/sound/usb# sudo insmod snd-usb-audio.ko
insmod: ERROR: could not insert module snd-usb-audio.ko: Unknown symbol in module


What am I doing wrong?
(I don't even know if this is the right way os installing a driver...)

Thanks,
Luis

Hi Luis,

Thats the standard usb audio driver and its already present in the kernel (see below). Linux is not configuring this USB device for some reason, probably because it implements a non-standard USB descriptor in its firmware. This is the case for the small number of other USB audio devices that Linux won't configure.

You can examine boot log for any errors regarding the device. cat /var/log/dmesg.

Tim

root@rp4:/lib/modules/4.1.10-v7+# find . -name snd-usb*
./kernel/sound/usb/caiaq/snd-usb-caiaq.ko
./kernel/sound/usb/snd-usbmidi-lib.ko
./kernel/sound/usb/6fire/snd-usb-6fire.ko
./kernel/sound/usb/snd-usb-audio.ko
root@rp4:/lib/modules/4.1.10-v7+#

Rothchild
04-11-2015, 08:19
Best guide yet (and packages to help) for installing kernel headers and compiling against them:

https://github.com/notro/rpi-source/wiki

Thanks for joining us Tim, yes the issue is a non-standard driver which needs compiling and the lack of kernel header packages in Raspbian. The documentation suggests the driver has been rolled in to the kernel but experience so far seems to suggest it might have been rolled back out again!

pitadavespa
04-11-2015, 18:19
Hi Luis,

Generally, that result means that Linux was not able to detect the device and not much I can do. This USB device must require a special driver that is not in latest mainline Linux kernel.

Here are the USB sound drivers included in 4.1.10+ kernel that Moode uses.

root@rp4:/lib/modules/4.1.10-v7+# find . -name snd-usb*
./kernel/sound/usb/caiaq/snd-usb-caiaq.ko
./kernel/sound/usb/snd-usbmidi-lib.ko
./kernel/sound/usb/6fire/snd-usb-6fire.ko
./kernel/sound/usb/snd-usb-audio.ko
root@rp4:/lib/modules/4.1.10-v7+#

One option of course is switch to a HifiBerry Digi+ S/PDIF card for the Pi. A lot of Moode users report that this card works really well :-)

Regards,
Tim

Maybe that's the way to go. I've also read that RPi's USB ports share the same resources as the Ethernet and that may not be a very good thing to start.
On the other hand, a HifiBerry Digi+ S/PDIF or similar is almost the same price as a DAC, or even the RPi itself!

I'm really lost here...

TimCurtis
04-11-2015, 19:09
Hi Luis,

Would mind running the short procedure below and posting the output from commands (5) through (8) ? I was thinking a bit and want to rule out a possible ALSA issue.

(1) power off the Pi
(2) plug in USB DAC
(3) power up Pi
(4) ssh root@moode (pwd = moode)

(5) lsusb
(6) cat /proc/asound/cards
(7) cat /proc/asound/modules
(8) cat /var/log/dmesg

For #8, just post the "usb" lines. They look similar to below. There will be several groups of them.

[ 3.079837] usb 1-1.3: new full-speed USB device number 5 using dwc_otg
[ 3.268783] usb 1-1.3: New USB device found, idVendor=1852, idProduct=7022
[ 3.287974] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
.
.
.
.

Regards,
Tim

TimCurtis
04-11-2015, 19:18
Best guide yet (and packages to help) for installing kernel headers and compiling against them:

https://github.com/notro/rpi-source/wiki

Thanks for joining us Tim, yes the issue is a non-standard driver which needs compiling and the lack of kernel header packages in Raspbian. The documentation suggests the driver has been rolled in to the kernel but experience so far seems to suggest it might have been rolled back out again!

Hi Marc,

Thanks for the link :-)

Linux giveth and Linux taketh away. lol

Regards,
Tim

pitadavespa
04-11-2015, 20:20
Hi Luis,

Would mind running the short procedure below and posting the output from commands (5) through (8) ? I was thinking a bit and want to rule out a possible ALSA issue.

(1) power off the Pi
(2) plug in USB DAC
(3) power up Pi
(4) ssh root@moode (pwd = moode)

(5) lsusb
(6) cat /proc/asound/cards
(7) cat /proc/asound/modules
(8) cat /var/log/dmesg

For #8, just post the "usb" lines. They look similar to below. There will be several groups of them.

[ 3.079837] usb 1-1.3: new full-speed USB device number 5 using dwc_otg
[ 3.268783] usb 1-1.3: New USB device found, idVendor=1852, idProduct=7022
[ 3.287974] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
.
.
.
.

Regards,
Tim

Hi Tim,

Sure!
Here it goes.

(5) root@moode:~# lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 04b4:930b Cypress Semiconductor Corp.

(6) root@moode:~# cat /proc/asound/cards
0 [ALSA ]: bcm2835 - bcm2835 ALSA
bcm2835 ALSA

(7) root@moode:~# cat /proc/asound/modules
0 snd_bcm2835

(8) cat /var/log/dmesg | grep usb*
[ 0.773455] usbcore: registered new interface driver usbfs
[ 0.779043] usbcore: registered new interface driver hub
[ 0.784461] usbcore: registered new device driver usb
[ 1.137451] usbcore: registered new interface driver smsc95xx
[ 1.608117] High-Speed Isochronous Endpoints
[ 1.681201] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.689064] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.697346] usb usb1: Product: DWC OTG Controller
[ 1.703075] usb usb1: Manufacturer: Linux 4.1.10-v7+ dwc_otg_hcd
[ 1.710128] usb usb1: SerialNumber: 3f980000.usb
[ 1.726822] usbcore: registered new interface driver usb-storage
[ 1.831802] usbcore: registered new interface driver usbhid
[ 1.839526] usbhid: USB HID core driver
[ 2.105090] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 2.315355] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[ 2.323260] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2.615080] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[ 2.735304] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[ 2.743384] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.105076] usb 1-1.4: new high-speed USB device number 4 using dwc_otg
[ 3.225582] usb 1-1.4: New USB device found, idVendor=04b4, idProduct=930b
[ 3.233685] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.242220] usb 1-1.4: Product: USB-SPDIF
[ 3.247429] usb 1-1.4: Manufacturer: M2TECH
[ 3.253215] usb 1-1.4: config 0 descriptor??

Thanks!

pitadavespa
04-11-2015, 20:20
Double posted...

TimCurtis
05-11-2015, 15:40
Hi Tim,

Sure!
Here it goes.

(5) root@moode:~# lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 04b4:930b Cypress Semiconductor Corp.

(6) root@moode:~# cat /proc/asound/cards
0 [ALSA ]: bcm2835 - bcm2835 ALSA
bcm2835 ALSA

(7) root@moode:~# cat /proc/asound/modules
0 snd_bcm2835

(8) cat /var/log/dmesg | grep usb*
[ 0.773455] usbcore: registered new interface driver usbfs
[ 0.779043] usbcore: registered new interface driver hub
[ 0.784461] usbcore: registered new device driver usb
[ 1.137451] usbcore: registered new interface driver smsc95xx
[ 1.608117] High-Speed Isochronous Endpoints
[ 1.681201] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.689064] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.697346] usb usb1: Product: DWC OTG Controller
[ 1.703075] usb usb1: Manufacturer: Linux 4.1.10-v7+ dwc_otg_hcd
[ 1.710128] usb usb1: SerialNumber: 3f980000.usb
[ 1.726822] usbcore: registered new interface driver usb-storage
[ 1.831802] usbcore: registered new interface driver usbhid
[ 1.839526] usbhid: USB HID core driver
[ 2.105090] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 2.315355] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[ 2.323260] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2.615080] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[ 2.735304] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[ 2.743384] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.105076] usb 1-1.4: new high-speed USB device number 4 using dwc_otg
[ 3.225582] usb 1-1.4: New USB device found, idVendor=04b4, idProduct=930b
[ 3.233685] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.242220] usb 1-1.4: Product: USB-SPDIF
[ 3.247429] usb 1-1.4: Manufacturer: M2TECH
[ 3.253215] usb 1-1.4: config 0 descriptor??

Thanks!

Hi Luis,

The line "[ 3.253215] usb 1-1.4: config 0 descriptor??" indicates Linux USB subsystem is not able to read the device descriptor in the DAC's firmware.

If you run lsusb -v there should be line similar to below somewhere in the output.

"Couldn't open device, some information will be missing”

Regards,
Tim

pitadavespa
05-11-2015, 16:03
Thanks Tim,

I'll do that and let you know.

Does that mean there's nothing I can do to make it work?


Kind regards,
Luis

TimCurtis
05-11-2015, 16:56
Thanks Tim,

I'll do that and let you know.

Does that mean there's nothing I can do to make it work?


Kind regards,
Luis

Hi Luis,

It would appear that there is nothing that can be done.

Regards,
Tim

pitadavespa
05-11-2015, 17:18
Hi Luis,

It would appear that there is nothing that can be done.

Regards,
Tim

:glug::glug::glug:


:)

Well, if that confirms, it seems the right move is to decide if I buy a DAC or "just" a board with a digital out (S/PDIF prefered) and use my external DAC.


Thanks everyone,
Luis

Maximum
05-11-2015, 22:52
I have been using raspberry pi and 2 and also the cubox-i with my jkdac32 for a while, its hiface 1 based so uses the same driver. Wasn't aware it was entered into the kernel though, that bit of text about mainline wasn't in when I built the RPI2 sd card. I ended up resorting to installing arch linux and setting up MPD myself. The best bet of the prebuilt ones is probably Rune Audio as it uses Arch as its base, so you should be able to get the kernel headers unlike rasbian, only issue I had is a full upgrade is necessary and that managed to break the web interface last time I tried. :doh: , and you may have to resize the partition if the image is 2GB (not too hard if you know how).

The driver also doesn't work any more on the current kernels. It used a deprecated function which has now been replaced (snd_card_create needs changing to snd_card_new, with the usb interface struct passed in to the function). I managed to tweak it so it works again after an awful lot of googling to locate the problem.

I will try and help if you really want to get it working, but it can be a pain in the bum.

struth
05-11-2015, 22:57
:glug::glug::glug:


:)

Well, if that confirms, it seems the right move is to decide if I buy a DAC or "just" a board with a digital out (S/PDIF prefered) and use my external DAC.


Thanks everyone,
Luis

The dacs that you get for these are super. Ive got both the sabre one and the iq one and they are both great. work easy peasy on moode too.

gilesw
10-07-2016, 15:44
Hi Chaps,

I've not been on here for a long while. I just setup Volumio with a hiface usb dac and it wasn't trivial and most of the guides were out of date. I've stuck my scripts on github:

https://github.com/gilesw/volumio-customizations