Jeśli mówimy o udostępnianiu
drukarki obsługiwanej przez system Windows dla Linuksa lub
udostępnianiu drukarki linuksowej dla stacji roboczych Windows, to
najczęściej mamy na myśli wykorzystanie protokołu SMB oraz, w
przypadku Linuksa – pakietu samba.
Chciałbym tu zaproponować zupełnie
inne rozwiązanie, oparte o usługi LPD/LPR, które zostały
zaimplementowane w każdej wersji Windows (w Windows 10 Microsoft
miał to usunąć, na szczęście dotychczas tego nie zrobił),
chociaż nie są instalowane i uruchamiane domyślnie.
Rozwiązanie takie wydaje mi się
prostsze, a już na pewno jest o wiele bardziej uniwersalne. Można
na przykład drukować z Linuksa na windowsowej drukarce GDI, do
której albo w ogóle nie ma sterowników w systemie druku cups, albo
istniejący sterownik jest kiepskiej jakości, co się
zdarza, gdy społeczność próbuje odtworzyć działanie drukarki,
do której producent nie udostępnił specyfikacji. Warunkiem
dokonania takiej sztuki jest jednak, aby w systemie Windows dało się
skonfigurować wirtualną drukarkę postscriptową, a nie próbowałem
tego robić w systemach nowszych niż XP (i nie wiem, czy się w
ogóle da).
No dobrze: starczy już tego wstępu,
pora brać się do roboty.
1. Konfigurujemy i udostępniamy wirtualną drukarkę PostSript jak
opisano tutaj. Jeśli brak sterownika w systemie Linux nie jest
problemem, to możemy pominąć całą zabawę z GhostScriptem i
udostępnić od razu odpowiednią drukarkę fizyczną.
2. Teraz musimy zainstalować i uruchomić usługi drukowania dla
systemów Unix/Linux. W systemie Windows XP robi się to w ten
sposób, że uruchamiamy Panel Sterowania, wybieramy ikonę „Dodaj
lub usuń programy”, klikamy przycisk „Dodaj/Usuń składniki
systemu Windows” i instalujemy „Inne usługi plików i drukowania w
sieci” (potrzebna płyta lub katalog instalacyjny).
Wracamy do głównego okna Panelu sterowania, wybieramy ikonę
„Usługi”, znajdujemy usługę „Serwer wydruku TCP/IP” i we
właściwościach (prawy klawisz myszy -> „Właściwości”)
przestawiamy tryb uruchamiania na automatyczny.
Ciekawostka: Drukarka udostępniana poprzez „Serwer
wydruku TCP/IP” wcale nie musi być jednocześnie udostępniana w
sieci Windows. Można więc po zainstalowaniu usług drukowania
powrócić do okna dialogowego udostępniania drukarki (patrz wpis
podlinkowany w punkcie 1) i wyłączyć udostępnianie. Ważne, żeby
zachowała się „Nazwa udziału” nadana podczas udostępniania –
będzie to nazwa kolejki wydruku LPD.
3. Pora przejść do Linuksa. Na potrzeby prezentacji wybrałem
dystrybucję Lubuntu 16.04 LTS, bo ma stosunkowo niskie wymagania
sprzętowe (to jest w końcu blog dla dinozaurów), a z systemów
rodziny Ubuntu korzysta stosunkowo duża liczba użytkowników. No a
dlaczego nie Puppy? Testowany przeze mnie w 2015 roku Puppy Precise
Retro zdezaktualizował się znacznie bardziej niż Windows XP
(chociaż jest od niego o wiele młodszy), zaś jego następca,
Tahrpup, to już nie jest dystrybucja dla słabego sprzętu. Moim
zdaniem Puppy utracił w ten sposób sens swojego istnienia.
Ale do rzeczy: uruchamiamy Lubuntu, otwieramy menu (można w tym
przypadku mówić o menu „Start”, czy też jakiś linuksiarz się
obrazi?), „Narzędzia systemowe”, „Drukarki” i …
Upsss! Czy to nie jest irytujące, że w systemie operacyjnym
domyślnie drukarki nie działają?
No dobrze, zainstalujmy tego cups-a (potrzebne połączenie z
internetem):
sudo apt install cups
Teraz można już dodać drukarkę. Klikamy przycisk „Dodaj”,
rozwijamy „Drukarka sieciowa” i zaznaczamy „Komputer lub
drukarka LPD/LPR”.
Wpisujemy adres IP komputera obsługującego drukarkę, a jako nazwę
kolejki – nazwę nadaną w systemie Windows podczas udostępniania.
Jako sterownik drukarki wybierzmy Generic Postscript Printer
Foomatic/Postscript.
Pozostaje tylko nadanie nazwy i stosownego opisu...
i mamy skonfigurowaną drukarkę.
Możemy teraz wydrukować stronę testową. Jeśli wszystko
wykonaliśmy poprawnie, wynik powinien być taki, jak poniżej.
Ktoś jeszcze nie wierzy, że to działa? No to niech sam sprawdzi.
4. Jeśli już mamy w sieci skonfigurowaną drukarkę LPR, to możemy
na niej drukować nie tylko z poziomu Linuksa czy innych systemów
uniksopodobnych, ale także na przykład… z Windows 10. W ten
sposób możemy drukować na drukarce podłączonej do komputera z
Windows XP (a nawet z Windows 98, bo i tam da się udostępnić
drukarkę w ten sposób), co „windowsowymi” mechanizmami okazuje
się trudne do osiągnięcia (bo Microsoft pozmieniał te
mechanizmy).
Konfiguracja drukarki w systemie Windows 10 (podobnie jest w 7 i 8)
przebiega następująco. Otwieramy Panel Sterowania…
Dygresja: Jeśli ktoś nie może znaleźć panela
sterowania, to niech sobie wyszuka przy pomocy wyszukiwarki. Mnie
osobiście wkurza to, że Microsoft w każdej kolejnej kompilacji
systemu zmienia położenie różnych ustawień w interfejsie. Nie
mam czasu ani ochoty, żeby za tym nadążać.
klikamy ikonę „Urządzenia i drukarki”, następnie link „Dodaj
drukarkę”. W tym momencie włącza się irytująca funkcja Windows
10 wyszukująca dostępne drukarki sieciowe. Jeśli mamy małą sieć
domową, nie stanowi to problemu, jednak w przypadku dużej sieci
lepiej szybko kliknąć „Drukarki, której szukam, nie ma na
liście” (naszej drukarki i tak nie znajdzie).
Następnie wybieramy opcję „Dodaj drukarkę lokalną lub sieciową
z ustawieniami ręcznymi”. To nam zapewni maksymalną kontrolę i
nie będziemy potem godzinami zastanawiać się „co nam tu Windows
ustawił, że nie działa”.
Tworzymy nowy port drukarki i wybieramy typ „Standard TCP/IP port”.
Wpisujemy adres IP komputera obsługującego drukarkę i nie
zaznaczamy opcji „Sprawdź drukarkę i automatycznie wybierz
sterownik do użycia”.
W następnym oknie zaznaczamy „LPR”, wpisujemy
nazwę kolejki (nazwa nadana drukarce podczas udostępniania pod
Windows XP) i koniecznie zaznaczamy opcję „Włączone
zliczanie bajtów LPR”. Bez
tego nie będzie działać.
Pora wybrać sterownik drukarki.
Zaznaczamy jakiś sterownik postscriptowy dostępny w systemie. U
mnie dobrym wyborem okazał się „HP Color LaserJet CP4005 PS Class
Driver”.
Jeszcze jakaś sensowna nazwa
drukarki i gotowe!
Teraz możemy wydrukować stronę
testową, pamiętając, że w systemie Windows 10 trzeba w tym celu
otworzyć „Właściwości drukarki”, a nie „Właściwości”
(kolejne dziwactwo).
Wam też działa, prawda?
5. Drukarkę
LPD/LPR można
też udostępnić pod kontrolą Windows 10 (podobnie 7 i 8).
Wprawdzie nie próbowałem w tym systemie konfigurować wirtualnej
drukarki postscriptowej i nie wiem, czy w ogóle się da, ale jest
wiele drukarek standardowo obsługujących PostScript czy chociażby
PCL. Udostępnienie drukarki w ten sposób pozwoli nam drukować na
niej nie tylko z poziomu systemów Linux/Unix, ale również spod
Windows XP czy 98.
Otwieramy Panel sterowania,
klikamy ikonę „Programy i funkcje”, a następnie link „Włącz
lub wyłącz funkcje systemu Windows” (albo, co będzie bardziej w
stylu Windows 10, wyszukujemy odpowiedni aplet Panela sterowania w
wyszukiwarce) i włączamy dwie funkcje: „Monitor portu LPR” i
„Usługa drukowania za pośrednictwem portu LPD”.
Potrzebne będzie połączenie z
internetem, gdyż system pobiera niezbędne pliki z serwisu Windows
Update.
Teraz we „Właściwościach
drukarki” (a nie we „Właściwościach”!) włączamy
udostępnianie i wpisujemy nazwę udziału, która staje się nazwą
kolejki wydruku LPD.
Podobnie jak to miało miejsce
pod Windows XP, udostępnianie można teraz wyłączyć. Ważne, żeby
zachowała się wpisana nazwa udziału.
Pozostaje podłączyć drukarkę
w docelowym systemie. Jak to zrobić w Linuksie napisałem powyżej
(tylko trzeba odpowiedni sterownik wybrać, może jakiś generic
PCL), a pod Windows XP – kto doczytał do tego miejsca, na
pewno sobie poradzi. Powodzenia!
Super wpis
OdpowiedzUsuńprzydają się takie blogi
OdpowiedzUsuń:)
OdpowiedzUsuńDzięki!
OdpowiedzUsuńDo Kujawiak Pomorski: komentarze do mojego bloga nie są darmową tablicą reklamową. Chcesz się reklamować to możemy się dogadać co do kasy.
OdpowiedzUsuń