Sonos SMB implementation (Error 900 when adding music library)
I got error 900 trying to add the music library on my Synology NAS to my Sonos system. It had been working flawlessly in the past, so I suspected it had to do with a recent update I'd made to the DSM operating system on the Syno. Now running DSM 6.1, for the record.
I then found that I'd tampered with the Windows file service after installation and set the SMB service to only allow clients supporting SMB2 and up. That's what caused the issue! Setting the SMB service on the Syno back to SMB 1 and up solved it.
Which leads me to ask: will Sonos consider updating their samba support to a more recent version? With time, surely new network devices will rely on the more recent versions of samba..?
B.
Maintenance on the Pi can be near zero if you aren't going outside your home network. Set it up and get it running the way you want. Make a duplicate SD card (use the pi utility) just in case the primary SD dies. That's it, I haven't accumulated any long run times, only about 6 months between reboots, but it was still looking good before I shut it down.
I agree with you on the hope of Sonos fixing this and I'm all for their position as an owner of a couple ZP-80s that would probably go obsolete if the changes needed to support the newer SMB stuff were made. I disagree on running my real NAS allowing SMB v1, I don't run any SMB on it regardless of version but v1 is really shady.
I don't do Windows since I retired in 93 but this only took an hour to figure out, mostly because I was missing the SMB3 enable command in the config file, so it isn't rocket science. I just got inspired to do it as I had a new 3b+ that hadn't been put to use yet and I wanted to see if it was possible. Not so much for me, as my library is on another Pi with an SSD for storage, but for folks that want to keep their music on some other SMB3 only device. The 3b+ has already been re-purposed and today is pretending to be a Stratum 1 NTP server.
while I applaud your nerd solution Stanley, Sonos should actually fix their broken product, so that less nerd people can use it again.
😉
I don't have access to numbers, but let's make an estimate, for fun. Say 3 million installed devices that can't currently handle an increased kernel size. So, at $200 each for a new Sonos One, you could probably get Sonos to implement your desires at a cost of $600 million dollars. Of course, there'd be incidental costs to not only do the code change, but to manage the return of all the devices, and the shipping of the new devices, and the salaries of all the people who have to manage this process.
Or you could just expect that Sonos will brick the 3 million devices that currently are working, in order to accede to your demands, and deal with the ill will of all of the users who currently own speakers that work just fine.
so you do not have any numbers, so it is just guess work? That is not really helping. I have not seen any post from sonos saying "we can not do it, because our systems to not have enough flash memory to support it". From the looks what they changed over the last years since I bought my sonos equip I can say, there is quite some room for "more fancy", it just seems that basic security is just not very high on the priority list, just it gets beaten by "more fancy, new shiny stuff" instead. Which is sad, because I could playback my music fine right from the start and all the new jazz I see in all the updates so do not give me anything new I really have use for. Of course you can argue now that smb2 is totally useless in a private home environment, but I will not follow you there sorry. Implementing basic security is key to how our homes already look or will in the near future with all the hundreds of IoT devices in our home networks. Pissing on security is not helpfull.
a) Comb through this thread and you will be rewarded with answers and explanations around the topic
b) Just for fun – make a flying visit to this topic and you will get an idea what would happen, if Sonos dared to brick old nonetheless perfectly working gear
Bottom line for me is that I believe the changes needed to the Linux kernel to bring it up to a version that would support SMB v2/3 would grow it to the point some older devices would not work any more. This scares me as I have at least four devices that would be likely victims of any CR-100 like massacre.
The code is available for download, don't take my word for it, try it yourself.
What I think the resolution could be is Sonos selling an SMB v1 gateway, one that would load from any network file system supported by Linux and export an SMB v1 version of it. Probably $50 in parts and labor each after the initial setup and testing. Add a few bucks for funding support, shipping and profit and Sonos would be in the $75 neighborhood of the Ubiquity Cloud Key that is a similar device.
Of course it can not be the intention to release an update to brick devices. It either is possible to get a more modern network code into a sonos device (in which case it should be done) or it isnt (in which case it should not be done). I fully understand, that I am seeing this maybe as to simple, because I have only one devices, which isnt setup in some special connected way, where an update would kill the abilty to connect a couple of devices where on part got updated code (to smb2/3) and others not.
anyway, enjoy your working devices, no harm intended 😃
Going to a newer operating system (required to be able to go to a newer SMB) requires a lot more memory. The discussions of that on the Linux kernel mailing list are pretty old now but still available.
Going to a newer SMB (Samba) also requires more memory, I don't think as much as the kernel but it has been years since I tried to figure the differences.
Since Sonos memory is not expandable the choices made have to fit within the available memory. This may have been part of the CR-100 and Dock massacres, removing the code for them may have freed up memory to be used for much more popular features. Going over the available memory limit of a device makes it unusable and Sonos hates doing that. Owners hate having their devices disabled too so a third way still sounds attractive.
😞
However, i did find a solution that works good for me.
On my android phone i have installed the Hi-Fi Cast app.
(https://play.google.com/store/apps/details?id=com.findhdmusic.app.upnpcast)
This app uses the DLNA/UPnP protocol to get the music (including playlists) from my synology (so no smb is needed at all) and i can choose my Sonos One as playback device. I can choose the different Sonos rooms and devices, this works great for me!
I wonder why Sonos does not use this DLNA/UPnP protocol instead of an old smb version?
post from two years ago, I am still getting 900 errors when trying to connect to my freeness smb. Any progress with newer versions of samba? or maybe add support for afp shares?
If you don't want SMB 1 on your NAS you could make a protocol gateway that offers up SMB v1 to Sonos and connects to your NAS on your choice of protocols.
https://stan-miller.livejournal.com/357.html
For now I have enabled SMB1 on my Synology NAS. Checking out DS Audio too...
For now I have enabled SMB1 on my Synology NAS. Checking out DS Audio too...
From: Using a NAS drive with Sonos
Requirements for using a NAS with Sonos
Sonos works with any NAS drive that supports the SMB(v1) / CIFS file sharing protocol. Sonos does not recommend any particular model of NAS drives.
Fair call :)
Its telling though that I found this thread which resolved my issue, before finding that particular page. The error message that is given in the Sonos app, points to this page:
https://support.sonos.com/s/article/262?language=en_US
Which is basically useless.
I may have missed the answer in this long thread, but I had the same strange esoteric 900 error between Synology & Sonos. I fixed it by enabling Samba version 1 as the minimum allowed version (The default is version 2).
In your DSM:
File Services > SMB > Advanced Settings > Minimum SMB Protocal: Set to Version 1.
Adding here in case this helps someone else.
Enabling smb1 on my NAS is too dangerous and not an acceptable solution for me, so i will keep this protocol disabled. Security is important.
However, i did find a solution that works good for me.
On my android phone i have installed the Hi-Fi Cast app.
(https://play.google.com/store/apps/details?id=com.findhdmusic.app.upnpcast)
This app uses the DLNA/UPnP protocol to get the music (including playlists) from my synology (so no smb is needed at all) and i can choose my Sonos One as playback device. I can choose the different Sonos rooms and devices, this works great for me!
I wonder why Sonos does not use this DLNA/UPnP protocol instead of an old smb version?
Does HI-FI Cast let you access Synology remotely? I’ve been using Bubbleupnp for Android and I can put in my WAN IP address to access the NAS outside my LAN. It will cast to Sonos. I wish the Sonos app would just allow me to put in my WAN IP. All my music is sorted by folders, and Sonos will view by folder unlike Plex. HI-FI Cast also allows folder view.
That’s fair. I didn’t even think that smb v1 had security issues.
I agree this sucks. And the sonos controller doesn’t even let me use a local mount as directory—it checks if it is a network drive and insists I use their smbv1 network.
How do we get them to upgrade smb to v3 and/or allow us to use locally mounted drives as if they were local?
How do we get them to upgrade smb to v3 and/or allow us to use locally mounted drives as if they were local?
Educated guess: It appears adding additional SMB version support to the Linux core on older Sonos devices cannot be done, given the memory and storage limitations already present. Doing so on newer devices would entail retiring and/or severely inhibiting the older devices, something Sonos is trying hard to avoid.
As to the “security issues”, if you keep your NAS firmware up to date, and make sure your firewall is secure, the odds of being hacked are slim to none. The threat was mostly against Windows machines, and even they have plugged the holes.
I recommend using a your favorite file sharing protocol to SMB v1 gateway. Your data stays safe on your NAS and only the gateway, that you can really lock down, is at risk.
I did it with a Raspberry Pi, you can find a Zero-W for five bucks, add a mini-SD card and USB power brick and you are good.
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.