Windows File Sharing (SMB/SAMBA/CIFS)

From XBMC4Xbox
Jump to: navigation, search

Introduction

Windows File Sharing, (also known as Common Internet File System [CIFS] and previously known as Server Message Block [SMB]), is probably the most flexible of all of the options for sharing media between your computer or a NAS (Network Attached Storage) device and XBMC.
SMB/SAMBA/CIFS sharing has many advantages over the other options, mainly:
  • It is already incorporated in Windows, eliminating the need for additional software and services to be installed on your PC
  • It allows for authentication by Windows username and password, making it good for use on public networks
  • Once properly configured, it will allow your network shares to be seen and accessed by not only XBMC, but also any Windows machine on your network.

Windows Filesharing (on Windows)

Configuring Windows File Sharing With Open Access (Simple File Sharing)

Right click the Drive or Folder you wish to share. Choose “Sharing and Security” from the drop down menu. If you are sharing the root of a drive, Windows will warn you about sharing a whole drive. Click “I understand the risk...” If you aren't sharing the whole drive, the warning will not appear.
There may be a link saying “If you understand the security risks...” in the lower portion of the window. Click it to get the sharing options.
If the option to set the folder to shared is greyed out, and the option to make this folder private is checked, you need to uncheck it. If it's greyed out too you need to find which parent folder it's checked on. If the folder you want to share is on your desktop, it's probably /Documents and Settings/(Your username) that's been made private. It's normally on the same drive as your Windows installation.
The first time you set up sharing, Windows will ask you if you want to use a wizard. The wizard will enable the Windows firewall to prevent internet users from accessing your files. If you have SP2 it's probably enabled already. Note:The Windows firewall can stop filesharing from working. After you have chosen whether or not to run the wizard you must choose a name for your share. This is the name that will be visible on the network.
If you want other computers to be only be able to read your files uncheck “Allow network users to change my files.”
Alternatively you can create hidden shares. Hidden shares are created when you add the $ to the end of the share name. (ie. share becomes share$) A hidden share will not show up in the list. You must already know the name of the share to access it. (in windows: "\\COMPUTER_NAME\share$") Details on accessing hidden shares below.
Click OK. That's it, you should be done. If you have a lot of files and folders inside the folder you shared, you might get a progress box while windows changes the permissions of the files inside that folder.
Make sure your xbox is on the same network(ie connected to the same router) or hooked up to your computer with a crossover cable(xbox link cable will do). If you have any trouble, double check that all software firewalls are off, including the Windows Firewall. If you still have problems often times restarting your computer can fix it. Always try restarting, even a router/switch or your xbox. Enjoy. TaeBoX

Configuring Windows File Sharing With Secured Access

Note: This setup can only be accomplished in Windows XP Professional (XP Home doesn't work).


The first step is to create a user on your computer called xbox. This can be done by navigating to Start->Control Panel->User Accounts, select Create a new account and give it the following settings:
Name: xbox
Password: xbox
Account Type: Limited Access (not an administrator)
This account will be used for file sharing purposes only. If you want to hide this user from the Welcome Screen, see this link.
Now we need to pick a few folders to share. On my computer I have two shared folders... One is C:\SHARED\ and the second is C:\Music\. Inside my SHARED folder I have 3 subfolders called Music, Pictures, and TV Shows. I recommend using a directory right on the C:\ drive to make things simple (unless its something you don't want others to find).
The next step is to set up sharing privledges for these folders. To do this, right-click the folder you want to share (ie C:\SHARED\) and chose Sharing and Security.... Next click on the Permissions button. If you do not see a Permissions button, then you need to disable Simple File Sharing (see the next step).

To Disable Simple File Sharing

In any explorer window, click on Tools->Folder Options.... Select the View tab and in the Advanced Settings pane scroll to the bottom of the list and uncheck Use Simple File Sharing (Recommended).
Now select “Share this folder” and give it a name. You should probably just call it whatever the folders name is (ie I called mine SHARED). Just avoid calling it PORN or ILLEGAL STUFF because anyone browsing your network will see the folder names (they just won't be able to see anything inside of them). The user limit should be set to Maximum Allowed.
Next, click on the Permissions button and click Add.... Now click Advanced... and hit the Find Now... button. This will find all of the users and user groups on your computer. There will probably be a bunch of users you have never seen before – those are for things like Remote Assistance and other Windows related stuff so don't worry about them. What we want to do is give our xbox user permission to view this folder over the network.
To do this, find xbox in the list and click OK. It should appear in the list as YOUR-COMPUTER-NAME\xbox. Click OK and you should be back at the Share Permissions window with xbox (YOUR-COMPUTER-NAME\xbox) selected from the list. We want to give this user Read Only access, so make sure that only Read is checked under the allow column. If you want to be able to delete files on your computer from your xbox, you can give them full control, but I would not recommend this because you never know whos going to start deleting stuff (little sibblings, drunk friends, etc...). Before we forget, go ahead and remove the “Everyone” users group from the list.
Save it and repeat for the rest of the folders you want to share.
Note for the power users: You do not need a seperate share if the folders are nested (ie C:\SHARED\Movies\, C:\SHARED\TV Shows\, etc) because you can set the source path to the Movies folder inside the SHARED folder.
Ok... so now you should have one or more folders shared. If you want to test it, go to another computer on your LAN, and you should be able navigate to your computer in “My Network Places” and find your computer in Entire Network -> Microsoft Windows Network -> WORKGROUP , and log in as xbox/xbox and see your shares. It might not let you access the network due to some screwy stuff Windows does, so if it doesn't work don't worry about it.
Now lets create the source on your xbox....
Go to your xbox and choose the folder type you shared (ie go into “My videos” if you want to add your computer's videos folder). Press the white button on the controller (or title if you are using the remote control). Then navigate to Add Source. Select Browse, chose Add Network Location... and use the following settings...
Protocol: Windows Network (SMB)
Server Name: (click browse and find it). If you can't find it, then see the troubleshooting part below.
Server Folder: (should be filled in when you clicked browse)
Username: xbox
Password: xbox
Then click OK. For some reason the version of XBMC I am using loses the path, so you have to browse for it again, but this time it should show up in the list after you hit browse. Rename it if you wish. This is just your xbox's source name, so if you have shared folders from several different machines you might want to call it Videos (Bob's Computer).
Note for the power users: You can add all of these sources in the Sources.xml file. Just follow their example for SMB/SAMBA/CIFS shares.
If you are having trouble finding your computer, you can just type your computers name into the Server Name field. Your computer's name can be found by right-clicking on My Computer, and navigating to the Computer Name tab and its next to Full Computer Name. You will also need to enter the Server folder, which is the name you gave to the shared folder (ie SHARED/), or it can be a path (ie SHARED/Movies/).
If it still doesn't work, you can give your computer a static IP address and enter the static IP address in the Server Name field.
You're done! I have this set up to share my music as well so that iTunes doesn't have to be running. And obviously, your computer needs to be on in order for you to stream movies onto your xbox from it.
If you're really cool, you can even get the WOL (wake on LAN) script and have it power on your computer for you from your xbox. That guide is for another day...
Hope this helped!
Cyre

How to Configure Hidden Shares

To create a hidden share. Add $ to the end of the share's name. You must know the name of the hidden share to gain access to it.
For each list (Files, My Videos, etc.) you will have to add a source for your hidden share(s). You can add a source directly to your xbmc.xml file or you can use the XBMC interface. If you add it to the file manually, you can add it to all appropriate sections of XBMC at once. There is a section for each list. More info on Media Sources
Example:
 <syntaxhighlight lang="xml">
    <source>
     <name>share$</name>
     <path>smb://COMPUTER_NAME/share$/</path>
    </source>
 </syntaxhighlight>
The following information is more or less a duplicate from Media Sources.
If you choose to add it through the interface, first you need to open the section you want to add the source to. (Videos, Music, Etc.). For this example I will use Videos, but they are all basically the same.
First open Videos, then make sure the highlight is on one of the existing sources.
Press the white button on the controller to open the menu.
Select Add Source from the menu.
Note: You can enter the SMB/SAMBA/CIFS link manually at this point if you wish. To do so, highlight the box that has <none> in it, and press A. (syntax: smb://COMPUTER_NAME/sharename$/)
If you would rather not type it manually continue reading.
Choose Browse on the dialog.
Scroll to the bottom, this can likely be accomplished by pushing up once.
Select Add Network Location...
Press the Browse button, it should be to the right of the Server Name box. Open smb://.
Now find your computer's name, but don't push A yet.
If you can't find it, go back and type it in manually in the Server Name box. (smb://COMPUTER_NAME/)
Once you find your computer's name, move to the right and highlight OK then push A.
Verify that the Server Name box has smb://YOUR_COMPUTER_NAME/
Now move down to the Shared Folder box, push A to edit it.
Type the name of your shared folder, and don't forget to include the $.
Move down and highlight OK
You should be back at the list you were in earlier where you picked Add Network Location...
Choose the share you just created from the list, move to the right, select OK and push A.
Enter a name for your new source at the bottom (PM3-default) or the top (MC360) of the dialog.
Now move to the bottom and select OK once more.
If you add the same source to some of the other lists you shouldn't need to add a network location again, it should be waiting in there for you already.
That's it, you should be good to go. Enjoy. TaeBoX

Windows Filesharing (on Mac OS X)

Introduction

Windows Sharing, (also known as SMB or CIFS, is probably the most flexible of all of the options for sharing media between your computer and XBMC. It has many advantages over the other options, including:
  • It is incorporated in Mac OS X (OS 10.2 and later), eliminating the need for the installation of 3rd-party software.
  • It allows for authentication by your Mac OS X username and password, making it good for use on public networks.
  • Once properly configured, it will allow your network shares to be seen and accessed by not only XBMC, but also any Windows system on your network.
  • It is is capable of streaming all types of media and gives the option of sharing individual folders (or entire drives - usually configured through the 3rd-party software SharePoints, but can also be achieved through some Terminal trickery).


Configuring Windows Sharing (on Mac OS X 10.2 or later)

Enabling Windows Sharing
Once you have configured your Network Port settings to communicate with XBMC you need to enable Windows Sharing through System Preferences by:
  • Navigating to the Sharing panel.
  • Selecting the Services tab.
  • Ticking the box next to Windows Sharing in the Select a service to change its settings area (and pressing Start if necessary).
  • Click Accounts... and select the name of the user account that will share files. Enter the password for that user.
A message will then be displayed at the base of the panel:
Windows users can access your computer at \\x.x.x.x\youraccountsusername
Enabled accounts: youraccountsusername
You have now enabled Windows Sharing on Mac OS X, giving you access to the enabled accounts (listed in the Services tab) through XBMC. Now you can configure this share in the XBMC GUI.

Windows Filesharing (on Mac OS prior to 10.2)

Samba (from samba.org) is an Open Source/Free Software suite that has, provided file services to all manner of SMB/CIFS clients.

Sharing an entire drive on Mac OS X using SharePoints

While enabling Windows Sharing gives you access to the enabled accounts listed in the Services tab, the Mac OS X GUI limits further more advanced configuration that would enable you to share entire drives connected to your system. While this can be configured through editing certain system files through the Terminal, a far easier (and safer) way is by using the 3rd-party software SharePoints.
After installing SharePoints, run it and configure it in accordance with it's manual http://www.hornware.com/sharepoints/SharePoints_Doc_English.pdf


External links to other guides

Windows Filesharing (on Linux, using Samba)

Introduction

Samba (from samba.org) is a group of Linux/UNIX/BSD programs designed to be able to interact with Windows default file sharing protocol, also known as Common Internet File System (CIFS), which was formaly known as Server Message Block (SMB). The SAMBA package offers a service which can be used to share media on a Linux/UNIX/BSD based machines to both XBMC and your home Windows computer easily. Another type of device that use the SAMBA (or SMB/CIFS) network-protocol is NAS (Network Attached Storage) boxes, which are dedicated file-sharing devices available for home/small-office and professional/enterprise environments. All elements are done from a command-line as it reduces confusion.
Note! This article assumes some basic knowledge of the Linux/UNIX/BSD operating-system interface and environment.

Installing Samba

Due to the diversity of linux distros only three methods will be covered in this article the standard linux install, the one using Gentoo's emerge package manager and Debian/Ubuntu's Advanced Package Tool.
  • Installing Samba regardless of distro
  1. wget http://us4.samba.org/samba/ftp/samba-latest.tar.gz
  2. tar -xvf samba-latest.tar.gz
  3. cd samba-{version} (At this time its samba-3.0.22)
  4. ./configure
  5. make install
  • Installing Samba using Gentoo's emerge
  1. emerge samba
  • Installing Samba on Debian/Ubuntu:
  1. sudo apt-get install samba

Configuring Samba shares

Note: Currently only the config for a public share will be posted.
Samba's configuration is stored /etc/samba/smb.conf. All the following items should be placed in that file.
  • Global configuration
[global]
workgroup = <workgroup>
netbios name = <name of server>
server string = <title>
log file = /var/log/samba/log.%m
max log size = 50
map to guest = bad user
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
local master = no
dns proxy = no
workgroup 
Should be set to the workgroup your home pc uses if you planning on accessing this share from a windows PC
netbios name 
This is the name that will be displayed when browsing the your Network Neighborhood
server string 
The title of the server that will be displayed in windows(This is not the share name)
  • Share configuration
[public]
path = <dir to share>
public = yes
only guest = yes
writable = yes
path
Set this to the path to be shared by samba

Run testparm to check your smb.conf for internal correctness.

External links to other guides