Linux Yazıcı Bileşenleri

Kullanacağımız temel bileşenler şunları içerir:

CUPS
Ortak Unix Yazıcı Sistemi (The Common Unix Printig System) (http://www.cups.org/) bir yazıcı kuyruğu oluşturucu (spooler) ve yazıcıları kullanmak ve yönetmek için bir uygulama kümesidir.
SAMBA
Samba (http://www.samba.org/) Windows olmayan makinaların bir ağda, Windows’un dosya ve yazıcı paylaşım protokollerini uygulayarak, Windows makinaymış gibi davranmasını sağlar.
Yazıcı Sürücüleri
LinuxPrinting.org (http://www.linuxprinting.org/) en geniş sayıda yazıcı sürücüsü sunmakta ve Linux altında desteklenen yazıcıların veritabanını tutmaktadır. Linux altında kullanmak istediğiniz her model yazıcı için sürücüsünü indirmelisiniz. Bir yazıcı sürücüsü bir PPD dosyası ve filtre uygulaması veya PostScript yazıcılar için sadece PPD dosyasından oluşur.

Gerekli Paketler

Bütün gerekli uygulamalar ve paketler standart Debian arşivinin bir parçasıdır. Bu paketleri standart Debian paket araçları kullanarak indirip yükleyebilirsiniz. Aşağıda ihtiyacınız olacak paketlerin bir listesi vardır:

cupsys
CUPS sunucu
cupsys-bsd
CUPS BSD komutları
cupsys-client
CUPS istemci uygulaması
foomatic-bin
LinuxPrinting.org yazıcı destek uygulamaları
samba
Unix için Samba SMB/CIFS sunucu
smbclient
Unix için Samba SMB/CIFS istemci
gs-esp
ESP Ghostscript (http://www.cups.org/ghostscript.php)
Debian GNU/Linux Sarge paketi olarak mevcut değildir, yerine gs kullanın
a2ps
GNU A2PS (http://www.gnu.org/software/a2ps/)

Aşağıdaki komutlar bu paketleri yükleyecektir. Bu komutları çalıştırabilmeniz için root olmanız veya sudo komutunu kullanmanız gerekmektedir:

apt-get update
apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin samba smbclient gs-esp a2ps

Bazı özel yazıcılar için ek paketler gerekli olabilir. Örneğin, hpijs paketi pekçok HP InkJet, DeskJet ve LaserJet yazıcıyı düzgün şekilde çalıştırabilmek için yüklenmelidir. Bu yazıcılar için gerekli olan PPD dosyaları dosya adlarındaki hpijs ifadesi ile ayırt edilebilir.

CUPS Yerel Yazıcı Yapılandırma

lpadmin komutu yazıcıları yapılandırmak için kullanılır. Aşağıda CUPS ile bir Laser yazıcının yapılandırılma örneği vardır. Bu komutları çalıştırabilmeniz için root olmanız veya sudo komutunu kullanmanız gerekmektedir:

/usr/sbin/lpadmin -p Laser -v parallel:/dev/lp0 -P /root/laser.ppd
/usr/bin/enable Laser
/usr/sbin/accept Laser
/usr/sbin/lpadmin -d Laser

Bash kabuğunun enable şeklinde çağrılan yerleşik bir komutu olduğunu unutmayın, bunun için Bash kabuğu kullanıcıları yazıcıları etkin hale getirmek için komutun tam yolunu vermelidir (/usr/bin/enable).
İlk komut Laser isimli ilk paralel porta bağlı ve PPD dosyası olarak /root/laser.ppd dosyasını kullanan bir yeni yazıcı oluşturur. Daha sonra enable ve accept komutları ile Laser’in etkin olması ve kendisine gönderilen işleri kabul etmesi sağlanır.
Eğer yazıcınız USB portuna bağlıysa veya yazıcınız için doğru aygıt belirleyicisini bilmiyorsanız, varolan yazıcı aygıtlarının listesini görmek için /usr/sbin/lpinfo -v komutunu deneyin.
/usr/bin/lpoptions -l komutunu çalıştırarak yazıcınızın sayfa boyu ve diğer özelliklerinin doğru olup olmadığından emin olun. Yazıcı yapılandırmaları ilgili daha ayrıntılı bilgi CUPS belgesinde bulunmaktadır.

Linux’ta Temel Yazdırma İşlemleri

Belgelerin ya lpr veya lp komutuna dosya adları ile belirtilerek yazıcı kuyruğunda bekletilmesi sağlanır. Yazıcı kuyruğunu ve yazıcının durumunu lpstat -o veya lpstat -p komutu ile görebilirsiniz. Bir yazma işini iptal etmek için cancel veya lprm komutunda yazdırma iş numarasını kullanın.
CUPS, yazıcı kuyruğunda bekletme artalan süreci cupsd olarak isimlendirilir. Önce belgeleri PostScript biçimine daha sonra da yazıcının anlayabileceği bir biçime çevirir. PostScript biçimini algılayamayan yazıcılar, belgeler için, ızgaralanmış (rasterized) veya biteşlem (bitmap) biçimini kullanır. Izgaralanmış belgelerin boyu PostScript halinden daha büyük olabilir ve bu da yazıcıya gönderilme zamanını arttırır.
Filtreler, belgeleri bir biçimden diğerine dönüştürmek için kullanılan araçlardır. CUPS bekleticisi gönderdiğinizi belgeye uygun bir filtre bulmak için elinden gelenin en iyisini yapacaktır. Eğer belgenizi dönüştürmek için herhangi bir filtre yüklü değilse, lpr:unable to print file: client-error-document-format-not-supported.’e benzer bir hata alırsınız.
Pek çok uygulama kendi belge biçimleri için filtreler içermez. Bu uygulamalar ile oluşturulan belgeler, yalnızca uygulamanın içerisinden yazdırılabilir, aksi halde belgenin PostScript biçimine veya başka bir biçime dönüştürülmesi gerekir.

Windows Makinalara Bağlanma

SMB ve CIFS, Windows dosya ve yazıcı paylaşım protokolleridir. Bu protokolleri kullanan Windows makinalarla iletişim kurabilmek için SAMBA’yı kullanıyoruz. CUPS’u yapılandırmadan önce, Windows makinalara smbclient ile bağlanabileceğimizden emin olmalıyız.
Aşağıda bir Windows makinaya bağlantının nasıl yapılacağının bir örneği vardır:

/usr/bin/smbclient -L rice -U fred

added interface ip=10.6.7.234 bcast=10.6.7.255 nmask=255.255.255.0
Got a positive name query response from 10.6.7.8 ( 10.6.7.8 )
Password: (not shown)

Sharename Type Comment
PRINTER$ Disk
INKJET Printer
STUFF Disk
IPC$ IPC Remote Inter Process Communication

Gösterilen komut Windows makinadaki rice isimli paylaşım listesini fred kullanıcı adıyla sorgulamaktadır. Sonuç da INKJET isimli yazıcıdır.
Eğer Windows isimledirme servisi erişilemez durumdaysa o zaman Wİndows makinanın IP adresini -I seçeneği ile şu şekilde belirtmeniz gerekir:

/usr/bin/smbclient -I 10.6.7.8 -L rice -N

Daha fazla bilgi için Samba belgesinin smbclient kullanımı ile ilgili kısmına bakınız.

CUPS Yapılandırması

Windows makinaya bağlı bir yazıcı bulduktan sonra CUPS’u yapılandırabilirsiniz. Öncelikle CUPS yüklemenizin smb sunucu uygulamasına sahip olup olmadığını aşağıdaki komut ile sınayın:

ls -l /usr/lib/cups/backend/smb

Eğer bu dosya yoksa aşağıdaki şekilde oluşturun:

ln -s `which smbspool` /usr/lib/cups/backend/smb

Aşağıda yukarıda açıklanan şekilde bir yazıcı kurulumu gösterilmiştir. Bu komutları çalıştırabilmeniz için root olmanız veya sudo komutunu kullanmanız gerekmektedir:

/usr/sbin/lpadmin -p RicePrinter -v smb://fred:mypass@rice/INKJET -P /root/inkjet.ppd
/usr/bin/enable RicePrinter
/usr/sbin/accept RicePrinter
/usr/sbin/lpadmin -d RicePrinter

Yukarıda da bahsedildiği gibi, bash kabuğunun enable olarak çağrılan yerleşik bir komutu vardır, bundan dolayı bash kullanıcıları yazıcıları etkin hale getirmek için bu komutun tam yolunu kullanmalıdır (/usr/bin/enable).
lpadmin komutu, kullanıcı adı, parolası, netbios adı ve printer adını tek bir parametre olarak vererek Windows makinalarla paylaşımlı bir yazıcı kurar.
Yazıcınız artık sınanmaya hazır. lp komutunu takip eden bir dosya adı ile veya bir uygulama içinden yazıcıya bir dosya gönderin.

Yazıcıları Windows Makinalarla Paylaşmak

Paylaşım Temelleri

Samba, nmbd ve smbd artalan süreçlerini Windows makinalarla dosya ve yazıcı paylaşmak için kullanmaktadır. nmbd Windows isimlendirme servisi gibi hareket ederek ağda bulunan Windows makinalara makina adınızı yayınlar. smbd, Windows makinalardan gelen yazıcı ve dosya isteklerini karşılar.
Paylaştırdığınız her Linux yazıcı için Windows yazıcı sürücülerini yüklemeniz gerekebilir. Windows sürücüleri, üretici firmanın sayfasında arama yapılarak bulunabilir.

Samba Yapılandırması

Eğer yazıcınıza anonim erişime izin veriyorsanız, uzaktan gönderilen yazıcı istekleri için bir kullanıcı hesabı oluşturmanız gerekir:

/usr/sbin/adduser --system --disabled-password smbprint

Bu komut sisteminize smbprint isimli bir kullanıcı ekler. smbprint kullanıcısının ev dizini ve yazıcı kuyruğundaki dosyaların tutulduğu yer olan /home/smbprint altında yeterli alan olup olmadığına bakın. smbprint kullanıcısının sisteminizdeki önemli dosyalara erişim yetkilerini, bu dosyalara okuma ve değiştirme için gerekli yetkilere sahip olmadığına da bakın. Eğer CUPS yapılandırmasını yaparken yazıcıyı sisteminizdeki belli kullanıcıların kullanımı için ayarladıysanız, smbprint kullanıcısına da paylaştırdığınız yazıcıya erişim hakkı vermelisiniz.
Samba yapılandırma dosyasının ismi /etc/samba/smb.conf’dur. Aşağıda CUPS’u smbprint kullanıcısıyla beraber kullanmak için yazılmış bir yapılandırma dosyası örneği vardır:

[global]
printcap name = cups
printing = cups
security = share
[printers]
browseable = yes
printable = yes
public = yes
create mode = 0700
guest only = yes
use client driver = yes
guest account = smbprint
path = /home/smbprint

Bu yapılandırma dosyası, bilgisayarınıza ağ bağlantısı yapan herkese yazdırma izni vermektedir, onun için de doğrudan internete bağlanan bilgisayarlarda olduğu gibi güvenli olmayan ağlarda bulunan bilgisayarlar için önerilmez. Eğer erişim denetimi sağlamak istiyorsanız, security = user veya security = domain şeklinde ayarlayın ve daha ayrıntılı bilgi için Samba kılavuz sayfasını okuyun.
Samba yapılandırma dosyasına yukarıdakileri ekledikten sonra Sambayı tekrar başlatmanız gerekir:

/etc/init.d/samba restart

CUPS Yapılandırması

Windows yazıcı sürücüleri çıktılarını bir ağa göndermeden önce, yazıcı için biçimlemektedir. CUPS’u, bu önceden biçimlenmiş çıktıları alabilmesi için /etc/cups/mime.types dosyasında aşağıdaki satırı etkin hale getirerek yapılandırmalısınız:

application/octet-stream application/vnd.cups-raw 0 -

Ayrıca /etc/cups/mime.convs dosyasındaki şu satırı da etkin hale getirin:

application/octet-stream

Şimdi CUPS’a ağdaki diğer makinalardan gelen bağlantılara izin vermesi söylenmelidir. /etc/cups/cupsd.conf dosyasına şu satırları ekleyin:


AuthType None
Order Deny,Allow
Deny From None
Allow From All

Samba yapılandırma dosyasında oluğu gibi, herhangi bir bilgisayarın yazıcınıza bağlanmasını sağlar ve güvenli olmayan ağlarda tavsiye edilmez. Yazıcılara olan erişim yetkilerinin sınırlandırılmasıyla ilgili bilgi almak için cupsd.conf kılavuz sayfasını ve CUPS belgesini okuyunuz.
Son olarak cups’u yeniden başlatın:

/etc/init.d/cupsys restart

Linux yazıcılarınız artık ağdaki Windows makinalara paylaştırılmış olmalıdır. Bir Windows makinaya ağ yazıcısı eklemek için yaptığınız bilindik adımları takip edin ve bir test sayfası çıkarmayı unutmayın.

Sorun Giderme

Windows Yazıcılara Bağlantı Sorunu

CUPS’un kullandığı smbclient hizmetlerinden biri olan smbspool, düzgün bir şekilde bağlanamadığı zaman, faydalı olmayan komik hata iletileri gönderir. Bu iletilerden biri: Unable to connect to SAMBA host: Success. Bağlantı hatasının olduğunun bir başka işareti de, Windows yazıcıda yazdırılmak için bekleyen belgenin kuyrukta takılıp kalmasıdır.
CUPS günlüğündeki (log) en son girdileri şu komut ile görüntüleyebilirsiniz:

/usr/bin/tail /var/log/cups/error_log

Eğer cli_connect() failed…’e benzer bir ileti görürseniz, smbspool bağlanmak istediğiniz Windows makinayı bulamamış demektir. Windows makina adını tekrar kontrol edin. Windows makinanın açık olduğundan ve ağ bağlantısının sağlıklı çalıştığından emin olun. smbclient komutu kullanarak o makinaya bağlanabileceğinizden emin olun.
SMB tree connect failed: ERRSRV – ERRinvnetname’e benzer bir hata iletisi görürseniz, o zaman smbclient Windows makinaya bağlanmış fakat istenen yazıcıya bağlanamamış demektir. smbclient komutunu kullanarak paylaştırılan yazıcının adını kontrol edin.

Diğer Hatalar

Diğer hatalar, yerel yazıcıda dosya yazdıramama ve yazıcı kuğruğundaki dosyaların yazdırılmadan kaybolmasıdır. Ayrıca Child process 2384 exited with status 32. şeklinde belirsiz hata iletileri de görebilirsiniz.
Bir yazma işi başarısızlığa uğramadan önce neler olduğunu görmek için CUPS’un günlük seviyesini (logging level) debug durumuna getirin.

1.
Ana CUPS yapılandırma dosyası olan /etc/cups/cupsd.conf isimli dosyayı bir dosya düzenleyici ile açın.
2.
LogLevel warn geçen satırı LogLevel debug olarak değiştirin.
3.
Ayarları kaydedin ve dosya düzenleyiciden çıkın.
4.
CUPS sunucusunu şu komut ile tekrar başlatın:

/etc/init.d/cupsys restart

CUPS günlüğünü şu şekilde takip edebilirsiniz:

/usr/bin/tail -f /var/log/cups/error_log

Şöyle bir satır görmelisiniz: Scheduler shutting down due to SIGTERM. Bu CUPS sunucusunun başarılı bir şekilde sonlandırıldığını belirtir.
Belgenizi tekrar yazıcıya gönderin ve hata iletilerine bakın. Faydalı olabilecek hata iletilerinden biri şöyledir: GNU Ghostscript 7.05: Can’t start ijs server ‘hpijs’. Bu durumda çözüm hpijs paketini yüklemektir.
Eğer hatanın nedenini belirleyemiyorsanız, anahtar kelimeleri kullanarak internette bir arama yapın; belki de benzer bir sorunu bir başkası çözmüştür daha önceden. Ayrıca paketlerinizi güncellemeyi de deneyebilirsiniz.

Reklamlar