Connecting Windows 10 Computers to Linux Print Servers
For the last few months, our family has been using Fedora Linux 23 on our main desktop computer rather than moving from Windows 7 to Windows 10. In the process, though, we wanted to be able to take the several Windows 10 computers we do have and access the printer on the main desktop computer.
CUPS is the Common Unix Printing System used by many modern Linux systems for managing printers. I am assuming below that the printer has been setup with CUPS, which for Fedora Linux 23 is a pretty good bet.
My first thought was to use Samba to share the CUPS-based printer for this exercise, but as noted here:
that can be frustrating for Windows 10 machines.
In fact, to easily make the Fedora 23 machine visible to the Windows 10 machines, I had to modify the “/etc/samba/smb.conf” file in “/etc/samba” to limit the SMB protocol used by Samba to “SMB2”. This is done by adding or modifying the “max_protocol” definition as follows:
max protocol = SMB2
Of course, the “samba” and “samba-client” protocols should be opened up in the firewall so others can access Samba and so that Samba clients on the local machine can reach out.
Note that the version of Samba that we have currently with Fedora 23 is version 4.3.4. In my experience, the version of Samba on Raspbian (version 3.6.6) didn’t require this change. Additionally, the version of CUPS that comes with Raspbian also has been modified to easily make a printer shareable with iOS devices–something I also wanted with Fedora 23.
Before I spent even more time trying to get printer sharing with Samba working, I did some additional searches on the Internet and discovered that both Windows 10 and CUPS support the “Internet Printing Protocol” or IPP, which means I could avoid having to deal with the Samba and Windows 10 compatibility issues altogether. Here are a few helpful web sites on this topic:
- http://www.zedt.eu/tech/windows/installing-an-ipp-printer-in-windows-10/
- http://superuser.com/questions/300986/ipp-printing-from-windows-7-ultimate
Before going further, you will probably need to open up the “ipp” and “ipp-client” protocols to let other systems connect to your system via IPP and probably to let your system reach out to others via IPP.
Once you have IPP installed on the Windows 10 machine, you can use your Web browser to come up with the proper URL for your printer in CUPS. Here are some easy steps for determining the proper URL.
- First, I accessed CUPS remotely from the Windows the machine using “http://[the ip or name of the computer]:631” as the URL in the Web browser.
- Next, you select the “Printers” link in the menu across the top of the CUPS web page.
- Finally, you click on the name of the print queue for the particular printer you want to connect to using the Windows computer. The URL that you want to use for setting up the IPP connection to the printer is the URL in the web browser’s address bar at this point.
At this point you can use the URL to setup IPP-based printing as in the links referenced above. This turned out to be a little less easy than what used to work with older versions of Samba where you could just browse to find your printer, but it works more reliability and means that you don’t need Samba installed as a server to share the printer.