AirPrint und AirPlay auf FreeNAS

10156
Timothy R. Butler

Ich möchte die AirPrint-Unterstützung zu einem älteren Brother-Netzwerkdrucker hinzufügen und, wenn möglich, auch AirPlay-Audio-Streaming auf eine Stereoanlage im selben Regal aufnehmen. Ich habe ein großartiges Tutorial über die Installation von CUPS (für AirPrint) und Shairport (für AirPlay) auf einem Pogoplug mit Arch Linux gefunden. Deshalb fragte ich mich, ob die immer mehr erweiterbare FreeNAS-Plattform dazu verleitet werden könnte, dasselbe zu tun: Ich habe bereits einen FreeNAS-Server für Backups und nicht, dass ein Pogoplug und mein Server gleichzeitig laufen und alles auf einem Gerät läuft scheint effizienter. Ich konnte jedoch keine Tutorials finden, um dieses Ziel zu erreichen.

Gibt es einen relativ einfachen Weg, um CUPS und Shairport auf FreeNAS 9 zu bekommen (vielleicht in einem "Gefängnis")?

3

3 Antworten auf die Frage

4
Timothy R. Butler

Dem Vorschlag von @Rand Smith folgend erstellte ich auf meinem FreeNAS ein Portsjail. Ich gab dem Portsjail eine statische IP-Adresse, deaktivierte VIMAGE und stellte das Standard-Gateway ein. Ich ging dann in die FreeNAS Web-basierte Shell und tat Folgendes:

  • Geben jlsSie die Nummer des Gefängnisses ein, und geben Sie dann die Nummer ein jexec [number] sh.
  • Einmal im Gefängnistyp pkg install cups hplip py27-cups.
  • Als nächstes verwenden Sie die CUPS.conf aus dem in meiner Frage erwähnten Tutorial:

    cd /usr/local/etc/cups mv cupsd.conf cupsd.conf.org wget http://dl.dropbox.com/u/42238/pogoplug/cupsd.conf 
  • Befolgen Sie die Schritte im FreeBSD-Lernprogramm für CUPS, außer für den Teil, der die SMB-Freigabe betrifft, um die Einrichtung von CUPS abzuschließen. Beenden durch Starten von CUPS:

    /etc/rc.d/devfs restart /usr/local/etc/rc.d/cupsd restart 
  • Melden Sie http://[hostname]:631sich dann beim Drucker an und richten Sie ihn ein (leider funktioniert die automatische Erkennung von Netzwerkgeräten durch CUPS in meinem BSD-Gefängnis nicht. Daher musste ich den Brother MFC-7820N mithilfe der Option HP JetDirect manuell einrichten. Ich habe gedruckt Auf einer Testseite wurde bestätigt, dass der Drucker funktioniert hat. Ich habe den Drucker so eingestellt, dass er während des Setups freigegeben wird, und die Freigabe auf der Haupt-CUPS-Verwaltungswebseite aktiviert.

  • Um die Unterstützung für iOS 6 und höher bereitzustellen, geben Sie die folgende, geringfügige Abweichung vom häufigsten Fix in der Jail-Shell ein:

    echo "image/urf urf string(0,UNIRAST<00>)" > /usr/share/cups/mime/airprint.types echo "image/urf application/vnd.cups-postscript 66 pdftops" > /usr/share/cups/mime/airprint.convs 
  • Verwenden Sie jetzt den praktischen AirPrint-Generator, um eine Avahi-Serviceanzeige zu erstellen:

    cd / wget -O airprint-generate.py --no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py python AirPrint-generate.py 
  • Als nächstes muss exitdas Gefängnis zum Hauptserver zurückkehren. Dann habe ich den AirPrint-Dienst auf das eigene avahi-System des Servers kopiert (da das Ausführen von Avahi im Gefängnis scheinbar nicht zuverlässig funktioniert ). Da der Ordner / etc / bei jedem Start von FreeNAS neu erstellt wird , müssen Sie, anstatt ihn direkt zu kopieren, ein Pre-Init-Skript auf dem FreeNAS erstellen, um es beim Start zu kopieren. Melden Sie sich dazu erneut bei der Administrationsoberfläche von FreeNAS an, klicken Sie auf die Kategorie System und dann auf "Add / Shutdown Script hinzufügen". Setzen Sie den Typ auf "Pre Init" und geben Sie als Befehl Folgendes ein:

    cp [PathToYourJail]/usr/local/etc/avahi/services/AirPrint-*.service /etc/local/avahi/services 
  • Klicken Sie auf "OK", und starten Sie den Computer neu. Sie werden feststellen, dass Ihre AirPrint-Geräte jetzt vom FreeNAS übertragen werden.

  • Von dort aus solltest du gut sein!

Ich habe eine Verbindung zu meinen zwei verbleibenden SuperUser-Fragen zur automatischen Erkennung von CUPS und zum Herunterfahren von Avahi in der Inhaftiertenumgebung hergestellt. Wenn jemand Vorschläge zur Lösung dieser Probleme hat, wäre ich dankbar, obwohl dies die oben genannten Maßnahmen nicht verhindert, sie machen es einfach unnötig.

Ich habe noch nicht versucht zu sehen, ob es möglich ist, Audio-Support für FreeNAS for AirPlay zu erhalten. Das kann ich irgendwann noch probieren.

Um Timothys sehr hilfreiche Antwort hinzuzufügen (ich kann diese Seite nicht kommentieren, da ich nicht genügend Reputationspunkte habe). Für mich in einem Gefängnis auf FreeNas lautete das MIME-Konfigurationsverzeichnis der Cups "/ usr / local" / etc / cups "und nicht" / usr / share / cups / mime / ". Greg Quinn vor 10 Jahren 1
Bei Freenas 9.3 funktioniert der Neustart von devfs nicht (`devfs-Regel: ioctl DEVFSIO_RGETNEXT: Vorgang nicht zulässig`). Anscheinend hat sich einiges mit BSD 10.0 geändert ... damian vor 9 Jahren 0
Danke, CUPS scheint zu funktionieren. Um unter OSX drucken zu können, musste ich die Drucker- und Scannerschnittstelle auf die IPP-Adresse "http: //freenas.local: 631 / printers /" verweisen.`, dann ändern Sie den Treiber auf dem OSX-Client in RAW (was auf dem OSX-Client die Ausführung von sudo cupsctl WebInterface = yes erforderlich machte, und wechseln Sie dann zu` http: // localhost: 631`). Ich kann nicht herausfinden, wie man die `devfs'-Regeln im Gefängnis anwendet. Ich muss also jedes Mal, wenn es gestartet wird, manuell chmod a + rw / dev / ulpt0` im Gefängnis eingeben. damian vor 9 Jahren 1
`pkg install cups hplip py27-cups` gibt mir einen Fehler:" Es wurden keine Pakete gefunden, die mit 'py27-cups' übereinstimmen. "Keine Idee? Quest vor 8 Jahren 1
1
Roland Smith

Beiden CUPS und shairport sind in der FreeBSD - Ports - Sammlung zur Verfügung.

Sie können sie auf FreeNAS installieren, wie hier dokumentiert .

Die Verwendung von Paketen ist wahrscheinlich der einfachste Weg. Wenn Sie Becher mit nicht standardmäßigen Optionen erstellen möchten, müssen Sie aus dem Quellcode erstellen.

1
Oxcom

In Bezug auf den pkg-Installationsfehler "Keine Pakete, die mit 'py27-cups' übereinstimmen. Das neue Paket heißt py27-pycups. Das sollte installiert werden.