Nachtrag: i2000-Treiber unter Kubuntu 24.04¶
Der Thread steht auf „gelöst", aber ReKnopp schrieb, das sei leider keine Lösung für kommende Fragesteller. Ich war so einer und ergänze deshalb.
Aufbau: Kodak i2800 (gleiche i2000-Serie, gleicher Treiber v4.14), Kubuntu 24.04.4, Kernel 7.0, Ryzen 9950X3D mit 32 Threads.
Installation¶
Lief im Wesentlichen wie oben beschrieben, mit drei Ergänzungen:
libudev0gibt es inzwischen regulär innoble/universe(Version 200-1). Vorab installieren, dann entfällt der OpenUSB-Abbruch.Bei der Mono-Frage
nantworten. Findet der Installer Mono nicht, landet man sonst in einem Zweig, der ein totes Fremdrepo einträgt undapt-keyaufruft — beides funktioniert auf 24.04 nicht mehr.Zwei Nacharbeiten nötig:
sudo apt install libudev0 sane-utils sudo ./setup # Scanner dabei ausschalten! sudo sed -i 's/OWNER="xxx", //' /etc/udev/rules.d/55-kodakdi.rules sudo udevadm control --reload-rules sudo ln -sfr /usr/lib/sane/libsane-kds_i2000* /usr/lib/x86_64-linux-gnu/sane/ sudo ldconfig
Das eigentliche Problem: viele CPU-Kerne¶
Danach wurde der Scanner erkannt, ließ sich aber nicht öffnen:
scanimage: open of device kds_i2000:i2000 failed: Invalid argument
Im Treiberlog unter /var/kodak/kds_i2000/twain/log.*/driver/ stand „lexexe is gone", im Kernel-Log ein Segfault.
Ursache: Der Hilfsprozess lexexe liest /proc/cpuinfo in einen zu kleinen Puffer. Bei 32 Threads ist die Datei 61 KB groß — Pufferüberlauf. An einem Vierkerner lief dasselbe Gerät bei mir jahrelang problemlos.
Lösung ohne Eingriff ins Binary¶
Dem Treiber eine gekürzte cpuinfo unterschieben:
awk 'BEGIN{n=0} /^processor/{n++} n<=4{print}' /proc/cpuinfo | sudo tee /etc/kodak-cpuinfoDauerhaft über saned. sudo systemctl edit saned@.service:
[Service] BindReadOnlyPaths=/etc/kodak-cpuinfo:/proc/cpuinfo
Dazu localhost in /etc/sane.d/saned.conf, ::1 in /etc/sane.d/net.conf, saned.socket aktivieren.
Wichtig: künftig über net:[::1]:kds_i2000:i2000 scannen, nicht direkt. Funktioniert in XSane genauso wie mit scanimage, ohne sudo.
Die Socket habe ich per Override auf [::1] beschränkt, damit der Dienst nicht im Netz steht.
Zwei Optionsfallen¶
--mode Colorohne--depth 8→ Segfault (Vorgabe ist--depth 1)--blankimagemode contentohne explizites--blankimagecontent→ „Invalid argument" (Vorgabewert ist-1, gültig wäre0..100)
Duplex, Farbe, Stapelbetrieb und Leerseitenerkennung laufen damit alle.
Moderiert von schwarzheit:
Der Beitrag ist von hier abgetrennt worden. Bitte entführe keine Themen (Verhaltenscodex)!