Okay, here are some instructions to get your Pocket PC seeing the NSLU2 disk (if your problem is similar to mine, you will be able to see the NSLU2 on your network, but you won't be able to access the actual disk - Error58 when you try, I think). These instruction assume you are runing Unslung firmware and that you have a Pocket PC and a Windows PC properly connected to your network (if the Pocket PC can see the Windows XP PC you are probably okay).
You need to create a script in the NSLU2, so you need to login using telnet (enable telnet access through the NSLU2 web interface, then use Hyperterminal or the command line telnet client from Windows) or ssh (if you had installed an ssh server). After you login as root, type the following in the command prompt:
The terminal window will fill with the blank script document. Type 'i' to put the editor into insert mode. Type the following EXACTLY (I can't emphasis the EXACTLY part enough):
#! /bin/sh # /unslung/rc.samba # Diversion script: to modify the Samba smb.conf file # # Reason: to add or change Samba2 config for Pocket PC # # Make sure we have a backup copy of /etc/samba/smb.conf if [ ! -e /etc/samba/smb.conf.orig ]; then cp -p /etc/samba/smb.conf /etc/samba/smb.conf.orig fi # # Script section to alter Samba config for Pocket PC networking # # Check smb.conf for existing 'use spnego' line # If none present then insert one into [global] section if ( !(grep "spnego" /etc/samba/smb.conf -q) ) then sed -i -e 's/\[global\]$/\[global\]\nuse spnego \= no/' /etc/samba/smb.conf fi # End of Pocket PC change section # # Include other script sections below here # return 1
Double & triple-check that what you have typed is the same as the above script.
Hit the [ESCAPE] key to exit insert mode. Type ':w' to save the script. Type ':q' to exit the Vi editor. Close your session, confirming disconnect.
Reboot your NSLU2.
That should be it - after rebooting, your NSLU2 disk should be accessible using your Pocket PC. If not, obviously check each stage has been successful. If you can't find anything wrong, enable telnet on the NSLU2 again (it is disabled again after reboot), telnet in (as detailed above), and type:
You will be looking at the actual Samba config file. Check the section at the top entitled [global] for the following line:
use spnego = no
If you don't have this line in the file, then you have made a mistake typing in the script above. Exit out of Vi using:
to open the script file again, and re-check.
PS. There is still the problem of having to re-enter the access password every time the Pocket PC is power-cycled, though.
Great Tip. Please read the main pages and Samba Howto to make sure you're not negatively impacted by this:
From man page:
"client use spnego (G)
This variable controls controls whether samba clients will try to use Simple and Protected Negociation (as specified by rfc2478) with Windows XP and Windows 2000 servers to agree upon an authentication mechanism. SPNEGO client support for SMB Signing is currently broken, so you might want to turn this option off when operating with Windows 2003 domain controllers in particular."
From the Official Samba-3 HOWTO (Section 6.6.3, page 80):
"Windows 2003 requires SMB signing. Client-side SMB signing has been implemented in Samba 3.0. Set client use spnego = yes when communicating with a Windows 2003 server."