How can I set up Ubuntu to share my printer so that I can use it with Airprint ? Airprint is a system set-up by Apple on iOS devices (iPhone, iPad, iPod Touch)


This has changed since the initial question was asked.

Since Ubuntu 11.04, you can share local printers so they are available via AirPrint.

AirPrint support is either built-in a printer or not. For printers that don't have this support built-in (which is most printers bought before AirPrint was introduced in 2010), AirPrint support can be achieved by configuring such a printer on an intermediary system for local printing, shared on the same network. In this particular context this means any Ubuntu desktop or server with local printing configured. Follow these steps (source):

  1. On your computer start the printer configuration utility via System -> Administration -> Printing (GNOME Classic) or via Turn-off-button at the upper right -> System Settings -> Hardware -> Printing (Unity Natty) or via the command line (all systems including Unity Oneiric): gksudo system-config-printer.

  2. In the printer configuration utility choose Server -> Settings and activate Publish shared printers connected to this system. Click OK and then right-click on the icon of your print queue and choose Properties in the pop-up menu. In the Policies section of the dialog make sure that Shared is activated.

  3. Make sure your mobile device is accessing your local network using WLAN and then open an application with printing functionality on it (like for example the browser or the photo viewer). Print something. The print dialog should show your print queue and allow some basic settings.

Note: The Description/Info field and not the name of the queue is shown.

This is automatically available in GNU/Linux distributions with CUPS since version 1.4.6 (such as Trisquel 5 and Ubuntu 11.04). AirPrint Activator provides the functionality on Mac OS X. There is also a paid solution offered to Windows users.

Some of this information was adapted from the AirPrint article on Wikipedia (which I updated previously).

  • Sorry to respond to a bit of a dated post, but I tried this in 12.04 and it doesn't seem to be working as my iPhone (running iOS 6) is not finding any printers. Any thoughts? I'm not even sure where to begin debugging . . . – ernie Sep 28 '12 at 8:05
  1. First download this Python file and make it executable: https://github.com/tjfontaine/airprint-generate/raw/master/airprint-generate.py : Go to the downloaded file , right-click, show Properties, Permissions, and check-mark; Allow executing file as program. 1b ) go to the downloaded file , right-click, show Properties, Permissions, and check-mark; Allow executing file as program.
    1. Run it in a terminal to create a customized service file: Open a terminal,go to the folder where you downloaded the file and run; sudo python airprint-generate.py 2b ) Open a terminal,go to the folder where you downloaded the file and run; sudo phyton airprint-generate.py 2c ) look for file/files like; AirPrint-Your-printer-name-.service
  2. Save the generated file in /etc/avahi/services
  3. Edit /etc/cups/cupsd.conf
  4. Add ServerAlias * Port 631 Listen /var/run/cups/cups.sock

  5. Now go back to System -> Administration -> Printing and click Server -> Settings. Make sure "Publish shared printers connected to this system" is checked. Click OK. Restart the CUPS server. sudo /etc/init.d/cups restart

  6. You should now be able to print from the iPhone, the iPod Touch or the iPad!


This method is good for iOS5.x but not run with iOS6.0, can't find any printer otherwise founded with iOS5.x

Thaks anyway for Your explain

founded a solution here: Re: iOS 6 doesn't recognize CUPS print sharesdescription here

Hope will be helpfull

it work for me

  • Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. – Peachy Oct 8 '12 at 13:39

I'm using Ubuntu 14.04.3. My iPad is IOS 8.4.1. I followed MagicFab's directions above to create the "AirPrint-Your-printer-name-.service" file, which I copied to the directory following his directions.

Then I followed the directions listed here: http://www.linux-magazine.com/Online/Features/AirPrint . I altered my cupsd.conf file to replicate the exaple they had on the webpage. There are too many directions to cut and paste here.

Finally I browsed to my workstation's local CUPS admin page "localhost:631/admin" and "Administration | Server | Server Settings" and checked "Share printers connected to this system" and also checked "Allow printing from the Internet".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.