RPi2 & 3: Unable to access SMB shares after upgrade to 8.2.0.1

  • Today I upgraded both my RPi2 and RPi3 from 8.0.2 to 8.2.0.1. Immediately afterwards, I could not access my samba shares (on a Windows 10 machine). Everything was working flawlessly on 8.0.2.

    When I attempt to navigate to the shares via the "Files" section of Videos, I get a pop-up saying "Operation not permitted" (and sometimes after that, "Could not connect to network server"). If I attempt to browse (selecting Windows SMB share), the workgroups on my network do not appear at all. If I try to enter a new source by selecting "Add network location" in the browse feature and enter the IP address of the server (192.168.1.102) and the share name, again I receive "Operation not permitted."

    Attempting to navigate to one of my existing shares (smb:\\192.168.1.102\Usenet) shows only this in the debug log:

    Code
    19:28:12.867 T:1945554944   DEBUG: CGUIMediaWindow::GetDirectory (smb://192.168.1.102/Usenet/)
    19:28:12.883 T:1495266208   ERROR: SMBDirectory->GetDirectory: Unable to open directory : 'smb://192.168.1.102/Usenet'
    19:28:15.300 T:1945554944   ERROR: GetDirectory - Error getting smb://192.168.1.102/Usenet/
    19:28:15.311 T:1945554944   ERROR: CGUIMediaWindow::GetDirectory(smb://192.168.1.102/Usenet/) failed

    The entry in sources.xml for the above share is:

    Code
            <source>
                <name>Usenet</name>
                <path pathversion="1">smb://192.168.1.102/Usenet/</path>
                <allowsharing>true</allowsharing>
            </source>


    I've tried playing with the "max" and "min" SMB in LibreElec configuration (min SMB1 to max SMB3 and all combinations thereof) but nothing helps.

    My router is a Netgear Nighthawk R7000, if that's of any relevance.

    My Kodi database is a MySQL database on the same machine (192.168.1.102) so connecting to the machine isn't an issue, only the samba connection.

    I don't think this is an issue with my network configuration, etc. as it worked without fail before the upgrade. Reverting back to 8.0.2 solves the problem.

    Any advice would be greatly appreciated!

    Thanks,

    Patrick

    Edited once, last by pwiggy (October 31, 2017 at 12:02 AM).

  • Have you read the section in the announcement on SMB?

    If you were using anonymous/guest access for your Windows 10 shares, this is no longer supported - you'll need to add a username/password to your Windows 10 machine and assign this to your share, enable password protected sharing for the share on Windows 10, and finally enter the username/password into Kodi when prompted.

    Leave the max protocol as "None" when the server is Windows 10 - this will mean it uses SMB3 when connecting to your Windows 10 machine.

  • milhouse, thanks. I've done as you've suggested, however I have to manually remove and add all of my sources (entering the username/password) in order for it to work. I'm never prompted to enter a username/password when I attempt to play a video or music file. Once I've manually recreated a source it seems to work, but this is a lot of work.

    Where can you set the max protocol to "none"? In the LibreElec settings it only gives you the options of SMB1, SMB2 and SMB3.

    I'll have to play around with this a bit more but it's looking a bit tricky...

    Do you think support for anonymous access will be implemented in LibreElec in the future (or is that a windows/samba thing)?

    Thanks for your help.

  • milhouse, thanks. I've done as you've suggested, however I have to manually remove and add all of my sources (entering the username/password) in order for it to work. I'm never prompted to enter a username/password when I attempt to play a video or music file. Once I've manually recreated a source it seems to work, but this is a lot of work.


    This is what passwords.xml is for, which is automatically created when Kodi saves your passwords.

    If you're not being prompted (which is odd) then you should manually add your username/password in /storage/.kodi/userdata/passwords.xml.

    If you don't have a passwords.xml then you should create it so it looks like this:

    Code
    <passwords>
        <path>
            <from pathversion="1">smb://192.168.1.102/Usenet/</from>
            <to pathversion="1">smb://YOURUSERNAME:[email protected]/Usenet/</to>
        </path>
    </passwords>

    Replace YOURUSERNAME and YOURPASSWORD with your username and password

    Where can you set the max protocol to "none"? In the LibreElec settings it only gives you the options of SMB1, SMB2 and SMB3.

    In Kodi go to Settings, make sure your settings level is Advanced or Expert, then go to Services -> SMB Client where you should see "Maximum Protocol version". "None" is the default option so you don't need to change this.

    I've realised now that when you said you were setting min/max protocol you were in fact fiddling about with the Samba Server settings, which is completely unrelated to your issue and not something you need to change.

    I'll have to play around with this a bit more but it's looking a bit tricky...

    You might have saved yourself a lot of time by reading the announcement.


  • This is what passwords.xml is for, which is automatically created when Kodi saves your passwords.

    If you're not being prompted (which is odd) then you should manually add your username/password in /storage/.kodi/userdata/passwords.xml.

    If you don't have a passwords.xml then you should create it so it looks like this:

    Code
    <passwords>
        <path>
            <from pathversion="1">smb://192.168.1.102/Usenet/</from>
            <to pathversion="1">smb://YOURUSERNAME:[email protected]/Usenet/</to>
        </path>
    </passwords>

    Replace YOURUSERNAME and YOURPASSWORD with your username and password

    Thanks for the tip. Things were working OK until I tried playing music which failed. In the end, I created the following passwords.xml file:

    (note that "MEDIALIBRARY" is the computer name of 192.168.1.102. All my music was originally scanned to the library using the computer name, whereas my video files use the IP address.)

    The two versions of "medialibrary" appear necessary as it looks like samba is case-sensitive (doesn't work with just the lowercase version).

    So basically the above give me the "root paths" which all my media files are based on, and the credentials to use.

    As long as I have the permissions for the specified user set up on the Windows machine, it looks like this works.

    Again, thanks for your help.