Ubuntu - Seiko SLP-440 installieren

Anleitung fuer: SLP100/410, SLP200/420, SLP240/430, SLP440, SLP450

Hallo!

Die Frage, wie man denn diesen Drucker unter Ubuntu-Linux installiert, wurde beim Strippenstrolch gestellt: http://www.strippenstrolch.de/board/thema.php?board=1&thema=178

Terminal (= Kommandozeile) öffnen

Menü: Anwendungen -> Zubehör -> Terminal

Zum Superuser (= root) werden

Im Terminal gibst du diesen Befehl ein:

sudo su -

Danach wirst du nach deinem Passwort gefragt. Dass du zum Superuser geworden bist, siehst du am Prompt. Der beginnt jetzt mit "root@" und endet mit "#".

Wenn du dir sicher gehen möchtest, dann kannst du im Terminal auch den Befehl whoami eingeben.

Abhängigkeiten installieren

Programme zum kompilieren (gcc, make,...) installieren

aptitude install build-essential

Entwicklungspakte installieren

C/C++-Programme brauchen oft so genannte Header-Dateien von den Programmbibliotheken, die beim Programmieren des Programmes eingebunden werden.

Oft sind solche Pakete bereits in der Paketverwaltung der Linux-Distribution zu finden. Diese sind meist mit den Endungen "-dev" oder "-development" versehen.

Die Bibliotheken, Header-Dateien, usw. von denen der Treiber abhängt, installiert man so:

aptitude install libcups2-dev
aptitude install libcupsys2-dev
aptitude install libcupsimage2-dev
aptitude install libjpeg-dev
aptitude install zlib1g-dev   # Hinweis: das ist eine Eins im Namen

Das könnte man auch alles mit einem Befehl installieren:

aptitude install build-essential libcups2-dev libcupsys2-dev libcupsimage2-dev libjpeg-dev zlib1g-dev

Treiber installieren

Zuerst entpackt man das Zip-Archiv. Mit einem Doppelklick... Einfach in den Desktop-Ordner.

Dann muss man im Terminal in den entpackten Ordner wechseln.

cd /home/<eigener Benutzername>/Desktop/SeikoSLPLinuxDriver

Mal kurz kontrollieren:

ls -al

Das Ergebnis sieht bei mir so aus:

root@gerold-ubuntu:/home/gerold/Desktop/SeikoSLPLinuxDriver# ls -al
insgesamt 216
drwx------ 2 gerold gerold  4096 2009-10-13 19:06 .
drwxr-xr-x 3 gerold gerold  4096 2009-10-13 19:20 ..
-rw-r--r-- 1 gerold gerold  3690 2007-04-25 10:52 DriverUtils.cxx
-rw-r--r-- 1 gerold gerold  1670 2007-04-25 10:52 DriverUtils.h
-rwx------ 1 gerold gerold    82 2007-04-24 12:39 ._.DS_Store
-rwx------ 1 gerold gerold 15364 2007-04-24 12:39 .DS_Store
-rw-r--r-- 1 gerold gerold    82 2007-04-15 23:12 ._LICENSE.txt
-rw-r--r-- 1 gerold gerold 15962 2007-04-15 23:12 LICENSE.txt
-rwx------ 1 gerold gerold  3832 2007-05-07 14:48 makefile
-rwx------ 1 gerold gerold    82 2007-05-07 14:48 ._makefile
-rw-r--r-- 1 gerold gerold 14670 2007-04-25 10:52 RasterToSIISLP.cxx
-rw-r--r-- 1 gerold gerold  1841 2007-04-25 10:52 RasterToSIISLP.h
-rw-r--r-- 1 gerold gerold    82 2007-05-07 12:26 ._README.txt
-rw-r--r-- 1 gerold gerold  5163 2007-05-07 12:26 README.txt
-rw-r--r-- 1 gerold gerold  1211 2007-04-25 10:52 SeikoInstrumentsVendorID.h
-rw-r--r-- 1 gerold gerold  1386 2007-04-25 10:52 SeikoSLPCommands.h
-rwx------ 1 gerold gerold  6362 2007-05-07 14:48 siislp100.ppd
-rwx------ 1 gerold gerold 12343 2007-05-07 14:48 siislp200.ppd
-rwx------ 1 gerold gerold 12343 2007-05-07 14:48 siislp240.ppd
-rwx------ 1 gerold gerold 12328 2007-05-07 14:48 siislp440.ppd
-rwx------ 1 gerold gerold 12328 2007-05-07 14:48 siislp450.ppd
-rw-r--r-- 1 gerold gerold 13875 2007-04-25 10:52 SIISLPProcessBitmap.cxx
-rw-r--r-- 1 gerold gerold  3444 2007-04-25 10:52 SIISLPProcessBitmap.h
-rwx------ 1 gerold gerold  2931 2006-10-21 12:50 SLP2RL-203-outline.png
-rwx------ 1 gerold gerold  1850 2006-10-21 12:50 SLP2RL-203-solid.png
-rwx------ 1 gerold gerold  5716 2006-10-21 12:50 SLP2RL-300-outline.png
-rwx------ 1 gerold gerold  3835 2006-10-21 12:50 SLP2RL-300-solid.png

Jetzt kann man die Kompilation des Treibers starten:

make

Das Ergebnis sieht bei mir so aus:

root@gerold-ubuntu:/home/gerold/Desktop/SeikoSLPLinuxDriver# make
make clean
make[1]: Betrete Verzeichnis '/home/gerold/Desktop/SeikoSLPLinuxDriver'
rm -f seikoslp.rastertolabel *.o *~
rm -f *.gz
rm -rf "/usr/share/cups/model/seiko"
rm -rf "/home/gerold/Desktop/SeikoSLPLinuxDriver/pretty"
make[1]: Verlasse Verzeichnis '/home/gerold/Desktop/SeikoSLPLinuxDriver'
g++ -o seikoslp.rastertolabel  *.cxx -lcupsimage -lcups -ltiff -ljpeg -lpng -lgssapi_krb5 -lgnutls -lz -lpthread -lm -lcrypt
RasterToSIISLP.cxx: In function »void DumpArgs(int, char**)«:
RasterToSIISLP.cxx:351: Warnung: format »%0x« erwartet Typ »unsigned int«, aber Argument 3 hat Typ »long int«
RasterToSIISLP.cxx: In function »void OutputStringToCUPS(SInt32, SInt32, SInt32)«:
RasterToSIISLP.cxx:383: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*«
RasterToSIISLP.cxx:392: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*«
# set up the filter directory in the ppd correctly.
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp100.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp200.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp240.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp440.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp450.ppd
# set up the icon directory in the ppd correctly.
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp100.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp200.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp240.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp440.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp450.ppd
root@gerold-ubuntu:/home/gerold/Desktop/SeikoSLPLinuxDriver#

Jetzt braucht man noch einen Ordner, in den die Dateien gelegt werden können. Warum auch immer. Der Installationsprozess schlägt fehl, wenn man diesen Ordner nicht erstellt:

mkdir /usr/share/cups/model

Danach kann man die Installation starten:

make install

Das Ergebnis sieht bei mir so aus:

root@gerold-ubuntu:/home/gerold/Desktop/SeikoSLPLinuxDriver# make install
make build
make[1]: Betrete Verzeichnis '/home/gerold/Desktop/SeikoSLPLinuxDriver'
make clean
make[2]: Betrete Verzeichnis '/home/gerold/Desktop/SeikoSLPLinuxDriver'
rm -f seikoslp.rastertolabel *.o *~
rm -f *.gz
rm -rf "/usr/share/cups/model/seiko"
rm -rf "/home/gerold/Desktop/SeikoSLPLinuxDriver/pretty"
make[2]: Verlasse Verzeichnis '/home/gerold/Desktop/SeikoSLPLinuxDriver'
g++ -o seikoslp.rastertolabel  *.cxx -lcupsimage -lcups -ltiff -ljpeg -lpng -lgssapi_krb5 -lgnutls -lz -lpthread -lm -lcrypt
RasterToSIISLP.cxx: In function »void DumpArgs(int, char**)«:
RasterToSIISLP.cxx:351: Warnung: format »%0x« erwartet Typ »unsigned int«, aber Argument 3 hat Typ »long int«
RasterToSIISLP.cxx: In function »void OutputStringToCUPS(SInt32, SInt32, SInt32)«:
RasterToSIISLP.cxx:383: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*«
RasterToSIISLP.cxx:392: Warnung: veraltete Konvertierung von Zeichenkettenkonstante in »char*«
# set up the filter directory in the ppd correctly.
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp100.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp200.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp240.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp440.ppd
perl -p -i -e 's(^.cupsFilter.*\Z) <*cupsFilter: "application/vnd.cups-raster 0 /usr/lib/cups/filter/seikoslp.rastertolabel">g' siislp450.ppd
# set up the icon directory in the ppd correctly.
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp100.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp200.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp240.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp440.ppd
perl -p -i -e "s#\(^.APPrinterIconPath.*\)\n##g" siislp450.ppd
make[1]: Verlasse Verzeichnis '/home/gerold/Desktop/SeikoSLPLinuxDriver'
mv seikoslp.rastertolabel "/usr/lib/cups/filter/"
mkdir "/usr/share/cups/model/seiko"
gzip -c siislp100.ppd >> siislp100.ppd.gz
gzip -c siislp200.ppd >> siislp200.ppd.gz
gzip -c siislp240.ppd >> siislp240.ppd.gz
gzip -c siislp440.ppd >> siislp440.ppd.gz
gzip -c siislp450.ppd >> siislp450.ppd.gz
mv *.ppd.gz "/usr/share/cups/model/seiko"
root@gerold-ubuntu:/home/gerold/Desktop/SeikoSLPLinuxDriver#

Nach einem Neustart des Computers, könnte es evt. sein, dass der Drucker automatisch erkannt wird, wenn er angeschlossen wird.

Videos die die Installation vorzeigen

Ich habe in einer virtuellen Maschine (Sun VirtualBox) eine Ubuntu 9.4 Live DVD gestartet. Ganz ohne Festplatte. Es handelt sich also um ein komplett reines Ubuntu 9.4.

Zum Glück hatte ich genug RAM, um in der virtuellen Maschine auch Wink installieren zu können. So konnte ich den Installationsversuch aufzeichnen.

Der erste Teil war nur ein Test, ob brauchbare Bilder raus kommen.

Ich habe mich genau an die Anleitung gehalten. Nur statt dem beschriebenen Neustart, habe ich

/etc/init.d/cups restart

ausgeführt. Denn ein Neustart wäre mit der Live-DVD nicht möglich gewesen. ;-) Aber es funktioniert auch, wenn man nur Cups neu startet.

lg Gerold :-)