CUPS Yazdırma Sunucusunu Kurmak

Raspberry Pi’ı bir yazdırma sunucusu olarak yapılandırarak, yerel yazıcılarınızı (USB) ağ üzerinden kullanıma sunabilirsiniz. Bu kullanım şekli, yeni bir ağ destekli (ethernet) yazıcı satın alma maliyetini ortadan kaldırdığı gibi hâlihazırdaki USB yazıcıların bir PC’ye bağımlı olmadan ağ üzerinden kullanılabilmesini de sağlar. Böylece hem bir PC’nin sürekli olarak açık kalma zorunluluğu ortadan kalkar hem de elektrik ve bakım giderlerinden ciddi bir tasarruf sağlanmış olur. Raspberry Pi ile başka hiçbir şeye ihtiyaç duymadan 4 adet USB yazıcıyı ağ üzerindeki diğer kullanıcılarla paylaşabilirsiniz. Dilerseniz USB hub’lar kullanarak bu sayıyı artırmanız da mümkün.

Benzer şekilde Raspberry Pi kullanarak diğer ağ yazıcılarınızı da tek bir merkezde toplama şansına sahipsiniz. Raspberry Pi üstün mimarisi ile tüm bunların üstesinden başarıyla gelebilecek kabiliyettedir. Bu işi yapmak için CUPS[1] adlı yazılımı kullanacağız. CUPS aynı işlevi gören yazılımlar arasında en meşhurlarından birisidir. Gelin CUPS hakkında biraz daha bilgi sahibi olalım.

CUPS nedir?

Linux’ta ağ yazdırma hizmeti ara katmanı olarak çalışan CUPS (Common UNIX printing system),  popüler ağ yazdırma protokollerinden birisi olan IPP (Internet Printing Protocol, [TCP Port 631])[2] ile ağ destekli bir yazdırma hizmetinin kullanılmasını sağlar. CUPS içerisinde dot-matrix‘den lazer yazıcılara kadar birçok yazıcı için sürücüler (filters) ve yazdırma araçlarını barındırır. CUPS temel olarak IPP protokolünü kullanarak ağdan gelen yazdırma istekleri için bir yazdırma havuzu (print spooler) ve zamanlayıcı (scheduler) olarak çalışır ve bunların yönetilmesini sağlar. CUPS’ın en güzel özelliklerinden birisi de bünyesinde bulundurduğu bir web arabirimi ile yazıcı ve yazdırma işlerinin web üzerinden yönetilebilmesine olanak tanımasıdır.

CUPS’ın yapısı

IPP istemcisi konumunda herhangi bir modern işletim sistemi yer alabilir. Windows IPP’ye XP versiyonundan itibaren destek vermeye başlamıştır. Şu an kullanımda olan Linux ve Unix türevlerinin tamamına yakını IPP’yi destekler. Şimdi CUPS hizmetini Raspberry Pi’a nasıl yükleyeceğimize bakalım.

CUPS hizmetini yüklemek için aşağıdaki komutları çalıştırın:

CUPS’ın web arabirim üzerinden yönetilebilmesi için gerekli izinleri cupsd.conf(ileride detaylı açıklanacaktır) aracılığı ile verebileceğiniz gibi konsol ile de kolayca gerçekleştirebilirsiniz:

Son olarak, Raspberry Pi’a, CUPS hizmetini web üzerinden yönetmek için bir kullanıcı/parola tanımlayacağız ve bu kullanıcıyı CUPS’in yönetsel grubu olan lpadmin grubuna dâhil edeceğiz. Bunun için yeni bir kullanıcı oluşturabileceğimiz gibi mevcut kullanıcı olan Pi’ı de kullanabilirsiniz. Pi’ı lpadmin (line printers administrators) grubuna ekleyelim:

Buraya kadar başarıyla geldiyseniz, web tarayıcınızın adres çubuğuna Raspberry Pi’ın adresini aşağıdakine benzer şekilde yazarak CUPS’ın web yönetim arabirimine ulaşabilirsiniz. Giriş için pi kullanıcısını kullanın.

CUPS’ın web yönetim arabirimi

Bu web arabirimini kullanarak, yeni yazıcı ekleme, yazıcı varsayılan ayarlarını değiştirme, yazıcı sınıfı oluşturma ve yazdırma kuyruğunu (jobs) yönetme gibi işlemleri kolaylıkla yapabilirsiniz.

CUPS’ın güzel özelliklerinden birisi de Class (sınıf/küme) sistemidir. Aynı Class’a dâhil ettiğiniz yazıcılar tek bir yazıcı gibi davranır ve gelen yazdırma işlerini kendi aralarında dengeli olarak paylaşırlar. Bunu Web’de kullanılan load balancing uygulamasına benzetebilirsiniz. Yazdırma talebi gönderen istemci, kuyrukların boşalmasını beklemeden boştaki yazıcı ile hızlıca baskısını alır. Bu durumda Class içindeki yazıcılar ağ üzerindeki kullanıcılara tek bir yazıcı olarak gözükür.

CUPS’a Yeni Bir Ağ Yazıcısı Eklemek

Yeni yazıcı eklemek için CUPS’ın web arabiriminden Administration sekmesine tıklatın. CUPS hâlihazırda birçok popüler yazıcının sürücüsüne zaten sahiptir. Bu aşamada öncelikle USB yazıcınızı Raspberry Pi’ın USB port’larından herhangi birine bağlayarak yazıcınızın enerjisini açın.

CUPS’ın Yönetim Ekranı

Yönetim ekranındayken Add Printer düğmesine tıklattığınızda CUPS, yazıcınızı Local Printers olarak tanıyacaktır. Aynı işlemi Find New Printers düğmesine tıklatarak da yapabilirsiniz.

CUPS yeni yazıcı ekleme ekranı

Eklemek istediğiniz yazıcıyı seçip Continue düğmesine tıklatın. Bu örnekte Canon iP2800 series adlı yazıcı seçilmiştir. Sonraki ekranda yazıcınızın ağda hangi isimle görüneceğini ve açıklamasını tanımladıktan sonra Share This Printer seçeneğini işaretleyin ve ağda paylaşılan bir yazıcı olarak eklemek için Continue düğmesine tıklatın.

Yeni yazıcı tanımlanması

Bir sonraki aşamada yazıcı listesinden yazıcınızın modelini seçerek Add Printer düğmesine tıklatın.

Yazıcınız bu listede gözükmüyorsa yazıcının üreticisinin web sitesinden Linux driver’ının olup olmadığını kontrol edin. Çoğu durumda yakın bir model numarası seçmek de yazıcının çoğu fonksiyonunun kullanılabilmesine izin vermektedir. Yazıcınız listede gözükmüyorsa uygun bir yazıcı sürücüsünü Provide a PPD File kısmından yüklemek gerekir.

Yazıcı modeli seçmek

Sonraki aşamada yazıcınızın yazdırma özelliklerini tanımlayabileceğiniz bir ekrana ulaşacaksınız. Burada aşina olduğunuz birçok yazdırma ayarını bulabilirsiniz. Artık yazıcımız ayarları yapılmış ve ağa paylaşılmış durumdadır. Bu ayarları web arayüzünü kullanarak dilediğiniz zaman değiştirebilirsiniz.

Yazıcının yazdırma ayarlarının yapılması

CUPS Hizmetini cupsd.conf Aracılığı ile Yapılandırmak

CUPS ayarlarını /etc/cups/dizini altındaki cupsd.conf dosyasında saklar. Temel olarak; yazdırma hizmetini kullanmaya başlamak için yapılandırma dosyasında değişiklik yapmaya gerek yoktur. Ayar dosyasında değişiklik yapmaya başlamadan önce yedek bir kopyasını oluşturmakta fayda var. Böylece daha sonra kullanılmak üzere; orijinal ayarlar hakkında referans oluşturacak temel bir yapılandırma dosyası her zaman elimizin altında olacaktır.

cupsd.conf içindeki bazı önemli olabilecek yapılandırma ayarları şunlardır:

  • ServerAdmin: CUPS sunucu yöneticisinin e-posta adresidir. Buraya kendi e-posta adresinizi yazabilirsiniz. Örn: ServerAdmin [email protected]
  • LogLevel:  CUPS hizmetinin günlük kayıtlarının hangi detay seviyesinde tutulacağını belirtir. /var/log/cups/error_log dosyasında tutulan günlükler (log) bir sorun olduğunda hatayı bulmak için faydalı bilgiler sağlayabilir. Bu yapılandırma anahtarı warn ve debug olmak üzere iki değere sahip olabilir. Oluşan hatalar hakkında detaylı rapor almak isterseniz normalde warn olan bu değeri debug olarak değiştirip CUPS servisini yeniden başlatmanız yeterlidir. Yalnız bu değeri debug olarak unutursanız log dosyaları şişerek disk alanını tüketecektir.
    Örn: LogLevel warn
  • Listen: CUPS hizmetinin hangi IP adresi ve port numarası üzerinden verileceğini tanımlar. Varsayılan olarak localhost:631 değerine sahip olan adresi, istediğiniz (kullanılmayan) bir port numarası ile değiştirebilirsiniz. Raspberry Pi birden fazla IP adresine sahipse tüm IP adreslerinin dinlenmesi * sembolü ile şöyle bir tanımlama yapabilirsiniz.
    Örn:  Listen *:631
  • WebInterface: CUPS’ın dâhili web arabirimini aktif/pasif yapmak için kullanılır. Yes ve No değerlerine sahip olabilir.
    Örn: WebInterface Yes
  • Browsing: Yazıcıların ağda görünür olup olmayacağını belirlemek için kullanılır. On ve Off değerlerini alabilir.
    Örn: Browsing On
  • ErrorPolicy:  Yazdırma sırasında hata oluştuğunda yazıcının işleme nasıl devam edeceğini tanımlayan bir ayardır. Bu ayar varsayılan olarak stop-printer yani yazıcıyı durdur (paused) işlemine ayarlanmıştır. Eğer herhangi bir sebepten ötürü yazıcınız paused durumuna geçerse onu yeniden etkinleştirmeniz gerekir. Bu durumun çözümü ile ilgili bilgi bölümün sonundaki hata giderme yardımlarında yer almaktadır. Size tavsiyem ErrorPolicy değerini abort-job olarak ayarlamanızdır. Böylece yazıcı o anki yazdırılan işi iptal edecek ve yeni işleri almaya hazır olarak bekleyecektir.
    Örn: ErrorPolicy abort-job

Diğer yapılandırma anahtarları için CUPS’ın çevrim içi yardım kılavuzundan yararlanabilirsiniz. [3] Söz konusu yapılandırma anahtarları ile özetle neler yapılabileceğinden bahsetmek gerekirse; CUPS’ın web arabirim port numarasını değiştirebilir, yazıcıların ağda herkesçe görünür olup olmayacağını, CUPS hizmetini kullanacak bilgisayarların IP adresi bazında izinlendirilmesi gibi daha birçok yapılandırmayı gerçekleştirebilirsiniz. Yapılandırmanın geçerli olabilmesi için CUPS hizmetini yeniden başlatmayı unutmayınız:

Windows bilgisayarına CUPS ağ yazıcısını tanıtmak

Windows’ta Denetim Masasından yazıcılara tıklatın. Daha sonra yeni yazıcı ekle düğmesine tıklatarak Ağ yazıcısı eklemeyi seçin ve ilerleyin. Eklemek istediğiniz ağ yazıcısı listelenmiyorsa “İstediğim yazıcı listelenmiyor” düğmesine tıklatın ve paylaşılan yazıcının adresini aşağıdaki ekran görüntüsündeki gibi yazın.

Paylaşılan ağ yazıcısın IPP adresi

Adresi yazarken http protokol belirtecini ve port numarası olan 631’i yazdığınızdan emin olun. Yazıcınızın ağda paylaşılan adını görmek için CUPS’ın web arabiriminin Printers menüsünde listelenen yazıcı adına bakabilirsiniz. IPP adresini doğru yazdıysanız Windows sizden yazı için uygun bir sürücü yüklemenizi isteyecek. Elinizde yazıcının Windows sürücüsü varsa “Disketi var” düğmesine tıklatarak yerini gösterin eğer yoksa listeden yazıcı marka ve modelinizi seçin ve ileriyi tıklatın.


CUPS yazıcısının Windows sürücüsünü yüklemek

Windows’a başarıyla eklenmiş CUPS yazıcısı

Sorun Giderme

Yazıcı ağda görünmüyor: Yazıcıların durumunu komut satırından takip etmek için lpstat komutu kullanılabilir.

Yazıcı ekleme sırasında Cups tarafından tanınmıyor: Yazıcınızı açın ve USB kablosunun soketlerine tam olarak oturduğundan emin olun ve aşağıdaki komutla USB yazıcının Linux çekirdeği tarafından tanınıp tanınmadığına bakın. Yazıcınız dmesg ve lsusb çıktısında gözükmüyorsa USB kablonuzu değiştirin.

Windows CUPS yazıcısını yükleyemiyor: Öncelikle CUPS web arabiriminin yazıcıyı listelediğinden emin olun. Daha sonra cupsd.conf dosyanızdaki Browsing değerinin On olduğundan emin olun. Windows’un denetim masasında yer alan Programlar ve Özellikler seçeneğinden, Windows özelliklerini aç veya kapat’a tıklatarak gelen listeden aşağıdaki gibi “internet Yazdırma İstemcisi” nin (IPP) ekli olduğundan emin olun.

Windows internet Yazdırma İstemcisi

Yazıcının Raspberry Pi sürücüsü yoksa: İdeal şartlarda yazıcınızın CUPS sürücüsünün destek listesinde olması gerekir. Linux işletim sistemin yaygınlaşması ile birlikte yazıcı üreticileri Linux Driver’larını da çıkartmaya başladılar[4]. Lakin bu sürücüler çoğunlukla x86 (intel tabanlı) tabanlı sistemler için sunulmaktadır. Raspberry Pi, ARM mimarili bir işlemciye sahip olduğu için çoğu zaman bu sürücüler de bir işe yaramaz. Size tavsiyem sürücü yükleme adımında marka model seçmek yerine PPD (PostScript Printer Description) dosyası kullanarak tanıtımı gerçekleştirmenizdir.

Yazıcınızın PPD dosyasını internetten aratarak bulabilirsiniz. Eğer popüler yazıcılardan birisini kullanıyorsanız birilerinin bu dosyayı paylaşmış olma ihtimali çok yüksektir. Ayrıca mevcut sürücü paketleri içerisinde de bu dosyayı bulma ihtimaliniz vardır. PPD dosyası, yazıcının font ve kâğıt desteği, çözünürlük gibi yeteneklerinin tanımlı olduğu metin tabanlı bir bilgi dosyasıdır.

PPD dosyası ile yazıcı tanıtma

PPD dosyasını bulamıyorsanız: Günümüzde satılan hemen hemen tüm yazıcıların Linux sürücüleri de üreticiler tarafından sunulmaktadır. Sunulan dosyalar genellikle debian (.deb) ve redhat (.rpm) paketleri şeklinde olmaktadır. Eğer PPD dosyasını bulamadıysanız yazıcınızın sürücüsüne ait bir.rpm veya.deb dosyasının içerisinden bu dosyayı elde edebilirsiniz. RPM ve DEB dosyaları temelde birer arşiv dosyalarıdır (zip ve tar gibi); ancak bu arşivleri açmak için standart araçlar yeterli olmaz. Bu kısımda ilgili dosyaların nasıl açılacağı ve içerisinden ilgili yazıcının PPD dosyasının nasıl elde edileceği tarif edilecektir.

Öncelikle www.openprinting.org/printers adresinden yazıcınızın rpm sürücü dosyasını indirin. RPM paketinin içindeki dosyaları dışarı çıkartmak için rpm2cpi ve cpio araçlarından yararlanacağız bu araçları aşağıdaki gibi kurun:

Daha sonra indirdiğinizi rpm sürücü dosyasının adını aşağıdaki gibi yazarak paket içeriğini dışarı çıkartın:

Çıkartma işlemi tamamlandıktan sonra aynı dizinde yeni bir dizinin oluştuğunu göreceksiniz. Burada yer alan ppds dizininde size lazım olan PPD dosyasını görebilirsiniz.

Yazıcı durmuş gözüküyor:  Windows’tan veya Cups’ın web panelinden yazıcının durmuş olduğu mesajını alıyorsanız öncelikle /var/log/cups/error.log dosyasından bunun nedeni hakkında bilgi sahibi olmalısınız.

Durmuş yazıcı

 Yazıcının durumu hakkında bilgi sahibi olmak için lpc ve lpstat araçlarından faydalanabilirsiniz:

Yazıcının CUPS tarafından durdurulduğunu gördükten sonra cupsenable aracı ile yazıcıyı tekrar faal hale getirebilirsiniz. Bunun için yukarıdaki ekran çıktılarından elde edeceğiniz yazıcı ismini cupsenable aracına seçenek olarak verin:

Eğer istemci olarak Windows kullanıyorsanız “Yazdırma biriktiricisi” adlı Windows hizmetini yeniden başlatmayı unutmayın. Bunun yerine Windows bilgisayarını da yeniden başlatmayı deneyebilirsiniz.

CUPS Hizmetini Sistemden Kaldırma

CUPS hizmetini ve tüm bileşenlerini kaldırmak isterseniz:

Hizmeti kaldırdıktan sonra hâlihazırdaki yapılandırma ayar dosyalarını da silmek isterseniz şu komutlardan yararlanabilirsiniz:


[1] CUPS – https://en.wikipedia.org/wiki/CUPS

[2] IPP (Intenet Printing Protocol) –  https://en.wikipedia.org/wiki/Internet_Printing_Protocol

[3]https://www.cups.org/documentation.php/doc-2.1/man-cupsd.conf.html

[4]http://www.openprinting.org/printers adresinden yazıcıların Linux sürücülerini toplu şekilde listelenmektedir.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.