Archlinux Serüveni 4: Yazıcı Sorunu

4 dakikalık okuma

Archlinux’u kurduğumdan bu yana, yazdırma ile ilgili sorunlar yaşıyordum ve bugün itibariyle sorunu çözüp buraya not etmek istedim. Bu bölümün içeriğinde, karşılaştığım yazıcı sorunlarını ve çözümünü anlatıyor olacağım.

Hemen yazıcı marka ve modelimi belirteyim: Lexmark E260d. Windows kullanırken her şey çok rahattı. Sürücüsünü kurup, yazdırıyordum istediğim uygulamadan istediğim belge türlerini. Ancak bu durum Archlinux kurduktan sonra iyice bulaşık bir hal aldı. O hallerden biraz bahsedeyim.

Karşılaştığım Sorunlar

Yazıcıyı sisteme tanıtmak için Archlinux Wiki – CUPS başlıklı sayfayı okuyup kurulumu yapmıştım. Sistem tanıdı mı yazıcıyı? Evet tanıdı. Ancak her uygulamadan yazdırma işlemini gerçekleştiremiyordum. Mesela Chrome ile açtığım bir PDF dosyasını yazdırmaya çalıştığımda A4 kağıda şu satırlar dökülüyordu:

Hata

Yazdırma vakalarımın birçoğunda kağıtta bunların yazması bir hayli sinir bozucuydu. Bu durumlarda, bazı kullanıcılar, PDF dosyasını Evince gibi PDF görüntüleyici programlarla açıp oradan yazdırıyorlar-mış, forumlardan edindiğim bilgilere göre. Ben de öyle yaptım tabii. Artık PDF dosyaları direkt Evince’te açıyor sonrasında yazdırıyordum. Eğer dosya PDF değilse düz metin ise, onu da PDF ‘e çevirip Evince’te açıp öyle yazdırıyordum. Artık canıma tak etti. Ve tekrar gündemime aldım sorunu.

Önceki kurulumda, yazıcı kurulumu için gerekli olan .PPD (PostScript Printer Description) uzantılı dosyayı Foomatic ‘ten çekip kullanmıştım. Ancak yukarıda değindiğim problemle karşılaştım. Biraz araştırmayla bazı forumlarda hatanın, yazıcı sürücüsünden kaynaklandığı yazılıyordu. Bunun üzerine Lexmark’ın sitesine girip “PPD (PostScript Printer Description) for CUPS-based systems” sürücüsünü indirdim ve içinde gelen Readme-CUPS.txt dosyasındaki yönergeleri takip ederek kurulumu gerçekleştirdim. Artık her uygulamadan her türde dosyayı yazdırabiliyorum.

Her ne kadar hata çözülse de hatanın nedenini araştırdım. Eski sürücü ile de problemi basit konfigürasyonlarla çözebilir miydim diye merak ediyordum. Birkaç platformda hatanın bir PostScript hatası olduğu belirtiliyordu [1, 2]. Hatada geçen setpagedevice ibaresi, sorunun, yazıcının çıkış birimlerinin yanlış konfigürasyonundan kaynaklandığını gösteriyordu. Mesela sürücü parametrelerinden çıktı alınacak tepsi seçimi, yazıcıda olmayan bir tepsi olarak ayarlanmışsa bu hata alınabiliyor. Ya da yazıcının desteklemediği bir sayfa boyutunda çıktı isteniyorsa da aynı şekilde hatalarla karşılaşılabiliyor. Ben de kendi parametre değerlerime hem yazıcının web arayüzünden hem de konsoldan bakıp kontrol ettim. Bazı değerleri değiştirdim ancak sorunu çözemedim. Aşağıda parametreler ve değerleri mevcut.

PageSize/Page Size: Custom.WIDTHxHEIGHT Letter *A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvMonarch Executive Legal
InputSlot/Media Source: Default *Upper Lower Multipurpose Manual
Duplex/Double-Sided Printing: DuplexNoTumble DuplexTumble *None
Resolution/Resolution: 150x150dpi 300x300dpi 600x600dpi *1200x1200dpi

Ardından yeni yüklediğim sürücünün parametrelerine baktım:

PageSize/Media Size: Letter Legal Oficio B5 *A4 Executive A5 A6 Folio Statement Monarch C4 Comm10 DL C5 ISOB5 OthEnv Custom.WIDTHxHEIGHT
InputSlot/Media Source: *Tray1 Tray2 ManualPaper ManualEnv
Trays/Trays: *Tray1 Tray12
OptDuplex/Duplex: *InstalledM NotInstalledM
Resolution/Resolution: 600dpi 1200dpi *1200x600dpi 2400x600dpi
TonerDarkness/Toner Darkness: *PrinterS 1 2 3 4 5 6 7 8 9 10
GrayCorrection/Gray Correction: *PrinterS Auto FalseM
LexPixelBoost/Pixel Boost: *PrinterS False Fonts Horizontally Vertically BothDirections
LexBrightness/Brightness: *PrinterS -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6
LexContrast/Contrast: *PrinterS 0 1 2 3 4 5
LexLineDetail/Enhance Fine Lines: *PrinterS FalseF TrueF
OutputBin/Output Bin: *PrinterS StandardBin
MediaType/Paper Type: *PrinterS Plain Card Transparency Labels Bond Envelope Letterhead Preprint Colored Light Heavy Rough Recycled RoughEnvelope Custom1 Custom2 Custom3 Custom4 Custom5 Custom6
LexBlankPage/Print Blank Pages: *PrinterS False True
Duplex/Duplex: *None DuplexNoTumble DuplexTumble
Collate/Collation: False *True
SepPages/Separator Pages: *PrinterS NoneF Jobs Copies Pages
SepSource/Separator Source: *PrinterS Tray1 Tray2

Görüldüğü gibi eski sürücüde yeni sürücüdeki parametreler yok. Zaten varolan parametre değerlerinin alabileceği tüm kombinasyonları denememe rağmen hata ile karşılaştım. Sonuç itibariyle sorunu yeni sürücüyü Lexmark’ın kendi web sitesinden yükleyerek çözdüm. Umarım bir daha sorun çıkarmaz.

Güncelleme 1 (10.07.2018)

“Umarım bir daha sorun çıkarmaz.” dedim, dün. Ama maalesef başka bir sorunla daha karşılaştım. Hemen sorunu tanımlayayım; Bugün acil çıktı alma ihtiyacım oldu. Ancak istediğim zamanda yazdıramadım. İdeal olanı, butona bastığınız anda çıktıyı almaktır. Ama 3-5 defa basmama rağmen yazıcı hareketleniyor, bir takım sesler (ilk açıldığında çıkardığı gibi) çıkarıyor ancak sonuç yok. Sonra dmesg ile loglara bir bakayım dedim ve şu satırlarla karşılaştım;

[86816.271877] usblp 3-2:1.0: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x043D pid 0x0122
[87059.244133] usblp0: removed

Hatanın nedenini araştırmaya başladım. Yine forumlarda bir sürü bilgi kalabalığı vardı. Neler neler denemişler tabii ben de denemek zorunda kaldım. Yazıcı ara kablosunun bozuk veya olması gerekenden uzun olabileceğini veya USB portlarında sorun olabileceğini dillendiren forum sakinleri de vardı. Ancak sorun olsaydı Windows işletim sistemini kullanırken de benzer problemlerle karşılaşırdım. Zaten kablo tek parça ve uzun değildi. Dolayısıyla bu ihtimali  de eledim.

Yukarıdaki hata kayıtlarına bakınca, hatanın usblp modülünden kaynaklanabileceğini düşünüp söz konusu modül üzerine araştırmalarımı yönelttim ve döndüm dolaştım yine Arch Wiki ‘de buldum kendimi. CUPS sayfasında altbaşlık olarak usblp modülünde çakışma olabileceğinden bahsedilmiş ve çözüm önerisi de sunulmuştu [3].

Önerilen çözüme göre usblp modülünü blacklist’e aldım ve usbcore modülünü aktif ettim. Bu sorun da bu şekilde çözülmüş oldu. Ancak modülü anlık yükledim yani bilgisayar kapanıp açılınca usbcore modülü yüklenmeyecek ve manuel olarak yükleyeceğim. Bunun da önüne geçmek için kalıcı ayarları yapıp tekrar bu yazıyı güncelleyeceğim.

Güncelleme 2 (08.08.2018)

Yeni karşılaştığım bir problemin çözümünü de buraya eklemek istedim. Son yazdırma deneyimimde birden fazla sayfa yazdırırken, yazıcı iki sayfa arasında normalden çok ama çok uzun bekliyordu. Sanki iki sayfa arasında yazıcı kapanıp tekrar açılıyor ve yazdırmaya kaldığı yerden devam ediyordu. Sistem loglarına baktığımda güçle ilgili bir hata alıyordum. Sonra bu durumun, güç tüketimini azaltmak için Archlinux’un kullanılmayan USB portlarındaki gücü askıya almasından (autosuspend) kaynaklandığını öğrendim [4].

Çözümü gayet basitti. Yazıcının lsusb komutuyla kimlik bilgilerini alıp aşağıdaki gibi yeni bir udev kuralı oluşturmak gerekiyordu.

lsusb çıktısı:

Bus 003 Device 002: ID 043d:0122 Lexmark International, Inc.

Udev kuralı: /etc/udev/rules.d/50-usb_power_save.rules

# blacklist for usb autosuspend
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="043d", ATTR{idProduct}=="0122"

Bu konfigürasyonların ardından bu problem de giderilmiş oldu.

Kaynaklar

  1. http://www.fixya.com/support/t10394952-clear_syntaxerror_offending

  2. https://groups.google.com/forum/#!topic/comp.unix.admin/xzz7jn0TiKI

  3. https://wiki.archlinux.org/index.php/CUPS/Troubleshooting#Conflict_with_usblp

  4. https://wiki.archlinux.org/index.php/Power_management#USB_autosuspend

comments powered by Disqus