so hab mich extra hier im Forum angemeldet!
die Gute Nachricht: ich habe meinen Kyocera FS-1061DN GDI Drucker unter Ubuntu zum Drucken gebracht
FS-1041, FS-1061DN, FS-1220MFP, FS-1320MFP und FS-1325MFP sollten alle ähnlich funktionieren. (benutzen den gleichen Filter)
Warum? - hab ihn halt gekauft ohne über die Druckersprache nachzudenken, ausserdem ist der Drucker ausgesprochen ökonomisch im Verbrauch für die Einsteigerklasse.
http://www.druckerchannel.de/artikel.php?ID=3264&t=news_kyocera_fs_1041_und_fs_1061dn
Wie?
es existiert ein OS X-Treiber –- dieser besteht aus einer PPD, einem CUPS-Filter und einem zusätzlichen Panel für die Druckeigenschaften
Was man braucht ist den Filter, lauffähig unter Ubuntu, sowie eine modifizierte PPD.
Die Idee: es existiert eine relativ neue Emulation für OS X namens Darling http://darling.dolezel.info/en/Darling
1ste schwierigkeit: Darling kompilieren
-ich habe dazu auch ein PPA entdeckt(kann aber zu der funktionfähigkeit nichts sagen) https://launchpad.net/~thopiekar/+archive/darling
filter-binary und PPD aus dem OS X treiber holen: rastertokpsl sowie FS*.PPD
umbenennen: mv rastertokpsl kpslapple
mit dyldd herausfinden welche libraries fehlen:
dann die nativen bibliotheken an die entsprechende Position kopieren oder verlinken, für mich:
sudo cp /usr/lib/x86_64-linux-gnu/libcupsimage.so.2 /usr/lib/libcupsimage.2.dylib
sudo cp /usr/lib/x86_64-linux-gnu/libcups.so.2 /usr/lib/libcups.2.dylib
dann einmal mit dyld probieren ob sich das Programm ausführen lässt:
dyld kpslapple
Damit Cups den filter aufrufen kann habe ich einen kleinen Wrapper geschrieben:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | #include <unistd.h>
int main(int argc, char *argv[])
{
char *newargs[argc+2];
newargs[0]="rastertokpsl";
newargs[1]="/usr/lib/cups/filter/kpslapple";
int i;
for(i = 1 ; i < argc ;i++)
{
newargs[i+1] = argv[i];
}
newargs[i+1] = NULL;
execv ("/usr/local/bin/dyld",newargs);
}
|
Übersetzen: gcc rastertokpsl.c -o rastertokpsl
Alles in Position kopieren und Rechte vergeben
sudo cp kpslapple /usr/lib/cups/filter/kpslapple
sudo cp rastertokpsl /usr/lib/cups/filter/rastertokpsl
sudo chmod 755 /usr/lib/cups/filter/kpslapple /usr/lib/cups/filter/rastertokpsl
nocheinmal probieren ob sich das Programm ausführen lässt:
/usr/lib/cups/filter/rastertokpsl
Das modifizieren der PPD ist leicht gemacht:
extra Panel raus und den Dateinamen des Filterprogrammes anpassen:
| < *cupsFilter: "application/vnd.cups-raster 0 /Library/Printers/Kyocera/kpsl/rastertokpsl.app/Contents/MacOS/rastertokpsl"
<
< *APDialogExtension: "/Library/Printers/Kyocera/PDEs/KMAdjustment.plugin"
---
> *cupsFilter: "application/vnd.cups-raster 0 rastertokpsl"
|
jetzt mit der veränderten PPD den Drucker einrichten und Testseite Drucken 😉
Mein Fazit: Darling könnte eine Möglichkeit sein GDI Drucker unter Linux besser zu unterstützen, indem man OS X Filter-binaries benutzen kann.
Ich habe leider weder das know-how, noch die Zeit tiefer einzusteigen.
Falls wer fragen hat bin ich gerne bereit diese zu beantworten!