Network shares and XBMC on Apple TV 2
The Apple TV 2 is a great piece of hardware, but by itself it isn't particularly useful unless your life revolves only around the Apple universe. Luckily, once jailbroken and loaded with XBMC (thanks to the instructions here), it makes one of the best media centre devices, and also one of the cheapest (compared to devices like the Boxee Box or Popcorn Hour).
It isn't perfect (720p max, can't hold and scroll on the remote, occasionally crashes...), and I wish I had Boxee's awesome remote, but its ability to play pretty much any format at that price outweighs all its flaws. Plus as a bonus, it still works fine as an Apple TV, including AirPlay (one of the few useful out-of-the-box features), even while inside XBMC.
The XBMC port is still a bit green though, but is generally fairly stable and usable. I had issues connecting it to my Linux-based NAS via SAMBA though - XBMC/Apple TV 2's SMB (network/Windows shares) implementation doesn't seem to be able to do authentication properly, at least the secure kind. It just sits there, and eventually comes up with an 'operation not permitted' error.
After picking through the XBMC logs on the Apple TV 2 and SAMBA logs on my NAS, I had a hunch it was authentication encryption causing the issue, so I disabled it with the following parameters in smb.conf -
encrypt passwords = no null passwords = yes
Everything worked.. except Windows. Windows 7 (and possibly Vista as well) refuses to authenticate with a network share via unencrypted means, for good reason.
There isn't a solution yet, but there is a workaround - by setting authentication to occur on a per-share basis on the NAS, instead of a per-user basis, XBMC can access shares with guest permissions as SAMBA does not require authentication and defaults to guest on those shares. (You can still choose to authenticate to those shares, and Windows will automatically try to do so with your current credentials.)
To do this, simply add or change the following line in your smb.conf -
security = share
On the shares that you want to be able to access from XBMC, add the following option -
guest ok = yes
Restart SAMBA, and you should be able to connect from XBMC.
(As an aside, I believe that's how Windows works as well, because I could access the guest-allowed shares on Windows from XBMC fine, but not the secured ones.)