{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

Drukarka USB pod FreeBSD

0. Wprowadzenie

W niniejszym tekście postaram się opisać w jaki sposób skonfigurować i uruchomić drukarke USB pod naszym ulubionym systemem aby móc drukować zarówno w środowisku graficznym jak i spod konsoli. Jako, że drukarki USB to w porażającej większości tzw. "windrukarki", czyli drukarki których obsługą zajmuje się system a nie dedykowany sprzęt zaszyty w niej samej, w związku z tym nie daje żadnej gwarancji, że konfigurowana drukarka (jeśli jest inna niż użyta na potrzeby tego tekstu drukarka HP) będzie działała. Opis jest przedstawiony dla modelu 656c Hewlett Packard'a i z tą drukarką system na pewno współpracuje. Spróbuje też pokazać w jaki sposób udostępnić skonfigurowaną już drukarkę w sieci Microsoft Network za pomocą Samby. A więc bierzmy się do roboty.

1. Czynności wstępne

Na początek dobrze jest sprawdzić, czy wszystkie kable (zasilający oraz USB) są prawidłowo podpięte i "mocno siedzą". Wykluczy to w razie późniejszych perturbacji problem sprzętowy. Drukarke dobrze jest też od razu włączyć.

2. Jądro

Przebudowujemy jądro dodając do niego poniższe opcje:

device usb
device uhci
device ulpt # port USB drukarki

Tu "device uhci" oznacza kontroler USB zintegrowany z chipsetem intela. Jeśli nie posiadasz płyty na którymś z chipsetów intela (lecz np. Via) proponuje użyć zamiast tego:

device ohci

Jeśli działasz na GENERIC'u to można łatwo sprawdzić, który kontroler USB pasuje do naszej konfiguracji przez komende:

dmesg | grep uhub

Po zmianie opcji jądra przebudowujemy je i instalujemy.

3. Wstępna konfiguracja

Edytujemy "/etc/rc.conf" i dodajemy linię:

usbd_enable="YES"

Następnie sprawdzamy, czy w katalogu "/dev" istnieje urządzenie "ulpt0"

ls /dev/ulpt*

Jeśli go nie ma należy je utworzyć:

cd /dev && ./MAKEDEV ulpt0

Restarujemy system, żeby nowe urządzenia mogły być przez nasz system rozpoznane.

4. Instalacja pakietów

Jeśli nasza drukarka to HP (tak zakładamy na potrzeby niniejszego tekstu) to należy zainstalować sterowniki do niej. Jeśli nie masz drukarki HP pomiń ten krok:

cd /usr/ports/print/hpijs && make install clean

Nasza drukarka do działania potrzebuje pakietu CUPS oraz Ghostscript'u. Należy je zainstalować:

cd /usr/ports/print/cups && make install clean
cd /usr/ports/print/ghostscript-gnu && make install clean

Należy też zainstalować pakiet "cups-lpr":

cd /usr/ports/print/cups-lpr && make install clean

Po instalacji CUPSa w katalogu "/usr/local/etc/rc.d" zostanie utworzony skrypt startowy "cupsd.sh.sample". Należy przekopiować go na "cupsd.sh":

cp /usr/local/etc/rc.d/cups.sh.sample /usr/local/etc/rc.d/cups.sh

Uruchamiamy CUPSa:

cd /usr/local/etc/rc.d
sh cupsd.sh start

5. Konfiguracja drukarki

Do skonfigurowania drukarki potrzebna nam będzie przeglądarka internetowa. W polu adresu wpisujemy "http://127.0.0.1:631/admin/" aby połączć się z usługą administracji CUPS'a. Można tam dodać drukarke w wygodny "graficzny" sposób.
Wybieramy kolejno:

  • Printers -> Add printer
  • wpisujemy nazwe drukarki pod jaką ma być widoczna w systemie (np. hp656c) oraz opcjonalnie opis (Description)
  • Continue
  • wybieramy urządzenie, do którego podpięta jest drukarka (dla HP powinno być "AppSocket/JetDirect" a dla innych "USB Printer # 1")
  • Continue
  • Wybieramy URI dla drukarki (najlepiej "lpd://hostname/queue"). Trzeba to wpisać ręcznie.
  • Wybieramy rodzaj sterownika dla drukarki (jeśli jest kilka). Drukarki HP powinny mieć "HP" a reszta RAW albo GENERIC.
  • Continue
  • Wybieramy sterownika drukarki (jeśli jest kilka). Nasza przykładowa drukarka powinna mieć "HP New DeskJet Series CUPS v1.1 (en)"
  • Continue

Gotowe. Teraz pozostaje tylko przetestować naszą drukarkę. Wracamy do strony głównej Administratora CUPS i z górnego menu wybieramy "Printers" a następnie przy naszej drukarce "Print test page". Jeśli strona zostanie wydrukowana poprawnie to znaczy, że CUPS działa. Jeśli nie należy wrócić do konfiguracji drukarki i ewentualnie zmienić sterownik.

Następnie testujemy drukarke w lini komend:

cd /usr/local/bin/
lpr -P hp656c /etc/fstab

Oczywiście "hp656c" to nazwa naszej drukarki, która była nadana w Administratorze. Należy też pamię\x{0167}ać, żeby w miejscach, gdzie będziemy proszeni o podanie komendy drukującej (np. w Open Office) podać pełną śceżkę po programu drukującego, czyli "/usr/local/bin/lpr".

6. Drukowanie sieciowe

Zakładając, że nasza drukarka jest skonfigurowana poprawnie i można na niej drukować lokalnie możemy pomyśleć o udostępnieniu jej w sieci (np. dla maszyn z Windows). Oczywiście w naszym przypadku udostępniamy drukarke dla wszystkich użytkowników sieci. Jeśli chcesz udostępnić drukarke dla konkretnej grupy użytkowników jest to opisane w dokumentacji Samby. Będzie do tego potrzebny zainstalowany pakiet SAMBA. Jeśli takowy mamy należy zmodyfikować plik "/usr/local/etc/smb.conf". W sekcji "[global]" dodajemy:

printcap name = cups
printing = cups

a w sekcji udostępnianych zasobów:

[printers]
comment = Drukarki
path = /var/spool/samba
create mask = 0700
public = yes
guest ok = yes
printable = yes
browseable = yes
writeable = yes

Zapisujemy zmiany w pliku konfiguracyjnym.

Aby można było poprawnie drukować przez sieć należy jeszcze wykomentować:

application/octet-stream

z pliku "/usr/local/etc/cups/mime.types" oraz w pliku "/usr/local/etc/cups/mime.convs".

Restartujemy sambę ("cd /usr/local/etc/rc.d && sh samba.sh stop && sh samba.sh start"). Od tej chwili nasza drukarka powinna być widoczna w "Otoczeniu sieciowym". Oczywiście aby ją używać przez sieć na komputerach z Windows należy zainstalować na nich przeznaczone dla tego systemu sterowniki dla tej drukarki.

7. Źródła

Tekst niniejszy powstał na bazie artykułu z FreeBSD Diary "CUPS (Common UNIX Printing System) - installation and configuration" napisanego przez Gerarda Samuela oraz na bazie własnych zmagań Autora z pakietem CUPS i postów z grup dyskusyjnych poświęconych CUPSowi i Sambie. Mam nadzieje, że okażę się przydatny.

Autor: 
Tomasz Król (yautja(at)interia.pl)
Porozmawiaj o tym artykule na forum: 

tytus, nie., 20/04/2008 - 16:00