Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 10 of 10
  1. #1

    Portable squeezebox with a Western Digital "Passport Wireless"

    I recently got a Western Digital "Passport Wireless" hard drive (http://www.wdc.com/de/products/products.aspx?id=1330)

    Name:  wd_passport_wireless.JPG
Views: 2234
Size:  37.3 KB

    I bought this because a) i could get it quite cheap and b) WD decided to implement an SSH server and kindly even published the root password (welc0me) - so i thought it could be fun to play around with this thing.

    This device is a typical "Wifi hard drive" (i. e. a low power NAS with a built in wifi card and a battery for portable usage), but it has some well designed features:
    • It has two wifi cards, so it can act as an access point and is able to pass through a connection to another wifi network
    • There is a DLNA server built in (Twonky)
    • It has an SD-card slot which you can use to automatically backup cards to the hard drive


    It is built on an ARM V7 with 512MB of RAM - so i thought that maybe it would be possible to build a portable squeezeserver with this thing. It's a bit bulky (because of the built in battery and the usage of a 2TB drive with 15mm height), but with app. 300 gr. it is quite easy to carry around.

    To make a long story short - I was able to squeeze a squeezeserver in this thing. And it works surprisingly well. The browser interface is rather slow (but usable), but with iPeng it works better than i expected.
    I think the performance is comparable to the first raspberry pi (but the hard drive interface is much faster than that of the pi).
    Scanning my 40K tracks took less than two hours.

    Setting up the squeezeserver was not too complicated (Disclaimer: I am not an expert and this is not a foolproof installation instruction. If you want to do this yourself you should have some decent linux knowledge. It is possible to brick the device and i think i read somewhere that enabling ssh voids the manufacturers warranty):

    The Passport Wireless uses a debian based distribution called "Linaro" (http://www.linaro.org/). I think this is a distribution specifically made for embedded devices.
    Unfortunately it only has 100MB of flash storage and a lot of tools and libraries are missing. I am no linux expert so instead of bootstrapping a better suited environment, i decided to create a simple chrooted environment on the hard drive:

    1) Connect to the wifi of the device and enable SSH in the settings (http://192.168.60.1 by default)

    2) Login via ssh (and then you really should change the root password!)

    3) Attach the drive via USB to a Linux or Windows computer and reformat it with either ext3 or NTFS (It comes with ExFat and AFAIK ExFat does not support symlinks).

    4) Choose a distribution on the download pages of http://linaro.org

    There are community builds available in three flavours: "Nano" (which i think is similar to the one installed on the device), "Server" and "Gnome".

    It looks like you need to register to get the latest version, so for simplicity i downloaded the "server" variant of their 15.04 release:
    http://releases.linaro.org/15.04/ubu...421-702.tar.gz


    5) Connect via SSH, login as root.

    Choose where to install the distribution. I used a directory on the hard drive (but of course you could also use an SD-card)
    Code:
    /DataVolume/linaro_chroot
    untar the downloaded archive in this directory. You can delete the subdirectories dev proc and sys if you like (we will do a chroot install, so we won't need them)

    Create the directories again as mount points for the bind mounts:
    Code:
    mkdir /DataVolume/linaro_chroot/dev
    mkdir /DataVolume/linaro_chroot/proc
    mkdir /DataVolume/linaro_chroot/sys
    Create a directory as a mount point for the hard drive in the chrooted installation:
    Code:
    mkdir /DataVolume/linaro_chroot/DataVolume
    Do the bind mounts:
    Code:
    mount --bind /dev/ /DataVolume/linaro_chroot/dev/
    mount --bind /proc/ /DataVolume/linaro_chroot/proc/
    mount --bind /sys/ /DataVolume/linaro_chroot/sys/
    mount --bind /DataVolume/ /DataVolume/linaro_chroot/DataVolume/
    
    mount --bind /dev/shm  /DataVolume/linaro_chroot/dev/shm
    mount --bind /tmp  /DataVolume/linaro_chroot/tmp
    mount --bind /media  /DataVolume/linaro_chroot/media
    Chroot into the installation directory:
    Code:
    chroot /DataVolume/linaro_chroot/
    (If you want you know can use bash with "bash -l")

    We now have dpkg available and after downloading the squeezeserver package it installed flawlessly with:
    Code:
    dpkg -i /DataVolume/install/logitechmediaserver_7.9.0~1461045178_arm.deb
    6) The port 9000 is already in use by the preinstalled twonky server. You could deactivate twonky in the configuration of the device or you change the port of the squeezeserver installation. I used 9010:
    Code:
    service logitechmediaserver stop
    squeezeboxserver --httpport 9010 --httpaddr 192.168.60.1 --cliaddr 192.168.60.1
    I am not sure if i remember this correctly, but i think the "httpport" option is automatically stored in the prefs of the squeezeserver - otherwise simply check the configuration

    Start the squeezeserver in the chrooted environment (service logitechmediaserver stop) and check if everything works.

    7) To autostart the squeezeserver exit to the original linux (or reboot).

    The installation seems to use an incredibly simple service management: Every script in /etc/init.d is executed, the order is determined by the filename.
    So i wrote a basic wrapper script to start the squeezeserver automatically and copied it to /etc/init.d/S92logitechmediaserver (in the original installation, not the chrooted environment).

    This does the bind mounts, chroots to our own environment and starts the squeezeserver in there:
    Code:
    #! /bin/sh
    
    CHROOT_PATH="/DataVolume/linaro_chroot"
    
    case "$1" in
      start)
        echo "Starting chroot for squeezeserver"
    	
    	if [ ! -e "$CHROOT_PATH/dev"        ]; then mkdir "$CHROOT_PATH/dev"; fi
    	if [ ! -e "$CHROOT_PATH/proc"       ]; then mkdir "$CHROOT_PATH/proc"; fi
    	if [ ! -e "$CHROOT_PATH/sys"        ]; then mkdir "$CHROOT_PATH/sys"; fi
    	if [ ! -e "$CHROOT_PATH/dev/shm"    ]; then mkdir "$CHROOT_PATH/dev/shm"; fi
    	if [ ! -e "$CHROOT_PATH/tmp"        ]; then mkdir "$CHROOT_PATH/tmp"; fi
    	if [ ! -e "$CHROOT_PATH/media"      ]; then mkdir "$CHROOT_PATH/media"; fi
    	if [ ! -e "$CHROOT_PATH/DataVolume" ]; then mkdir "$CHROOT_PATH/DataVolume"; fi
    
    	mount --bind /dev/        "$CHROOT_PATH/dev/"
    	mount --bind /dev/shm     "$CHROOT_PATH/dev/shm"
    	mount --bind /proc/       "$CHROOT_PATH/proc/"
    	mount --bind /sys/        "$CHROOT_PATH/sys/"
    	mount --bind /tmp         "$CHROOT_PATH/tmp"
    	mount --bind /media       "$CHROOT_PATH/media"
    	mount --bind /DataVolume/ "$CHROOT_PATH/DataVolume/"    
    
    	chroot $CHROOT_PATH service logitechmediaserver start
    
    	;;
    	
      stop)
        echo "Stopping chroot for squeezeserver"
    
    	chroot $CHROOT_PATH service logitechmediaserver stop
    
    	umount $CHROOT_PATH/DataVolume/
    	umount $CHROOT_PATH/media
    	umount $CHROOT_PATH/tmp
    	umount $CHROOT_PATH/sys/
    	umount $CHROOT_PATH/proc/
    	umount $CHROOT_PATH/dev/shm
    	sleep 2 #to avoid "resource busy" when unmounting /dev
    	umount $CHROOT_PATH/dev/
    		
        ;;
    	
      *)
        echo "Usage: /etc/init.d/S92logitechmediaserver {start|stop}"
        exit 1
        ;;
    esac
    
    exit 0
    And thats all. I did one more thing. WD implemented a service which scans the drive for images to create preview files for their app. Annoyingly this does not only put load on the CPU, but also you can't exclude directories - so you will get every folder.jpg presented as a photo in their app.

    I decided to remove these services (remove ) by removing the following scripts in /etc/init.d:
    Code:
    S85wdmcserverd  
    S92wdnotifierd
    (remember to backup them before deleting in case you want to have the photo indexing again)

    and then removed the hidden files created by these scripts in my music directories:
    Code:
    find /DataVolume/Audio/ -name ".wdmc" -exec rm -r {} \;
    The twonky server has the ability to restrict media files to certain directories, you can define these in the configuration settings (http://192.168.60.1:9000/)

    For now i don't know how reliable this installation is - i will know that after the next vacation trip :->
    Last edited by sternenjaeger; 2016-04-24 at 07:21.

  2. #2

    Portable squeezebox with aWestern Digital "Passport Wireless"

    sternenjaeger <sternenjaeger.7eooon (AT) no-mx (DOT) forums.slimdevices.com>
    writes:

    > I recently got a Western Digital "Passport Wireless" hard drive
    > (http://www.wdc.com/de/products/products.aspx?id=1330)


    [snip: Fascinating stuff (264 lines)]

    I really like it - sounds really nice. Have you looked at
    http://forum.doozan.com/index.php for inspiration? Maybe you could do
    more with it than you think?

    Looking forward to some updates,

    Rainer

    > >

    ------------------------------------------------------------------------
    > sternenjaeger's Profile:

    http://forums.slimdevices.com/member.php?userid=57562 > View this
    thread: http://forums.slimdevices.com/showthread.php?t=105512 > >

  3. #3
    Quote Originally Posted by rkrug View Post
    I really like it - sounds really nice. Have you looked at
    http://forum.doozan.com/index.php for inspiration?
    No, unfortunately these days i don't have the time anymore to spend nights on cross-compiling kernels, fixing stubborn bootloaders etc. (Although i admit that you can learn a lot about systems engineering by doing that)

    A chroot install is much easier: You sandbox the environment you need inside a host system. The host still provides the kernel and all the driver and hardware related stuff (/dev, /proc and /sys). The squeezeserver "sees" a fully-fledged Debian operating system and this Debian "sees" the kernel of the underlying host.

    And this is what i love about the squeezeserver - because of it's open architecture you can cram it into practically everything. And while the commercial product is long gone the remaining clever guys over in the developers subforum keep on improving the software.

    (Side Note: I just noticed that i should have called my post "Portable Squeezeserver", not "Portable Squeezebox" because ...well.. it doesn't make much sense to install a software player on something that doesn't have audio outputs...)

  4. #4
    Quote Originally Posted by sternenjaeger View Post
    No, unfortunately these days i don't have the time anymore to spend nights on cross-compiling kernels, fixing stubborn bootloaders etc. (Although i admit that you can learn a lot about systems engineering by doing that)

    A chroot install is much easier: You sandbox the environment you need inside a host system. The host still provides the kernel and all the driver and hardware related stuff (/dev, /proc and /sys). The squeezeserver "sees" a fully-fledged Debian operating system and this Debian "sees" the kernel of the underlying host.

    And this is what i love about the squeezeserver - because of it's open architecture you can cram it into practically everything. And while the commercial product is long gone the remaining clever guys over in the developers subforum keep on improving the software.

    (Side Note: I just noticed that i should have called my post "Portable Squeezeserver", not "Portable Squeezebox" because ...well.. it doesn't make much sense to install a software player on something that doesn't have audio outputs...)
    I set this up on a WD Passport drive yesterday evening following your instructions, which were very clear. I'm glad I had a passing acquaintance with the Linux command line!
    Seems to be working pretty smoothly. The first scan took 48 minutes for about 25,000 tracks.

    Robert
    Home: Raspberry Pi 4/pCP7.0/LMS8.0.1/Material with files on QNAP TS-251A
    Touch > DacMagic 100 > Naim Audio Nait 3 > Mission 752 (plus Rega Planar 3 > Rega Fono Mini; Naim CD3)
    2 x Squeezebox Radios, 1 X Squeezebox 3 (retired), spare Pi2/piCorePlayer
    Office: LMS8.0.0 running on Raspberry Pi3; Raspberry Pi 3 player with touchscreen/piCorePlayer/IQaudIO DAC and Amp
    Portable: Raspberry Pi 3B/pCP6.1.0/LMS8.0.0/Material, files on Seagate portable drive, powered via power brick

  5. #5
    Senior Member
    Join Date
    Nov 2015
    Location
    Near Buffalo, NY
    Posts
    189
    I have a question about player performance issues vs file formats:

    Have you experienced any issues playing FLAC vs WAV vs MP3? Assuming your using these formats...

    And what about battery life using the different formats?
    Player: 1 x Transporter w/Trans-knob, 2 x Touch (Active, 3 x Spares), 4 x Boom (Active, 9 x Spares)
    Server: 1 x Win Server (ESXi 6.x) w/LMS, 1 x HP 24" Touch Screen PC w/LMS & SqueezePlay
    Control: 4 x w/iPeng, 1 x Samsung Note 4, 3ea x Fire 7", 8ö tablets, 1 x 10" all w/SqueezeCtrl & Player (Angry Goat)
    Audio: Mark Levinson 23.5 Amp, 380s Pre, 390s CD, B&W 801 II, Acoustic Energy AE-2 signature, SOTA Sapphire table

    Computer geek/tech hoarder(!), and DAMN I love the LMS/Squeeze infrastructure!

  6. #6
    Quote Originally Posted by markm9999 View Post
    I have a question about player performance issues vs file formats:

    Have you experienced any issues playing FLAC vs WAV vs MP3? Assuming your using these formats...

    And what about battery life using the different formats?
    Can't easily answer your questions - I use flac and mp3 format files, and I have very few wav format files, plus I don't often run the server on battery for more than short periods. Usually I run it connected to a USB power supply. I guess one could use a USB lead in a car to run it for long periods.

    Performance as an LMS server is pretty good.

    Robert
    Home: Raspberry Pi 4/pCP7.0/LMS8.0.1/Material with files on QNAP TS-251A
    Touch > DacMagic 100 > Naim Audio Nait 3 > Mission 752 (plus Rega Planar 3 > Rega Fono Mini; Naim CD3)
    2 x Squeezebox Radios, 1 X Squeezebox 3 (retired), spare Pi2/piCorePlayer
    Office: LMS8.0.0 running on Raspberry Pi3; Raspberry Pi 3 player with touchscreen/piCorePlayer/IQaudIO DAC and Amp
    Portable: Raspberry Pi 3B/pCP6.1.0/LMS8.0.0/Material, files on Seagate portable drive, powered via power brick

  7. #7
    Senior Member
    Join Date
    Nov 2015
    Location
    Near Buffalo, NY
    Posts
    189
    Quote Originally Posted by Grumpy Bob View Post
    Can't easily answer your questions - I use flac and mp3 format files, and I have very few wav format files, plus I don't often run the server on battery for more than short periods. Usually I run it connected to a USB power supply. I guess one could use a USB lead in a car to run it for long periods.

    Performance as an LMS server is pretty good.

    Robert
    OK, those are my 2 primary formats.

    If the performance is pretty good using iPeng then that's what matters to me. I assume using something like SqueezeCtrl (AngryGoat software) on an Android will be similar.

    Battery life was really a secondary factor but figured I'd ask.

    This is so cool. They now have a new 'Pro' version (at least newer from the picture in your first post). Same memory was hoping for more...
    Player: 1 x Transporter w/Trans-knob, 2 x Touch (Active, 3 x Spares), 4 x Boom (Active, 9 x Spares)
    Server: 1 x Win Server (ESXi 6.x) w/LMS, 1 x HP 24" Touch Screen PC w/LMS & SqueezePlay
    Control: 4 x w/iPeng, 1 x Samsung Note 4, 3ea x Fire 7", 8ö tablets, 1 x 10" all w/SqueezeCtrl & Player (Angry Goat)
    Audio: Mark Levinson 23.5 Amp, 380s Pre, 390s CD, B&W 801 II, Acoustic Energy AE-2 signature, SOTA Sapphire table

    Computer geek/tech hoarder(!), and DAMN I love the LMS/Squeeze infrastructure!

  8. #8
    Senior Member
    Join Date
    Jul 2005
    Location
    Ann Arbor, MI, USA / Pune, India
    Posts
    492
    If this ever goes from vaporware to a real physical product it could be a solution for a library backup and portable LMS at the same time:

    http://ces.link/

  9. #9
    Senior Member
    Join Date
    Nov 2015
    Location
    Near Buffalo, NY
    Posts
    189
    Quote Originally Posted by Nikhil View Post
    If this ever goes from vaporware to a real physical product it could be a solution for a library backup and portable LMS at the same time:

    http://ces.link/
    Interesting...
    Player: 1 x Transporter w/Trans-knob, 2 x Touch (Active, 3 x Spares), 4 x Boom (Active, 9 x Spares)
    Server: 1 x Win Server (ESXi 6.x) w/LMS, 1 x HP 24" Touch Screen PC w/LMS & SqueezePlay
    Control: 4 x w/iPeng, 1 x Samsung Note 4, 3ea x Fire 7", 8ö tablets, 1 x 10" all w/SqueezeCtrl & Player (Angry Goat)
    Audio: Mark Levinson 23.5 Amp, 380s Pre, 390s CD, B&W 801 II, Acoustic Energy AE-2 signature, SOTA Sapphire table

    Computer geek/tech hoarder(!), and DAMN I love the LMS/Squeeze infrastructure!

  10. #10
    Junior Member
    Join Date
    Feb 2019
    Posts
    7

    Excellent Information

    Just wanted to say this post brought me to the forum and I am hoping to get this going. I will post this in another thread. Thanks for sharing your work!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •