Getting Down to Business

Install SAMBA 2.2.2 (SMB printers only)

Note: if you do not need to print to a Windows printer via SMB, you can skip this section. Printing to a shared Windows printer is done via SMB. Printing to a Windows Printing Services for Macintosh is not done via SMB; it is done via AppleTalk or LPD, according to your NT configuration.

File Needed! In this step, you’ll need to download SAMBA and then unstuff it in a location that’s known and accessible to you. You’ll be using it very shortly, below.

Note: I’m no longer hosting SAMBA, which means it’s now up to you, dear reader, to scour the web for a Mac OS X version of SAMBA. This may be a difficult task, as SAMBA has been included in Mac OS X since version 10.2. You may start the search at your favorite search engine. Sorry for the inconvenience. The rest of this section will continue as historically. However keep in mind that installation instructions may be different for your distribution of SAMBA.

Windows networks use a protocol called SMB (“server message block”) atop TCP/IP, much the way that EtherTalk is AppleTalk atop TCP/IP (although with LocalTalk out of existence, AppleTalk, saying EtherTalk is somewhat redundant).

In order to communicate with a printer shared by a Windows machine, it will be important to make your Macintosh be able to speak to the Windows machine in its terms. This will be done with the software called SAMBA, which is a free, open-source implementation of SMB.

You do not need SAMBA installed if any of these circumstances apply to you:

  • You want to print to a Windows NT host that has Print Services for Macintosh enabled. This means the Windows server presents its served printers as Postscript Level 1 devices on the AppleTalk or TCP/IP network. This is opposed to Windows File and Printer Sharing printers that can be shared by all versions of Windows. The latter are the ones for which we need SAMBA.
  • Your printer is an independent device on an Ethernet network without interference from another physical computer. You should be able to print to this printer via AppleTalk or TCP/IP.
  • You printer is connected to a dedicated, hardware print server on an Ethernet network without interference from another physical computer. You should be able to print to this print server via AppleTalk or TCP/IP.

Note: corporate environments typically have IP addresses or Windows SMB addresses posted on seemingly-independent printers. But did you know that these addresses are often not for the printer itself, but a print server that controls access rights and such? If you’re unable to print to such a printer via SMB or TCP/IP from your Mac, it may have to do with security issues. If, however, you can find the “real” IP address of the printer (not your corporate printer server) you can often get around this Mac-unfriendliness (actually SAMBA, as you’ll see, allows you to use a proper password). Additionally, if you can browse for AppleTalk devices, you can print via AppleTalk directly to most printers without having to go through a centralized server. Most network administrators don’t bother to turn off “EtherTalk” (AppleTalk-over-Ethernet) protocols from network laser printers. Often enough, EtherTalk can be turned back on directly from the printer’s control panel.

If you’ve download a SAMBA distribution, you should unstuff it, mount the disk image, and run the installer. Make sure you choose to install it on your Mac OS X operating system (boot) partition. That’s it.

Note: besides our uses of it in this guide, SAMBA also features the ability to set up SMB shares on your Macintosh. This means you can make you Mac a Windows file-server on a Windows network without having to invest in expensive programs such as DAVE. That’s an exercise left up to you, though, gentle reader.

Note: this will install version 2.2.2 SAMBA, as ported to Mac OS X (Darwin) by the fine folks at The official SAMBA homepage is at If you prefer to install (or have already installed) your own SAMBA package, feel free to use it; just remember that you’ll have to know the paths to the appropriate executables when the time comes to build the print filter.