Canon MX860 & Graustufendruck unter Ubuntu

Im Wiki der Ubuntu Users findet sich eine schöne Zusammenfassung aller Zusatzeinträge für das cups Drucksystem. Bevor man sich allerdings wundert, warum die Einstellungen nicht wirksam werden sollte man diesen Hinweis beachten:

Wenn die Einstellungen nachträglich eingefügt werden sollen, ist zu beachten, dass die vom System verwendete canon(Druckertyp).ppd-Datei jetzt in /etc/cups/ppd/ zu finden ist. Die Druckerkonfiguration kopiert beim Hinzufügen des neuen Druckers die gewählte canon(Druckertyp).ppd-Datei aus /usr/share/cups/model/ nach /etc/cups/ppd. Der Dateiname unterscheidet sich dann eventuell etwas von dem Namen der Ursprungsdatei, aber das soll nicht weiter stören.

Bedeutet letztendlich nichts anderes als: Ist der Drucker schon installiert und möchte nachträglich Funktionen freischalten, editiert man die Treiber-Datei unter /etc/cups/ppd und startet anschließend cups neu: sudo /etc/init.d/cups restart

Ich konnte durch den Nachtrag unter /etc/cups/ppd/Canon-MX860.ppd erfolgreich den Graustufendruck aktivieren:

*OpenUI *CNGrayscale/Grayscale: PickOne
*DefaultCNGrayscale: false
*CNGrayscale false/Off: "false"
*CNGrayscale true/On: "true"
*CloseUI: *CNGrayscal

pecl & oci8 unter ubuntu 9.04

Zend Server CE bringt diese Extension gleich mit und man muss nur darauf achten, dass man libaio1 installiert hat. Hat man aber sein System mit Paketen installiert, fehlt einem irgendwann die Extension oci8. Diese Extension setzt (wie unter Windows auch) den Oracle Instant Client voraus. Der Client ist unter http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html als rpm oder zip zu bekommen. Wir benötigen Basic & SDK.

user@host:/opt$ sudo unzip /tmp/instantclient-basic-linux32-11.2.0.1.zip
user@host:/opt$ sudo unzip /tmp/instantclient-sdk-linux32-11.2.0.1.zip
user@host:/opt$ sudo ln -s instantclient_11_2/ instantclient
user@host:/opt/instantclient$ sudo ln -s libclntsh.so.11.1 libclntsh.so
 
# Abhängigkeiten: php5-dev, libaio1
user@host:/opt$ sudo aptitude install php5-dev libaio1
 
# Installation von Pecl oci8
user@host:/opt$ sudo pecl update-channels
# Bei der Eingabeaufforderung nun "instantclient,/opt/instantclient" angeben
user@host:/opt$ sudo pecl install oci8

Sollte die Installation der Extension nicht erfolgen weil der Pfad zum Instantclient nicht akzeptiert wird kann man die Extension dennoch “zu Fuß” kompilieren:

# Das Downloadverzeichnis befindet sich norm. unter /tmp/pecl
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo phpize
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo ./configure --with-oci8=shared,instantclient,/opt/instantclient
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo make
user@host:/tmp/pecl/download/oci8-1.4.1$ sudo make install

Die Extension aktivieren wir in der php.ini, die gewöhnlich unter /etc/php5/apache2/php.ini liegt und ergänzen sie um folgende Zeile: extension=oci8.so
Alternativ kann man auch eine eigene Konfigurationsdatei anlegen unter /etc/php5/conf.d/oci.ini und hier die gleiche Zeile eingeben.
Apache neu starten - fertig.

vpnc & Nortel Contivity VPN

Um unter Ubuntu 9.04 (Jaunty Jackalope), und wahrscheinlich auch neueren Versionen, eine Verbindung zu einem Nortel Contivity VPN herzustellen benötigt es einen veränderten VPN Client, der leider nicht standardmäßig als Paket im Apt-Repository zur Verfügung steht. Speziell geht es darum, dass das Paket vpnc kompatibel ist zu cisco3000 VPN Concentrator (Cisco’s EasyVPN equipment) und nicht zu Nortel Contivity VPN. Der Nortel Client ist leider nicht kostenlos verfügbar und somit entstand ein zu Nortel kompatibler vpnc, der unter svn.unix-ag.uni-kl.de exportiert werden kann:

# Abhängigkeiten
root@host:/opt aptitude install libgcrypt-dev gnutls-dev
# Nortel Client exportieren, zum Erscheinen dieses Eintrages lag Rev. 449 vor
root@host:/opt svn export http://svn.unix-ag.uni-kl.de/vpnc/branches/vpnc-nortel/
# Nortel Client kompilieren u. installieren
root@host:/opt/vpnc-nortel make
root@host:/opt/vpnc-nortel make install

Nach erfolgreicher Kompilierung geht es an den schwierigsten Teil, der allerdings nur dann schwierig ist, wenn man wenig Informationen zu dem vorliegenden Netzwerk hat. Es gibt massig Threads in diversen Foren (auch im Ubuntu Forum) die sich mit diesem Thema beschäftigen. Leider geht selten hervor, welche Anforderungen die Umgebung an den Client stellt. Ich möchte hier kurz die Anforderungen erläutern, die sich mir stellten:

  • IPSec gateway: bekannt
  • IPSec ID: bekannt
  • IPSec secret: bekannt
  • Xauth username: bekannt
  • IKE DH Group: unbekannt (default dh2)
  • IKE Authmode: bekannt
  • Passwort + SecureID-code: bekannt

Bei den ersten 4 Informationen handelt es sich um den Host, zu dem die Verbindung hergestellt werden soll, Gruppen-Name + Gruppen Passwort, sowie den Username (der übrigens auch einen Slash enthalten kann; Groß-/Kleinschreibung wird ignoriert). Mit Hilfe der Dokumentation kommt man schnell an die nötigen Konfigurationswerte:

user@host:/opt/nortel-vpnc$ ./vpnc --long-help

IKE DH Group: es gibt 3 Möglichkeiten (1, 2, 5)
IKE Authmode: gpassword steht für Nortel Group Security - Group Password Authentication

Das führt nun folgender Konfiguration:

IPSec gateway [gateway]
IPSec ID [groupname]
IPSec secret [grouppassword]
Xauth username [username]
Vendor nortel
Script /opt/vpnc-nortel/vpnc-script
IKE Authmode gpassword

Diese Konfiguration liegt bei mir unter /etc/vpnc.conf und gehört root. Durch die Option “Script /opt/vpnc-nortel/vpnc-script” wird vpnc mitgeteilt, dass die Verbindung mit Hilfe unseres Scripts unter /etc/opt/vpnc-nortel aufgebaut wird und nicht mit einem unter /etc/… vermuteten Script. Auf einen symbolischen Link dorthin oder sogar eine Kopie des Scripts kann somit verzichtet werden. Die Konfiguration generell ist sinnvoll, da man nun beim Starten des Clients nur noch das Passwort eingeben muss. Man könnte natürlich noch den Username weglassen um verschiedene Logins zu ermöglichen.

Startet man nun das Script:

user@host:/opt/vpnc-nortel$ sudo ./vpnc

Gibt man sein Passwort, direkt gefolgt von dem SecureID-Code ein (ohne Leerzeichen, Plus-Zeichen, etc.). Die Meldung: “VPNC started in background (pid: 10636)…” teilt nun mit, dass eine Verbindung aufgestellt wurde.
Mit ifconfig kann man nun ein neues Interface mit der zugeteilten IP Adresse sehen (z.B. tun0) sowie mit dem Befehl route die Routentabelle die nun das neue Interface verwenden sollte.

Die Verbindung wird geschlossen mit:

user@host:/opt/vpnc-nortel$ sudo ./vpnc-disconnect

Bei Verbindungsprobemen kann der Debug-Modus helfen:

user@host:/opt/vpnc-nortel$ sudo ./vpnc --debug [0/1/2/3/99]

pecl & phpize-Errors unter Ubuntu 9.04

Änderungen an Libtool stehen im direkten Zusammenhang mit Fehlermeldungen beim Installieren von PHP Extensions aus dem Pecl Repository. Dies außert sich im Beispiel von APC (oder auch oci8) folgendermaßen:

downloading APC-3.0.19.tgz ...
Starting to download APC-3.0.19.tgz (115,735 bytes)
.................done: 115,735 bytes
47 source files, building
running: phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
configure.in:158: warning: LTOPTIONS_VERSION is m4_require'd but not m4_defun'd
aclocal.m4:2943: LT_INIT is expanded from...
aclocal.m4:2978: AC_PROG_LIBTOOL is expanded from...
configure.in:158: the top level
configure.in:158: warning: LTSUGAR_VERSION is m4_require'd but not m4_defun'd
configure.in:158: warning: LTVERSION_VERSION is m4_require'd but not m4_defun'd
configure.in:158: warning: LTOBSOLETE_VERSION is m4_require'd but not m4_defun'd
configure:6197: error: possibly undefined macro: m4_ifval
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure:8806: error: possibly undefined macro: _LT_SET_OPTIONS
configure:8806: error: possibly undefined macro: LT_INIT
ERROR: `phpize' failed

Problem:

Seit Libtool Version 2.2 wurden diverse Macros in mehrere Dateien gesplittet und somit vermisst das phpize eigene Build-Script build/libtool.m4 autoconf Definitionen und ist somit nicht mehr lauffähig.

Lösung (unter root):

root@host:/usr/share/aclocal cat lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 >> libtool.m4

Quelle: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/262251

Zend Server CE + oci8 unter Ubuntu 9.04

Unter Ubuntu 9.04 verweigert der Zend Server CE leider das Starten der oci8 Extension. Unter Monitor -> Logs (bzw. [INSTALL-DIRECTORY]/zend/var/log/php.log) findet sich der Hinweis auf eine fehlende Library:

[28-Sep-2009 19:58:54] PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/zend/lib/php_extensions/oci8.so’ - libaio.so.1: cannot open shared object file: No such file or directory in Unknown on line 0
[28-Sep-2009 19:58:54] PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/zend/lib/php_extensions/pdo_oci.so’ - libaio.so.1: cannot open shared object file: No such file or directory in Unknown on line 0

Lösung:

sudo apt-get install libaio1