OP
            
        Ja kann ich. Es kommt dann keine Fehlermeldung aber er druckt auch nicht.
			
			Ich installiere meinen immer nach den Anleitungen, hp-setup sagt das auch.Netzwerk. Schon immer. Suse 15.1 und älter ohne Probleme.
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.            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)pluginObj.getStatus()    def getStatus(self):
        self.__readPluginStatus()
        log.debug("Plugin status = %s"%self.__plugin_state)
        return self.__plugin_state    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    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    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_CORRUPTEDdef 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_valDas sind aber immer unterschiedliche Pfade für dieselben Dateien, ich nehme mal an für unterschiedliche Distributionen.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.
[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[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.1ls -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/usr/lib/x86_64-linux-gnu/sane/Hier läuft es.......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.