<?xml version="1.0" encoding="utf-8" ?>

<?xml-stylesheet type="text/xsl" href="/templates/2k11/rss.xsl" media="screen" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Daniel Lange's blog</title>
    <link>http://daniel-lange.com/</link>
    <description>agrep -pB IT /dev/life</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.6.0 - http://www.s9y.org/</generator>
    <pubDate>Fri, 31 Jul 2026 07:20:05 GMT</pubDate>

    <image>
    <url>//daniel-lange.com/uploads/Avatar_Blog_144_234.png</url>
    <title>RSS: Daniel Lange's blog - agrep -pB IT /dev/life</title>
    <link>http://daniel-lange.com/</link>
    <width>144</width>
    <height>234</height>
</image>

<item>
    <title>Linux kernel USB errors -71 and -110</title>
    <link>http://daniel-lange.com/archives/183-Linux-kernel-USB-errors-71-and-110.html</link>
            <category>Linux</category>
    
    <comments>http://daniel-lange.com/archives/183-Linux-kernel-USB-errors-71-and-110.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=183</wfw:comment>

    <slash:comments>13</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=183</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;After an upgrade of my PC&#039;s mainboard BIOS the boot would take a minute or more to complete and sometimes the lightdm login screen would sit there but not accept keyboard input for another minute or so. Then the keyboard got enabled and I could log in normally. Everything worked fine after that bootup struggle completed. This was fully reproducible and persisted across reboots. Weird.&lt;/p&gt;

&lt;p&gt;The kernel &lt;code&gt;dmesg&lt;/code&gt; log showed entries that looked suspicious:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:708 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;607&quot; height=&quot;373&quot;  src=&quot;http://daniel-lange.com/uploads/entries/230619_Linux_kernel_USB_errors_minus_71_and_minus_110.png&quot;  alt=&quot;dmesg log excerpt showing USB error messages&quot;&gt;&lt;/p&gt;

&lt;p&gt;Googleing these &lt;code&gt;error -110&lt;/code&gt; and &lt;code&gt;error -71&lt;/code&gt; is a bit hard. Now why the USB driver does not give useful error messages instead of archaic &lt;code&gt;errno&lt;/code&gt;-style numbers escapes me. This is not the 80s anymore.&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:709 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;163&quot; height=&quot;176&quot;  src=&quot;http://daniel-lange.com/uploads/icons/citation_needed.png&quot; title=&quot;This is from https://xkcd.com/285/&quot; alt=&quot;Citation needed (Wikipedia style)&quot;&gt;
The wisdom of the crowd says &lt;code&gt;error -110&lt;/code&gt; is something around &quot;the USB port power supply was exceeded&quot; [&lt;a href=&quot;https://askubuntu.com/questions/644010/ubuntu-cant-read-my-usb-device-descriptor-read-64-error-110&quot;&gt;source&lt;/a&gt;].&lt;/p&gt;

&lt;p&gt;Now &lt;code&gt;lsusb -tv&lt;/code&gt; shows device 1-7 ... to be my USB keyboard. I somehow doubt that wants more power than the hub is willing to provide.&lt;/p&gt;

&lt;p&gt;The Archlinux BBS Forums recommend to &lt;a href=&quot;https://bbs.archlinux.org/viewtopic.php?id=149708&quot;&gt;piece together&lt;/a&gt; information from &lt;code&gt;drivers/usb/host/ohci.h&lt;/code&gt; and (updated from their piece which is from 2012) &lt;code&gt;/tools/include/uapi/asm-generic/errno.h&lt;/code&gt;. This is why some people then consider &lt;code&gt;-110&lt;/code&gt; to mean &quot;Connection timed out&quot;. Nah, not likely either.&lt;/p&gt;

&lt;p&gt;Reading through the kernel source around &lt;code&gt;drivers/usb/host&lt;/code&gt; did not enlighten me either. To the contrary. Uuugly. There seems to be no comprehensive list what these error codes mean. And the numbers are assigned to errors conditions quite arbitrarily. And - of course - there is no documentation. &lt;em&gt;&quot;It was hard to do, so it should be hard to understand as well.&quot;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Luckily some of the random musings I read through contained some curious advice: power cycle the host. So I did and that did not make the error go away. Other people insisted on removing cables out of wall sockets, unplugging everything and conducting esoteric rituals. That made it dawn on me, the mainboard of course nicely powers the USB in &quot;off&quot; state, too. So switching the power supply off (yes, these have a separate switch, go find yours), waiting a bit for capacitors to drain and switching things back on and ... the errors were gone, the system booted within seconds again.&lt;/p&gt;

&lt;p&gt;So the takeaway message: If you get random error messages like&lt;/p&gt;

&lt;div class=&quot;apache geshi&quot; style=&quot;text-align: left&quot;&gt;device descriptor read/&lt;span style=&quot;color: #ff0000;&quot;&gt;64&lt;/span&gt;, error -&lt;span style=&quot;color: #ff0000;&quot;&gt;110&lt;/span&gt;&lt;br /&gt;device not accepting address &lt;span style=&quot;color: #ff0000;&quot;&gt;42&lt;/span&gt;, error -&lt;span style=&quot;color: #ff0000;&quot;&gt;71&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;on devices that previously worked fine ... completely remove power from the host, the hubs and the USB devices. So they forget they saw each other on the bus before. And when they see each other after that blackout, they will happily go through negotiating protocol details successfully.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 19 Jun 2023 11:00:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/183-guid.html</guid>
    <category>codes</category>
<category>error</category>
<category>hardware</category>
<category>kernel</category>
<category>linux</category>
<category>usb</category>

</item>
<item>
    <title>Getting scanning to work with Gimp on Trixie</title>
    <link>http://daniel-lange.com/archives/195-Getting-scanning-to-work-with-Gimp-on-Trixie.html</link>
            <category>Debian</category>
    
    <comments>http://daniel-lange.com/archives/195-Getting-scanning-to-work-with-Gimp-on-Trixie.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=195</wfw:comment>

    <slash:comments>11</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=195</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Trixie ships &lt;a href=&quot;https://www.gimp.org/&quot; title=&quot;Gimp Homepage&quot;&gt;Gimp&lt;/a&gt; 3.0.4 and the 3.x series has gotten incompatible to &lt;a href=&quot;http://www.sane-project.org/sane-frontends.html&quot;&gt;XSane&lt;/a&gt;, the common frontend for scanners on Linux.&lt;/p&gt;

&lt;p&gt;Hence the maintainer, Jörg Frings-Fürst, has &lt;a href=&quot;https://git.jff.email/cgit/xsane.git/commit/?id=e94358be7216ead86f500f2f19420a61435eceec&quot;&gt;disabled the Gimp integration temporarily&lt;/a&gt; in response to a Debian bug &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1088080&quot;&gt;#1088080&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There seems to be no tracking bug for getting the functionality back but people have been commenting on Debian bug &lt;a href=&quot;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=993293&quot;&gt;#993293&lt;/a&gt; as that is ... loosely related &lt;img src=&quot;http://daniel-lange.com/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;.&lt;/p&gt;

&lt;p&gt;There are two options to get the Scanning functionality back in Trixie until this is properly resolved by an updated XSane in Debian (e.g. via trixie-backports):&lt;/p&gt;

&lt;p&gt;Lee Yingtong Li (RunasSudo) has created a Python script that calls XSane as a cli application and published it at &lt;a href=&quot;https://yingtongli.me/git/gimp-xsanecli/&quot;&gt;https://yingtongli.me/git/gimp-xsanecli/&lt;/a&gt;. This worked okish for me but needed me to find the scan in &lt;code&gt;/tmp/&lt;/code&gt; a number of times. This is a good stop-gap script if you need to scan from Gimp $now and look for a quick solution.&lt;/p&gt;

&lt;p&gt;Upstream has completed the necessary steps to get XSane working as a Gimp 3.x plugin at &lt;a href=&quot;https://gitlab.com/sane-project/frontend/xsane&quot;&gt;https://gitlab.com/sane-project/frontend/xsane&lt;/a&gt;. Unfortunately compiling this is a bit involved but I made a version that can be dropped into &lt;code&gt;/usr/local/bin&lt;/code&gt; or &lt;code&gt;$HOME/bin&lt;/code&gt; and works alongside Gimp and the system-installed XSane.&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;sudo apt install gimp xsane&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Download &lt;a href=&quot;http://daniel-lange.com/software/xsane-1.0.0-fit-003&quot;&gt;xsane-1.0.0-fit-003 (752kB, AMD64 executable for Trixie)&lt;/a&gt; and place it in &lt;code&gt;/usr/local/bin&lt;/code&gt; (as root)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sha256sum /usr/local/bin/xsane-1.0.0-fit-003&lt;/code&gt;&lt;br /&gt;
# result needs to be af04c1a83c41cd2e48e82d04b6017ee0b29d555390ca706e4603378b401e91b2&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo chmod +x /usr/local/bin/xsane-1.0.0-fit-003&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;# Link the executable into the Gimp plugin directory as the user running Gimp:&lt;br /&gt;
&lt;code&gt;mkdir -p $HOME/.config/GIMP/3.0/plug-ins/xsane/&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;ln -s /usr/local/bin/xsane-1.0.0-fit-003 $HOME/.config/GIMP/3.0/plug-ins/xsane/xsane&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Restart Gimp&lt;/li&gt;
&lt;li&gt;Scan from Gimp via File → Create → Acquire → XSane &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The source code for the &lt;code&gt;xsane&lt;/code&gt; executable above is available under GPL-2 at &lt;a href=&quot;https://gitlab.com/sane-project/frontend/xsane/-/tree/c5ac0d921606309169067041931e3b0c73436f00&quot;&gt;https://gitlab.com/sane-project/frontend/xsane/-/tree/c5ac0d921606309169067041931e3b0c73436f00&lt;/a&gt;. This points to the last upstream commit from 27. September 2025 at the time of writing this blog article.&lt;/p&gt;

&lt;h2&gt;Debugging help&lt;/h2&gt;

&lt;p&gt;(added 06.05.2026)&lt;br /&gt;
As some people in the comments seem to have issues with getting the plugin to work on their systems:&lt;/p&gt;

&lt;p&gt;Run &lt;code&gt;$HOME/.config/GIMP/3.0/plug-ins/xsane/xsane --version&lt;/code&gt; as a shell command line.&lt;/p&gt;

&lt;p&gt;This should output:&lt;/p&gt;

&lt;pre&gt;
xsane-1.0.0 (c) 1998-2022 Oliver Rauch
  E-mail: Oliver.Rauch@xsane.org
  package xsane-1.0.0-fit-003
  compiled with GTK-3.24.49
  with color management function
  with GIMP support, compiled with GIMP-3.0.4
  XSane output formats: jpeg, pdf(compr.), png, pnm, ps(compr.), tiff, txt
&lt;/pre&gt;

&lt;p&gt;If it doesn&#039;t, the shell may tell you what step of the instructions you missed (e.g. the +x attribute) or the loader shows what library you are missing on your system.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 24 Dec 2025 09:00:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/195-guid.html</guid>
    <category>debian</category>
<category>scanner</category>
<category>trixie</category>
<category>updated</category>
<category>xsane</category>

</item>

</channel>
</rss>
