Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[Gelöst] hplip spinnt

Alles rund um Hardware, die unter Linux läuft oder zum Laufen gebracht werden soll

Moderator: Moderatoren

klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: hplip spinnt

Beitrag von klaus-dieter »

Ja kann ich. Es kommt dann keine Fehlermeldung aber er druckt auch nicht.
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: hplip spinnt

Beitrag von Sauerland »

Tut mit leid, ich weiss nicht weiter.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: hplip spinnt

Beitrag von klaus-dieter »

Kein Problem danke auf jeden Fall für die ganzen Ideen und Hilfe.
Benutzeravatar
misiu
Moderator
Moderator
Beiträge: 4012
Registriert: 8. Mär 2004, 11:27
Wohnort: bei Schweinfurt

Re: hplip spinnt

Beitrag von misiu »

Hängt der am USB oder Netzwerk?
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: hplip spinnt

Beitrag von klaus-dieter »

Netzwerk. Schon immer. Suse 15.1 und älter ohne Probleme.
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: hplip spinnt

Beitrag von Sauerland »

Netzwerk. Schon immer. Suse 15.1 und älter ohne Probleme.
Ich installiere meinen immer nach den Anleitungen, hp-setup sagt das auch.

Zuerst mit USB-Kabel und dann sagt hp-setup jetzt Kabel ab und noch einmal aufrufen.

Selbst der Scanner funktioniert dann im Netzwerk.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: hplip spinnt

Beitrag von klaus-dieter »

Ich habe es bisher immer mit HP setup gemacht. 4 suse Rechner greifen seit Jahren auf den Drucker zu. Nie mit USB immer Netzwerk. Hp setup erkennt und findet den Drucker auch im Netz.
Benutzeravatar
misiu
Moderator
Moderator
Beiträge: 4012
Registriert: 8. Mär 2004, 11:27
Wohnort: bei Schweinfurt

Re: hplip spinnt

Beitrag von misiu »

Meiner ist über wlan / Router angeschlossen. USB habe ich nie gebraucht. Da ich die IP kenne, installiere ich über Yast
/ LAN->JetDirekt. Die hplip-Pakete müssen natürlich installiert sein.
Wie die einzelnen Schritte gehen, müsste ich schauen, bin auch immer noch bei 15.1

Hp-Setup Methode hat bei mir nur Probleme gemacht, wahrscheinlich wegen falscher Phyton-Version.
Auch die Udev/Firewall-Regeln haben die Erkennung verhindert.

Yast richtet das meiste und verwendet hpsetup nur für die Drucker-Erkennung.

Es kann auch sein, dass der "normale"User in die hpsetup
Guppe aufgenommen werden muss...

MfG
misiu
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: hplip spinnt

Beitrag von Sauerland »

Ich kann dir ja mal meine python Paketliste zukommen lassen und du kannst vergleichen,ob dir noch etwas fehlt.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: hplip spinnt

Beitrag von klaus-dieter »

Problem gelöst, ich bekam ja immer den Fehler

Code: Alles auswählen

Run "hp-plugin" to installa plugin libraries if you are not automatically prompted

Traceback (most recent call last):
  File "/usr/share/hplip/ui4/setupdialog.py", line 1307, in NextButton_clicked
    self.showAddPrinterPage()
  File "/usr/share/hplip/ui4/setupdialog.py", line 731, in showAddPrinterPage
    self.readwriteFaxInformation()
  File "/usr/share/hplip/ui4/setupdialog.py", line 1102, in readwriteFaxInformation
    d = fax.getFaxDevice(self.fax_uri, disable_dbus=True)
  File "/usr/share/hplip/fax/fax.py", line 534, in getFaxDevice
    return MarvellFaxDevice(device_uri, printer_name, callback, fax_type, disable_dbus)
  File "/usr/share/hplip/fax/marvellfax.py", line 109, in __init__
    self.service.SendEvent(device_uri, printer_name, EVENT_FAX_FAILED_MISSING_PLUGIN, os.getenv('USER'), job_id, "Plugin is not installed")
AttributeError: 'NoneType' object has no attribute 'SendEvent'

Done.
Fax wollte ich nicht, ich weiß auch nicht warum er bei mir immer meckert dass das Plugin nicht da ist, es ist da.

Im marvellfax.py habe ich den Code angepasst

Code: Alles auswählen

            if pluginObj.getStatus() != pluginhandler.PLUGIN_INSTALLED:
                self.libfax_marvell = cdll.LoadLibrary(lib_name)
                #log.error("Loading %s failed. Try after installing plugin libraries\n" %lib_name);
                #log.info("Run \"hp-plugin\" to installa plugin libraries if you are not automatically prompted\n")
                #job_id =0;
                #self.service.SendEvent(device_uri, printer_name, EVENT_FAX_FAILED_MISSING_PLUGIN, os.getenv('USER'), job_id, "Plugin is not installed")
                #sys.exit(1)
            else:
                self.libfax_marvell = cdll.LoadLibrary(lib_name)
Sprich im if Teil habe ich alles auskommentiert und den else Teil in den if Teil kopiert (hätte dass if natürlich auch löschen können). Naja jetzt geht es.
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: [gelöst] hplip spinnt

Beitrag von klaus-dieter »

Habe noch etwas weiter gedebuggt, in /usr/share/hplip/plugin.spec sind Pfade (i386-gnu-linux und x86_64-gnu-linux) angegeben die es unter openSuse 15.1 und 15.2 nicht gibt. Mit hplip 3.18.6 waren diese Pfade dort nicht angegeben. Sprich hp-setup wird ab irgendeiner Version zwischen 3.18.6 und 3.20.9 weder auf 15.1 noch 15.2 funktionieren. Wahrscheinlich reicht es aus einfach alle Pfade im spec File zu berichtigen.
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: [gelöst] hplip spinnt

Beitrag von Sauerland »

Das spec file wird nicht benutzt.
Das ist als Beispiel zu sehen.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: [gelöst] hplip spinnt

Beitrag von klaus-dieter »

Wie sicher bist du dir mit einer Aussage? Klar kann mich beim debuggen vertan haben, bin mir aber relativ sicher.

Das das Python Skript ausgeführt wird steht wohl ausser Frage, da meine Änderung dort den erhofften Erfolg hatte.

Code: Alles auswählen

pluginObj.getStatus()
gibt ein -2 zurück, bei einer 1 würde es durchlaufen.

Der Call von getStatus ist in pluginhandler.py zu finden

Code: Alles auswählen

    def getStatus(self):
        self.__readPluginStatus()
        log.debug("Plugin status = %s"%self.__plugin_state)
        return self.__plugin_state
Es kommt also auf __plugin_state an, dieser wird in pluginhander.py hier gesetzt

Code: Alles auswählen

    def __readPluginStatus(self):
        plugin_state_conf = ConfigBase( PLUGIN_STATE_FILE)
        self.__plugin_state = plugin_state_conf.get('plugin', 'installed', PLUGIN_NOT_INSTALLED)
        if self.__plugin_state == PLUGIN_NOT_INSTALLED:
            self.__installed_version = ''
        else:
            self.__installed_version = plugin_state_conf.get('plugin','version', '')
            hplip_version = sys_conf.get('hplip', 'version', '0.0.0')
            if self.__installed_version != hplip_version:
                self.__plugin_state = PLUGIN_VERSION_MISMATCH
            else:
                home = sys_conf.get('dirs', 'home')
                copies = self.__getPluginFilesList( home )

                for src, trg, link in copies:
                    if link != "":
                        if not utils.check_library(link):
                            self.__plugin_state = PLUGIN_FILES_CORRUPTED

hier wiederum ist das untereste else von Wichtigkeit. Hier wiederum das Array copies, auch diese ist in pluginhander.py

Code: Alles auswählen

    def __getPluginFilesList(self, src_dir):
        if not os.path.exists(src_dir+"/plugin.spec"):
            log.warn("%s/plugin.spec file doesn't exists."%src_dir)
            return []

        cwd = os.getcwd()
        os.chdir(src_dir)
        
        plugin_spec = ConfigBase("plugin.spec")
        products = plugin_spec.keys("products")

        BITNESS = utils.getBitness()
        ENDIAN = utils.getEndian()
        PPDDIR = sys_conf.get('dirs', 'ppd')
        DRVDIR = sys_conf.get('dirs', 'drv')
        HOMEDIR = sys_conf.get('dirs', 'home')
        DOCDIR = sys_conf.get('dirs', 'doc')
        CUPSBACKENDDIR = sys_conf.get('dirs', 'cupsbackend')
        CUPSFILTERDIR = sys_conf.get('dirs', 'cupsfilter')
        RULESDIR = '/etc/udev/rules.d'
        BIN = sys_conf.get('dirs', 'bin')

        # Copying plugin.spec file to home dir.
        if src_dir != HOMEDIR:
            shutil.copyfile(src_dir+"/plugin.spec", HOMEDIR+"/plugin.spec")
            os.chmod(HOMEDIR+"/plugin.spec",0o644)

        processor = utils.getProcessor()
        if processor == 'power_machintosh':
            ARCH = 'ppc'
        elif (processor == 'armv6l' or processor == 'armv7l' or processor == 'aarch64' or processor == 'aarch32'):
            ARCH = 'arm%d' % BITNESS
        else:
            ARCH = 'x86_%d' % BITNESS

        if BITNESS == 64:
            SANELIBDIR = '/usr/lib64/sane'
            LIBDIR = '/usr/lib64'
        else:
            SANELIBDIR = '/usr/lib/sane'
            LIBDIR = '/usr/lib'

        copies = []

        for PRODUCT in products:
            MODEL = PRODUCT.replace('hp-', '').replace('hp_', '')
            for s in plugin_spec.get("products", PRODUCT).split(','):

                if not plugin_spec.has_section(s):
                    log.error("Missing section [%s]" % s)
                    os.chdir(cwd)
                    return []

                src = plugin_spec.get(s, 'src', '')
                trg = plugin_spec.get(s, 'trg', '')
                link = plugin_spec.get(s, 'link', '')

                if not src:
                    log.error("Missing 'src=' value in section [%s]" % s)
                    os.chdir(cwd)
                    return []

                if not trg:
                    log.error("Missing 'trg=' value in section [%s]" % s)
                    os.chdir(cwd)
                    return []

                src = os.path.basename(utils.cat(src))
                trg = utils.cat(trg)

                if link:
                    link = utils.cat(link)

                copies.append((src, trg, link))

        copies = utils.uniqueList(copies)
        copies.sort()
        os.chdir(cwd)
        return copies
In der ersten Zeile siehst du schon dass plugin.spec gelesen wird, im Debugger sieht man auch dass es ganau aus /usr/share/hplip gelesen wird. Dann muss man sich am Ende der Methode link anschauen, dort stehen die falschen Verzeichnisse drin.

Jetzt wieder zurück zu

Code: Alles auswählen

    def __readPluginStatus(self):
        plugin_state_conf = ConfigBase( PLUGIN_STATE_FILE)
        self.__plugin_state = plugin_state_conf.get('plugin', 'installed', PLUGIN_NOT_INSTALLED)
        if self.__plugin_state == PLUGIN_NOT_INSTALLED:
            self.__installed_version = ''
        else:
            self.__installed_version = plugin_state_conf.get('plugin','version', '')
            hplip_version = sys_conf.get('hplip', 'version', '0.0.0')
            if self.__installed_version != hplip_version:
                self.__plugin_state = PLUGIN_VERSION_MISMATCH
            else:
                home = sys_conf.get('dirs', 'home')
                copies = self.__getPluginFilesList( home )

                for src, trg, link in copies:
                    if link != "":
                        if not utils.check_library(link):
                            self.__plugin_state = PLUGIN_FILES_CORRUPTED

in der zweitletzen Zeile wird check_library aufgerufen

Code: Alles auswählen

def check_library( so_file_path):
    ret_val = False
    if not os.path.exists(so_file_path):
        log.debug("Either %s file is not present or symbolic link is missing" %(so_file_path))
    else:
        # capturing real file path
        if os.path.islink(so_file_path):
            real_file = os.path.realpath(so_file_path)
        else:
            real_file = so_file_path

        if not os.path.exists(real_file):
            log.debug("%s library file is missing." % (real_file))
        elif (os.stat(so_file_path).st_mode & 72) != 72:
            log.debug("%s library file doesn't have user/group execute permission." % (so_file_path))
        else:
            log.debug("%s library file present." % (so_file_path))
            ret_val = True

    log.debug("%s library status: %d" % (so_file_path, ret_val))
    return ret_val

Hier wird also geprüft ob die Files wirklich existieren.

Ich würde also bei meiner Meinung (vorerst) bleiben. Wo siehst du meinen Fehler im obigen Durchlauf oder warum denkst dass das spec file nicht gelesen wird?
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: [gelöst] hplip spinnt

Beitrag von Sauerland »

Das spec File ist zum Bau eines rpm.

Edit:
Ich rudere zurück, doch nicht.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: [gelöst] hplip spinnt

Beitrag von Sauerland »

Habe noch etwas weiter gedebuggt, in /usr/share/hplip/plugin.spec sind Pfade (i386-gnu-linux und x86_64-gnu-linux) angegeben die es unter openSuse 15.1 und 15.2 nicht gibt. Mit hplip 3.18.6 waren diese Pfade dort nicht angegeben. Sprich hp-setup wird ab irgendeiner Version zwischen 3.18.6 und 3.20.9 weder auf 15.1 noch 15.2 funktionieren. Wahrscheinlich reicht es aus einfach alle Pfade im spec File zu berichtigen.
Das sind aber immer unterschiedliche Pfade für dieselben Dateien, ich nehme mal an für unterschiedliche Distributionen.
Denn bei mir sind die Dateien vorhanden.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: [gelöst] hplip spinnt

Beitrag von klaus-dieter »

Das kann natürlich so gedacht sein dass diese für diverse Distributionen sind. Aber dann scheint das noch nicht zu funktionieren. Diese Einträge waren so mit 3.18.6 auch nicht da, es scheint sich also um ein neues Feature zu handeln.

Es gibt bei 3.20.9 ja zum Beispiel

Code: Alles auswählen

[hp2000S1_plugin_6]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib/x86_64-linux-gnu/sane/libsane-hp2000S1.so.1
Existiert bei dir bei openSuse der Pfad der unter Link angegeben ist? Bei mir nicht. Ich habe mal versucht im spec file einen Pfad zu ändern um zu sehen ob ich auf meinem alten Rechner das Problem nachstellen kann. Leider merkt das System die Veränderung und ich muss das HP plugin neu installieren und damit kommt ein neues spec file, d.h. manuelle Änderungen sind nicht möglich. Ich kann es leider momentan nicht testen da ich keinen weiteren Rechner habe. Hast du hplip 3.20.9 installiert? Wenn ja kannst du mal als root hp-setup durchführen.

Im 2. Screen von hp-setup erkennt er ja noch den Drucker, nun auf next da sollte der Screen kommen dass man den Drucker wirklich installiert. Falls der Screen bei dir kommt dann passt es, falls hp-setup vorher dumpt hast du das gleiche Problem wie ich. Brauchst also nicht wirklich einen Drucker installieren, im 3. Screen einfach abbrechen. Aber wie gesagt muss 3.20.9 sein da ich nicht weiß wann sich das spec File geändert hat.
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: [gelöst] hplip spinnt

Beitrag von Sauerland »

Code: Alles auswählen

[hp2000S1_plugin_3]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib64/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib64/sane/libsane-hp2000S1.so

[hp2000S1_plugin_4]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib64/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib64/sane/libsane-hp2000S1.so.1

[hp2000S1_plugin_5] 
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib/x86_64-linux-gnu/sane/libsane-hp2000S1.so

[hp2000S1_plugin_6]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib/x86_64-linux-gnu/sane/libsane-hp2000S1.so.1
Die beiden obigen sind da, die beiden unteren nicht, sind aber dieselben Dateien/Links wie oben.......

Code: Alles auswählen

ls -al /usr/lib64/sane/libsane-hp2*
lrwxrwxrwx 1 root root      49  1. Okt 09:40 /usr/lib64/sane/libsane-hp2000S1.so -> /usr/lib64/sane/libsane-hp2000S1-x86_64.so.1.0.25
lrwxrwxrwx 1 root root      49  1. Okt 09:40 /usr/lib64/sane/libsane-hp2000S1.so.1 -> /usr/lib64/sane/libsane-hp2000S1-x86_64.so.1.0.25
-rwxr-xr-x 1 root root 3811216  1. Okt 09:40 /usr/lib64/sane/libsane-hp2000S1-x86_64.so.1.0.25

Das Verzeichnis existiert aber bei Debian......

Code: Alles auswählen

/usr/lib/x86_64-linux-gnu/sane/
Übrigens gibt es diese ganzen Dateien z.B. in hplip 3.16.11 unter Debian nicht......
Daher nehme ich an, das die in einer späteren Version hinzugefügt wurden.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: [gelöst] hplip spinnt

Beitrag von klaus-dieter »

Hallo,

also ich habe jetzt mal einen weiteren Rechner auf 15.2 hochgezogen. Von opensuse kommt hplip 3.19.12 dort ist das spec File noch so wie es sein sollte. Bei 3.20.9 kommen die vielen neuen Einträge und es gibt die gleichen Probleme. Intressant ist wenn man einmal auf 3.20.9 war komme ich nicht mehr zurück auf das alte spec file. Ich habe ein downgrade gemacht, das spec file gelöscht dann hp-plugin laufen lassen trotzdem habe ich das neuere spec file.

Also ich bin mir sehr sicher, wer auf 3.20.9 ist wird hp-setup unter opensuse wegen des Spec Files nicht ans laufen bekommen.
Sauerland
Guru
Guru
Beiträge: 3800
Registriert: 5. Aug 2007, 17:57
Wohnort: Sauerland

Re: [gelöst] hplip spinnt

Beitrag von Sauerland »

Also ich bin mir sehr sicher, wer auf 3.20.9 ist wird hp-setup unter opensuse wegen des Spec Files nicht ans laufen bekommen.
Hier läuft es.......

Da ich jedoch auch Pakete baue, hab ich immer viele Pakete installiert, es wird an irgendeiner Abhängigkeit liegen, die ich noch nicht herausbekommen habe.

Übrigens:
Diese plugins-run verschiebt ja eigentlich nur Dateien.
Desktop: OpenSUSE Leap 15.2, Nvidia-Grafik Kernel 5.x
Laptop: OpenSUSE Leap 15.2, Intel-Skylake, Kernel 5.3
klaus-dieter
Hacker
Hacker
Beiträge: 440
Registriert: 10. Jun 2004, 04:50

Re: [gelöst] hplip spinnt

Beitrag von klaus-dieter »

Hier läuft was? Der Drucker tut (was ich dir glaube) oder hp-setup läuft durch mit dem kaputten spec File (was ich fast nicht glauben kann)?
Antworten