Jump to content

Druckertreiber selber compilieren


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich habe das Problem, daß ich für die Verwendung des Epson LQ 670 unter Windows 2003 keinen passenden Druckertreiber bekomme. Epson stellt keinen zur Verfügung, da dieser ja angeblich bereits Bestandteil von Windows ist. Der in Windows mitgelieferte Treiber ist aber leider fehlerhaft. :mad: Hier hat sich eine Initialisierungssequenz für Laserdrucker eingeschlichen, welche da nicht rein gehört. Da nun aber auch Microsoft nicht bereit ist, hier auch nur im Geringsten darauf zu reagieren, hätte ich mir meinen Druckertreiber gern selbst gemacht, wenn dies geht.:confused:

Nun würde mich mal interessieren, ob so etwas halbwegs bewältigbar ist und wenn ja, wie man sowas macht. Gibt es dazu eine vernünftige Anleitung? Kann man eventuell sogar einenen Treiber rückwärts mal dekompilieren um es vom Aufbau her anzuschauen?

 

 

Gruß

 

Thomas

Link zu diesem Kommentar

Hallo Thomas

Hier hat sich eine Initialisierungssequenz für Laserdrucker eingeschlichen, welche da nicht rein gehört.

Wie kommst Du darauf? Wenn der Treiber wirklich versucht einen Laserdrucker zu initialisieren, wird entweder dein Drucker nicht richtig erkannt oder du benutzt den falschen Treiber.

 

...hätte ich mir meinen Druckertreiber gern selbst gemacht, wenn dies geht.

Natürlich geht das, sonst gäb' es ja keine Treiber ;)

Du benötigst eine IDE mit vorzugsweise C++ als Programmiersprache. Du benötigst ebenfalls den Windows Driver Dvelopment Kit. Dann brauchst du nur noch die Dokumentation von Epson für die gerätespezifischen Feature und deinem Treiber steht nichts mehr im Weg.

Kann man eventuell sogar einenen Treiber rückwärts mal dekompilieren um es vom Aufbau her anzuschauen?

Geht auch, nennt man disassamlieren und gehört zum reverse engineering. Nur wird das erstens nicht gerne gesehen und zweitens erhältst du nur Assamblercode und keinen C++ Quellcode. Als Beispiel würde ich mir besser die Dokumentation im DDK anschauen.

 

Servus,

Klaus

Link zu diesem Kommentar

Hallo Klaus,

 

Wie kommst Du darauf? Wenn der Treiber wirklich versucht einen Laserdrucker zu initialisieren, wird entweder dein Drucker nicht richtig erkannt oder du benutzt den falschen Treiber.

 

zum einen hab ich das in diversen Foren so gelesen, zum anderen gibt es dazu einen ganz einfachen Hinweis. Der Drucker druckt

 

284.4
@EJL

 

vor jedem Ausdruck. Dieser Text erinnert stark an die Initialisierungssequenz für einen Laserdrucker. Von da ab druckt der Drucker absolut sauber und richtig. Nur dieser "Vortext" vor jedem Ausdruck stört gewaltig.

 

 

Natürlich geht das, sonst gäb' es ja keine Treiber ;)

Du benötigst eine IDE mit vorzugsweise C++ als Programmiersprache. Du benötigst ebenfalls den Windows Driver Dvelopment Kit. Dann brauchst du nur noch die Dokumentation von Epson für die gerätespezifischen Feature und deinem Treiber steht nichts mehr im Weg.

 

Oh je, ich werde mir das mal anschauen, ich befürchte aber, daß mir dazu das Handwerkszeug schon wieder fehlt. :mad: Ausserdem sieht das nach zuerst ganz viel lernen aus. Ich hätte gehofft, daß das einfacher geht.

 

Geht auch, nennt man disassamlieren und gehört zum reverse engineering. Nur wird das erstens nicht gerne gesehen und zweitens erhältst du nur Assamblercode und keinen C++ Quellcode. Als Beispiel würde ich mir besser die Dokumentation im DDK anschauen.

 

Ja, das werde ich wohl machen müssen. Dann muß ich demnach auch noch Assembler lernen. Ich kenne das noch von uralten Zeiten Commodore C16 und C64 her. Allerdings beim PC kenne ich das nicht. Wo könnte ich da genauere Informationen dazu finden? Da würde ich mich gern mal wieder damit befassen.

 

Ich wäre hier für jeden Hinweis dankbar.

 

 

Gruß

 

Thomas

Link zu diesem Kommentar

naja, das handwerkszeug kannst du dir runterladen (klickme)

 

allerdings ist es nicht gaaaaanz so einfach, mal eben nen treiber zu coden. da solltest du dich mit den internas von windows schon ganz genau auseinandersetzen, vor allem, da ein fehlerhafter treiber mal so eben zum BSOD führen kann.

 

falls du dir das allerdings antun willst, kannst du ja auch mal hier oder auch hier recherchieren.

 

viel spass

 

mfg

hannes

Link zu diesem Kommentar

Hallo Thomas,

284.4
@EJL

vor jedem Ausdruck. Dieser Text erinnert stark an die Initialisierungssequenz für einen Laserdrucker. Von da ab druckt der Drucker absolut sauber und richtig. Nur dieser "Vortext" vor jedem Ausdruck stört gewaltig.

Das wird dann wohl so sein.

 

Oh je, ich werde mir das mal anschauen, ich befürchte aber, daß mir dazu das Handwerkszeug schon wieder fehlt. Ausserdem sieht das nach zuerst ganz viel lernen aus. Ich hätte gehofft, daß das einfacher geht.

Hannes hat Dir ja den Link zu den VS2005 Express Editions schon gepostet. Schau Sie Dir ruhig mal an, vieleicht kommst Du ja wieder auf den Geschmack :D

Auch mit dem Hinweis

allerdings ist es nicht gaaaaanz so einfach, mal eben nen treiber zu coden

hat Hannes verdammt recht;) . Falls Du das wirklich durchziehen willst, bist Du anschliessend mir der win32API auf Du und Du.:D

 

Ein Treiber läuft richtig tief im System, so ist es mit ein paar SystemCalls nicht getan. Auch die Formatkonvertierung ist nicht ohne. Und das alles unter Berücksichtigung der Systemsicherheit, Stichwort Buffer-Overflow und Code-Injection.

Bitte verstehe mich nicht falsch, ich will Dir dein Vorhaben nicht schlecht reden sonder nur meine Sicht der Dinge darlegen.

 

BTW. Falls Du dir mal die VS2005 Express anschaust, denk mal an die managed Programmierung (das .NET Framework). Auch managed kann man Treiber schreiben und Du bist relativ Plattform unabhängig (32 und 64bit ohne neu zu schreiben und Type-Safe).

Und dabei schaust Du dir vieleicht mal C# als alternative zu C++ an.

 

Also viel Spass und happy coding

 

Servus,

Klaus

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...