Using the Logitech Squeezebox Touch with EDO and hiFace1 based USB DACs/converters

[Updated 2013-09-08 with info about SSH access and request for feedback.]

I’m the owner of a Logitech Squeebox Touch (SBT) media player which feeds an external DAC. I’ve been using the “EDO – Enhanced Digital Out” plugin by “Triode”. which allows for high-res output on the coax and USB ports. It was announced and is actively discussed on the slimdevices forums:

The forum pages lists the DACs and USB converters known to be compatible with EDO. This includes the M2tech Hiface2 USB->SPDIF converter. However, the original hiFace (“hiface1”) and products using  it are not listed as the SBT Linux kernel do not support them. However, there _is_ a Hiface1 driver for linux It is available in source code format from

I’ve ported and built it for the Squeezebox running the SBT kernel shipped with the EDO plugin.

Download and installation instructions (tested with Squeezebox software version 7.7.2 and EDO version 0.8):

  • Plug your hiFace1 (or DAC built upon it) into the SBT USB port
  • Enable SSH login to your SBT.
  • Open a root SSH session (default password: 1234)  and execute the following 5 commands all followed by “return” (newline). The last one will reboot your SBT. Please be aware of any non-intended line-breaks inserted by your browser formatting the text.
  •  wget
  • unzip
  • cat  rcS.local >>  /etc/init.d/rcS.local
  • chmod a+rx  /etc/init.d/rcS.local
  • reboot
  • You should now be able to select your hiFace1 device in the EDO menus. It may appear as ‘snd-usb-asyncaudio’.

Disclaimers, legal stuff etc: the above driver and instructions are provided as-is and I take no responsibility for its usability oe any negative consequces. This work would not have been possible had it not been for M2tech publishing the hiFace driver and Triode for developing the EDO plugin. The M2tech driver are covered by the GNU general public license which allows for the above distributions of modified derivative work in binary and source form as long as specifications of the changes made and instructions on how to get the source code are provided. Please find them in the ZIP file.

The above installation procedure require some SBT software skills. If you mess things up, you may have to reset your SBT to factory defaults.

A note concerning SSH access

  • If you are a windows user, you’re advised to dowload the prorgram “putty.exe” from When you run it, you will be presented with a windows where you can type the address of your SBT and click ‘Open’. You then have to supply the user name (root) and the password (1234). If you would like to paste the above commands into your SBT root session, you should you can do be marking & copy them the Windows way, move the mouse to the putty windows, and click the right mouse button and click the return key.
  • If you are a Macintosh user, start up a command shell  window and type ‘ssh xxx -l root’ where xxx is the IP address of your SBT.

A few debugging hints if things dont work:

  • If you get error messages when executing the commands, do check spelling. Advise: case matters, sorry for making all those mix-case file names.
  • Execute the command ‘lsmod’ in a SSH session to the SBT. Proper output should include the line snd_usb_hiface 11552 3
  • If the trailing number is 0, the driver has been loaded correctly, but you haven’t selected the hiFace device for audio output.
  • If it is missing entirely, the driver has not been loaded into the SBT. This may be because you’ve tidied up things after installation. Try to load it manually, execute the command /sbin/insmod /root/snd-usb-hiface.ko
  •  If it produces no output, the module has been loaded now and the error may be that you haven’t created the rcS.local file properly.
  • If it complains about  ‘unknown symbol in module, or unknown parameter‘, the problem may be that you have not installed the EDO plugin yet. You may execute the command ‘dmesg‘, it wil probably produce messages like ‘snd_usb_hiface: disagrees about version of symbol XXX‘. This means that the SBT runs the stock Logitech kernel or a EDO kernel that is not compatible with the downloaded hiFace1 driver.

If you run into troubles, gotthings working with modifications or have other info that you would share with me, please mail me at The driver is known to work with the Metrum DACs,  Wyred4sound DAC 2 and the original hiFace1 USB->SPDIF bridge. I’ll love to hear the status of the M2Tech DACs (Young etc) and other hiFace1 based DACs. I believe it should work.

A note: it has come to my attention that some DACs will claim that the hiFace1 outputs SPDIF data with a sample rate of 48 khz giving the impression that the SBT or the driver resamples all music to that rate. This is not the case, but a symptom of the fact that the hiFace1 chipset does not supply proper sample rate info. Refer to here (post #4) for details. This may be annoying but harmless.

UFC-crypt or how my code ended up in your Linux box

Back in the dark ages, I read the papers analyzing the Morris Internet Worm. In order to protect my employers systems, I wanted to do proactive password cracking.

This, however, was painfully slow. A SUN 3/50 could do some 5 password checks a second. This was because the Crypt(3) function does 25 slightly modified DES encryptions using the supplied password as the encryption key.

The number 25 had been chosen to make things slow on the machines available back then. The designers did the mistake of choosing a very slow DES implementation. They should have used an optimized one, doing 1000 iterations.

Optimized Crypt implementations had been made but they were only available in closed security research/hackers circles. So I set out to write my own one. Continue reading