Anzeige:
Ergebnis 1 bis 1 von 1

Thema: Drucken von einem Linuxclient per Cups (von holgerw)

  1. #1
    Registrierter Benutzer Avatar von holgerw
    Registriert seit
    Nov 2000
    Ort
    ziemlich in der Mitte vom alten Europa *g*
    Beiträge
    1.808

    Drucken von einem Linuxclient per Cups (von holgerw)

    Einleitung

    ... wer es kaum abwarten kann, dem Howto Titel nachzukommen, sollte diese geschwätzige Einleitung am besten überspringen :-)

    Mit CUPS (Common Unix Printing System) steht unter Unix / Linux ein mächtiges Druckerverwaltungssystem zur Verfügung, das die Einrichtung sowohl lokaler als auch Netzwerkdrucker erlaubt. Die Funktionen und damit auch die Konfigurationsmöglichkeiten sind vielfältig und demgemäß äußerst umfangreich dokumentiert (zu den weiterführenden Dokumentationesquellen siehe letztes Kapitel).

    CUPS kann man sozusagen als Druckermanagementsystem bezeichnen, das mit verschiedenen Druckertreiber Projekten zusammenarbeiten kann. So ist es zum Beispiel möglich, nach einer Gimpprint Installation die dort zur Verfügung gestellten Treiber per Cups den entsprechenden Druckern zuzuweisen.

    Mit der schon erwähnten Multifunktionalität von Cups hinsichtlich des Druckermanagements und der damit einhergehenden umfangreichen Dokumentation kann es jedoch - oft für Anfänger auf diesem Gebiet - zu Orientierungsschwierigkeiten kommen. Die mir bisher bekannte englischsprachige Cupsdokumentation aber auch das deutsche FAQ Projekt von Kurt Pfeifle sind auf hohem Niveau. Die Multifunktionalität ist bis ins Detail genau erklärt, dies verschafft jedem sicherlich einen tiefen Einblick in die Materie. Für Anfänger jedoch kann es zu der bekannten Suche nach der Nadel im Heuhaufen werden.

    Folgende Situation ist vermutlich öfters zu Hause bei einem ambitionierten Linuxer anzutreffen :-)

    Moderner Desktop PC mit Linux drauf, Anschluss an das Internet, Drucker sind angeschlossen und dank Cups als lokale Drucker schnell eingerichtet. Doch da steht doch noch der ältere PC in der Ecke rum (bei mir ist es ein AMD K5 Rechner mit 48 MB Ram) und da läuft - nein, bei mir läuft da nicht ein altes Win95 oder 98 sondern ebenfalls Linux drauf.
    Ein schlankes Desktopsystem dank xfce zum Beispiel ist gar kein Problem auch auf altersschwächeren Rechnern. Und der soll nun in den Genuss kommen, neben dem Zugriff auf das Internet auch auf den Drucker zugreifen zu können, der am Server angeschlossen ist.

    Nun geht es endlich los ... doch vorher noch ein klärendes Wort zum Inhalt und Umfang des Howtos

    Um folgendes geht es hier NICHT:
    - die Einrichtung eines Netzwerkes, angefangen vom Karteneinbau bis hin zur Konfiguration der Karten
    - Drucken vom Win Client per Samba etc.
    - Konfiguration größerer Drucknetzwerke
    - Ausführliche Darstellung der Möglichkeiten von cups im Netzwerk - das gibt es auf hohem Niveau schon von anderen
    - Hilfe bei Treiberproblemen / Linuxunterstützung von Druckern

    Um folgendes geht es:
    - Linuxclient hängt an einem Linuxserver, etwa als peer to peer Lösung und dieser Client soll auf dem Serverdrucker drucken dürfen
    - es handelt sich um ein Fallbeispiel
    - ach ja, und das ganze soll über cups laufen :-)


    Kapitel 1. Grundlagen

    Bei mir ist die Situation folgende: Ich habe einen großen Desktop PC mit einem kleineren PC per Crossoverkabel vernetzt.

    Großer Desktop PC mit SuSE 8.0
    Name: alpha
    Domain: linux.pc
    FQN: alpha.linux.pc
    eth0 192.168.0.2 -> Netzwerkkarte des Clienten
    eth1 192.168.1.1 -> t-dsl Modem
    cups 1.1.12*

    Der Standarddrucker ist auf /dev/lp0 als lp eingerichtet - das geht mit yast, mit localhost:631 oder auch komplett zu Fuß - auf jeder Distri ist das einzurichten.
    WICHTIG: Es läuft außerdem bei mir die SuSEfirewall2 drauf und NICHT die Personalfirewall. Datenverkehr des internen Netzes darf nicht komplett blockiert sein, sonst ist nix mit Drucken vom Client aus. Auf Firewalls kann und möchte ich jedoch nicht weiter eingehen.

    Kleinerer Desktop PC mit SuSE 7.1
    Name: delta
    Domain: linux.pc
    FQN: delta.linux.pc
    eth0 192.168.0.10 -> eth0 von alpha
    cups 1.1.12*

    *Achtung: Ich wurde gerade darauf hingewiesen, dass die aktuellere Version 1.1.14 einige Sicherheitslücken weniger haben soll. Wer das Cups System also eh neu einrichten will, sollte gleich zu Version 1.1.14 greifen: http://cups.org

    Tipp: Die Adressen werden mit ifconfig angezeigt, bzw. können damit vergeben werden. Datenaustausch zwischen Client und Server muss natürlich funktionieren.
    Am besten mal mit ping testen, also auf dem Client:
    ping -c1

    Eine Ausgabe mit

    1 packets transmitted, 1 received, 0% loss, time 0ms

    sieht gut aus, dann sollte es problemlos einzurichten sein.

    Kapitel 2. Das Konfigurieren

    Zunächst muss der Drucker auf dem Server als lokaler Drucker eingerichtet werden, entweder mit distributionseigenen Tools, mit localhost:631 oder an der Konsole.

    Bei mir ist ein Laserdrucker als Standarddrucker mit dem Namen lp eingerichtet.
    Daneben gibt es noch einen USB Tintenstrahler als printer1, das soll aber nicht weiter interessieren.

    Und jetzt muss man nur noch bei einer einzigen Datei wenige Werte einstellen, und zwar bei cupsd.conf. Es geht übrigens immer noch um den Server, in meinem Fall also alpha. Bitte als root arbeiten.
    Zunächst wird die Konfigurationsdatei von cups gesichert:
    cd /etc/cups && cp cupsd.conf cupsd.conf.orig [Return]

    Dann wird cups gestoppt:
    rccups stop [Return]

    Das Stoppen des cupsd kann vielleicht bei Debian, Mandrake etc. anders sein

    Editieren der Datei /etc/cups/cupsd.conf

    ACHTUNG: Jeglicher Code ist als php Code formatiert, sonst werden die Anweisungen in spitzen Klammern nicht korrekt dargestellt.

    Aus der Zeile

    PHP-Code:
    # Browsing On 
    wird

    PHP-Code:
    Browsing On 
    Aus dem Bereich

    PHP-Code:
    #
    <Location />
    Order Deny,Allow
    Deny From All
    Allow From 127.0.0.1
    </Location>

    wird

    PHP-Code:
    #
    <Location />
    Order Deny,Allow
    Deny From None
    Allow From 192.168.0.10  
    # bzw. entsprechender Name der IP Adresse des Clients
    </Location>

    -----------------------

    Aus dem Bereich

    PHP-Code:
    #
    <Location /admin>
    #
    # You definitely will want to limit access to the administration functions.
    # The default configuration requires a local connection from a user who
    # is a member of the system group to do any admin tasks.  You can change
    # the group name using the SystemGroup directive.
    #

    AuthType Basic
    AuthClass System

    ## Restrict access to local domain
    Order Deny,Allow
    Deny From All
    Allow From 127.0.0.1

    wird

    PHP-Code:
    #
    <Location /admin>
    #
    # You definitely will want to limit access to the administration functions.
    # The default configuration requires a local connection from a user who
    # is a member of the system group to do any admin tasks.  You can change
    # the group name using the SystemGroup directive.
    #

    AuthType Basic
    AuthClass System

    ## Restrict access to local domain
    Order Deny,Allow
    Deny From None
    Allow From 192.168.0.10  
    # bzw. entsprechender Name der IP Adresse des Clients

    ---------------------

    Dann bitte die Datei abspeichern :-)
    Und das war es schon.

    Cups wird dann wieder gestartet:
    rccups start

    Das Starten des cupsd kann vielleicht bei Debian, Mandrake etc. anders sein.

    Auf dem Client habe ich lediglich cups laufen und nichts konfiguriert. Die Datei /etc/cups/client.conf muss in diesem Fall definitiv NICHT editiert werden. Cups auf dem Server meldet sich schon per Browsing beim Client und stellt Druckdienste zur Verfügung.

    Nun kann der Client mal getestet werden. Dazu reicht für den Anfang schon an der Konsole des clients:
    ls -la|lp -d druckername
    In meinem Beispiel kommt für Druckername lp hin.

    In einigen Sekunden müsste der Druck beginnen :-)


    Kapitel 3. zu guter letzt

    Danke an alle im linuxforum, die mich durch Tipps unterstützt und sich manche Schimpfpostings von mir trotzdem geduldig durchgelesen haben, um dann zu helfen.
    Danke an das cups Team für dieses tolle Projekt des Druckermanagements.
    Danke an Kurt Pfeifle, der mit seinem FAQ Projekt um cups sehr detailliert Einblick in cups und seine Möglichkeiten gibt.

    Danke vor allem an meine Freundin Diane. Sie ist eigentlich der Auslöser, da sie gerne von dem kleinen PC aus sowohl surfen als auch drucken wollte und das gerne parallel zu meinen PC Aktivitäten.

    Hier noch ein paar Links:
    http://www.cups.org/
    http://www.danka.de/printpro/CUPSFAQ-0-93.html
    ... und falls schon cups auf dem PC installiert ist:
    http://localhost:631/documentation.html


    Wer Fehler findet, mag sie bitte umgehend posten.

    1. Nachtrag: 17. August 2002

    Ergänzung von move:

    Folgendes mußte ich in die /etc/cups/cupsd.conf (Server)
    noch eintragen.

    /etc/cups/cupsd.conf (vom Server)
    Folgenden Eintrag mußte ich an mein System anpassen.

    PHP-Code:
    # Note: Using the "global" broadcast address (255.255.255.255) will
    # activate a Linux demand-dial link with the default configuration.
    # If you have a LAN as well as the dial-up link, use the LAN's
    # broadcast address.
    #

    #BrowseAddress x.y.z.255
    #BrowseAddress x.y.255.255
    #BrowseAddress x.255.255.255
    #BrowseAddress 255.255.255.255
    BrowseAddress 192.168.0.255 # Meine BroadcastAdresse (Zeigt dir
    ifconfig 
    Nachdem ich die Broadcast Adresse eigetragen hatte wird mein Client
    auch angesprochen, und die Drucker stehen zur Verfügung.
    So das ein http://localhost:631/ auf dem Client mir die Drucker auch anzeigt.

    gruß

    -------------------------
    Danke für den Hinweis
    Geändert von holgerw (24.02.03 um 09:46 Uhr)
    __________________
    Bei uns im Haus werkeln Arch, Debian, openSUSE, siduction, MX-Linux und FreeBSD :-)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •