28

I'm trying to scan with samsung scx-4200 which is a printer with scanner. When I connect my brother's laptop which has the same version of ubuntu(14.04), it works. I don't know how and why. He did not install any software for scanning. I also tried another computer with elementary os, and it too works. Now here's when it gets really weird! I tried running many distributions form live USB on both mine and brother's laptop. Scanner always works with brother's and never with mine laptop. I need scanner a lot and it might happen that, because of this, I might switch to windows, which I don't like because it's not open-source, so please help! Here are the screenshots of the error I'm getting and the settings of simple scan.

enter image description here enter image description here

Edit1: The USB works fine with any other device. So far, I have connected mouse, USB flash memory, camera, and they all work fine. I have tried to connect scanner to all 3 USB ports(2 3.0 and 1 2.0) and the same thing happens.

Edit2: Scanning works with the program vuescan, but it requires to buy it in order to remove watermark which it creates, and it's closed source.

Edit3: Of all tested laptops, only mine has USBs 3.0(x2). However, scan doesn't work on USB 2.0 too(on my laptop).

Edit4: Here's output of sudo sane-find-scanner:

# sane-find-scanner will now attempt to detect your scanner. If the # result is different from what you expected, first make sure your # scanner is powered up and properly connected to your computer.

# No SCSI scanners found. If you expected something different, make sure that # you have loaded a kernel SCSI driver for your SCSI adapter.

# No USB scanners found. If you expected something different, make sure that # you have loaded a kernel driver for your USB host controller and have setup # the USB system correctly. See man sane-usb for details.

# Not checking for parallel port scanners.

# Most Scanners connected to the parallel port or other proprietary ports # can't be detected by this program.

Edit5: I tried all combinations of settings in BIOS related to USB configuration, without result. I reverted back to the original settings.

Edit6: I tried scanlite, here's the error it gives me:

enter image description here

Edit7: The second time I ran Scanlite, it says it dod not detect scanners on my computer. I sometimes get simillar message on simple scan.

Edit8: The scanner works with simple scan after doing the following:

  1. Open System settings
  2. Clicking Printers
  3. Right click on my printer(scx-4200) -> Properties
  4. Ink/toner levels
  5. Clicking Refresh
  6. Opening simple scan
  7. Clicking scan
  8. Waiting about 10-20 seconds till the error message shows up(like on screenshot provided)
  9. Clicking scan again

And that's for 1 scan only.

Edit9: Me and my brother both have 64 bit. My brother's laptop is hp, and mine is asus. Mine has more options in BIOS. I have 2 USB 3.0 and one 2.0, while my brother has 3 x 2.0. That are some diferences... Here's output of uname -a for mine laptop:

Linux dusan-K55A 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

And here's my brother's:

Linux milki-HP-2000-Notebook-PC 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Edit10: My laptop was fresh install, brother's was upgraded. The same thing happened when the both laptops were running fresh install 13.10

Edit11: Here's my output of lsmod:

Module                  Size  Used by
ctr                    13049  2 
ccm                    17773  2 
pci_stub               12622  1 
vboxpci                23194  0 
vboxnetadp             25670  0 
vboxnetflt             27613  0 
vboxdrv               339502  3 vboxnetadp,vboxnetflt,vboxpci
rfcomm                 69160  12 
bnep                   19624  2 
binfmt_misc            17468  1 
nls_iso8859_1          12713  1 
snd_hda_codec_hdmi     46207  1 
snd_hda_codec_realtek    61438  1 
joydev                 17381  0 
uvcvideo               80885  0 
videobuf2_vmalloc      13216  1 uvcvideo
videobuf2_memops       13362  1 videobuf2_vmalloc
videobuf2_core         40664  1 uvcvideo
videodev              134688  2 uvcvideo,videobuf2_core
snd_hda_intel          52355  3 
snd_hda_codec         192906  3          snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
snd_hwdep              13602  1 snd_hda_codec
ath3k                  13318  0 
snd_pcm               102099  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
btusb                  32412  0 
bluetooth             395423  23 bnep,ath3k,btusb,rfcomm
snd_page_alloc         18710  2 snd_pcm,snd_hda_intel
snd_seq_midi           13324  0 
snd_seq_midi_event     14899  1 snd_seq_midi
asus_nb_wmi            16990  0 
asus_wmi               24191  1 asus_nb_wmi
sparse_keymap          13948  1 asus_wmi
snd_rawmidi            30144  1 snd_seq_midi
snd_seq                61560  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         14497  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              29482  2 snd_pcm,snd_seq
intel_rapl             18773  0 
x86_pkg_temp_thermal    14205  0 
intel_powerclamp       14705  0 
coretemp               13435  0 
kvm_intel             143060  0 
snd                    69238  17 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
dm_multipath           22873  0 
kvm                   451511  1 kvm_intel
arc4                   12608  2 
csi_dh                14882  1 dm_multipath
crct10dif_pclmul       14289  0 
crc32_pclmul           13113  0 
ghash_clmulni_intel    13259  0 
aesni_intel            55624  4 
ath9k                 164164  0 
ath9k_common           13551  1 ath9k
aes_x86_64             17131  1 aesni_intel
ath9k_hw              453856  2 ath9k_common,ath9k
lrw                    13286  1 aesni_intel
gf128mul               14951  1 lrw
glue_helper            13990  1 aesni_intel
ablk_helper            13597  1 aesni_intel
cryptd                 20359  3 ghash_clmulni_intel,aesni_intel,ablk_helper
ath                    28698  3 ath9k_common,ath9k,ath9k_hw
mac80211              626489  1 ath9k
rtsx_pci_ms            18151  0 
psmouse               102222  0 
serio_raw              13462  0 
cfg80211              484040  3 ath,ath9k,mac80211
memstick               16966  1 rtsx_pci_ms
lpc_ich                21080  0 
soundcore              12680  1 snd
i915                  783485  4 
wmi                    19177  1 asus_wmi
mac_hid                13205  0 
drm_kms_helper         52758  1 i915
drm                   302817  5 i915,drm_kms_helper
mei_me                 18627  0 
mei                    82274  1 mei_me
video                  19476  2 i915,asus_wmi
i2c_algo_bit           13413  1 i915
parport_pc             32701  0 
ppdev                  17671  0 
lp                     17759  0 
parport                42348  3 lp,ppdev,parport_pc
hid_generic            12548  0 
usbhid                 52616  0 
hid                   106148  2 hid_generic,usbhid
rtsx_pci_sdmmc         23274  0 
ahci                   25819  3 
libahci                32168  1 ahci
r8169                  67581  0 
rtsx_pci               45956  2 rtsx_pci_ms,rtsx_pci_sdmmc
mii                    13934  1 r8169
dm_mirror              22135  0 
dm_region_hash         20862  1 dm_mirror
dm_log                 18411  2 dm_region_hash,dm_mirror

And here's my brother's:

Module                  Size  Used by
ctr                    13049  1 
ccm                    17773  1 
joydev                 17381  0 
snd_hda_codec_hdmi     46207  1 
snd_hda_codec_realtek    61438  1 
hp_wmi                 14062  0 
sparse_keymap          13948  1 hp_wmi
uvcvideo               80885  0 
videobuf2_vmalloc      13216  1 uvcvideo
videobuf2_memops       13362  1 videobuf2_vmalloc
videobuf2_core         40664  1 uvcvideo
videodev              134688  2 uvcvideo,videobuf2_core
bnep                   19624  2 
rfcomm                 69160  12 
intel_rapl             18773  0 
x86_pkg_temp_thermal    14205  0 
intel_powerclamp       14705  0 
coretemp               13435  0 
kvm                   451511  0 
crct10dif_pclmul       14289  0 
crc32_pclmul           13113  0 
ghash_clmulni_intel    13259  0 
cryptd                 20359  1 ghash_clmulni_intel
snd_hda_intel          52355  5 
snd_hda_codec         192906  3 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
snd_hwdep              13602  1 snd_hda_codec
arc4                   12608  2 
snd_pcm               102099  4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
psmouse               102222  0 
serio_raw              13462  0 
snd_page_alloc         18710  2 snd_pcm,snd_hda_intel
ath9k                 164164  0 
ath9k_common           13551  1 ath9k
ath3k                  13318  0 
ath9k_hw              453856  2 ath9k_common,ath9k
rtsx_pci_ms            18151  0 
btusb                  32412  0 
bluetooth             395423  23 bnep,ath3k,btusb,rfcomm
ath                    28698  3 ath9k_common,ath9k,ath9k_hw
memstick               16966  1 rtsx_pci_ms
lpc_ich                21080  0 
snd_seq_midi           13324  0 
mac80211              626489  1 ath9k
binfmt_misc            17468  1 
snd_seq_midi_event     14899  1 snd_seq_midi
snd_rawmidi            30144  1 snd_seq_midi
cfg80211              484040  3 ath,ath9k,mac80211
wmi                    19177  1 hp_wmi
snd_seq                61560  2 snd_seq_midi_event,snd_seq_midi
nls_iso8859_1          12713  1 
snd_seq_device         14497  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              29482  2 snd_pcm,snd_seq
mac_hid                13205  0 
snd                    69238  20 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
i915                  783485  5 
soundcore              12680  1 snd
video                  19476  1 i915
mei_me                 18627  0 
mei                    82274  1 mei_me
drm_kms_helper         52758  1 i915
drm                   302817  6 i915,drm_kms_helper
i2c_algo_bit           13413  1 i915
parport_pc             32701  0 
ppdev                  17671  0 
lp                     17759  0 
parport                42348  3 lp,ppdev,parport_pc
hid_generic            12548  0 
usbhid                 52616  0 
hid                   106148  2 hid_generic,usbhid
rtsx_pci_sdmmc         23274  0 
ahci                   25819  3 
r8169                  67581  0 
libahci                32168  1 ahci
mii                    13934  1 r8169
rtsx_pci               45956  2 rtsx_pci_ms,rtsx_pci_sdmmc

Edit12: The owner of /dev/bus/usb/* is root. Here's an output of lusb:

Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 04f2:b354 Chicony Electronics Co., Ltd 
Bus 001 Device 005: ID 13d3:3362 IMC Networks 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 04e8:341b Samsung Electronics Co., Ltd SCX-4200 series
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

It finds Printer(scx4200), so I guess it's a scanner too, since it's printer and scaner(multifunction printer).

Here's some latest part of /var/log/syslog"

May  6 19:47:07 dusan-K55A NetworkManager[1050]: <info> Activation (wlan0) successful, device activated.
May  6 19:47:07 dusan-K55A whoopsie[1317]: message repeated 6 times: [ offline]
May  6 19:47:08 dusan-K55A whoopsie[1317]: online
May  6 19:47:08 dusan-K55A signond[6522]: ../../../../src/signond/signondaemon.cpp 388 init Failed to SUID root. Secure storage will not be available. 
May  6 19:47:13 dusan-K55A ntpdate[6489]: adjust time server 91.189.94.4 offset 0.251812 sec
May  6 19:47:23 dusan-K55A kernel: [  249.508157] usb 3-3: new high-speed USB device number 3 using xhci_hcd
May  6 19:47:23 dusan-K55A kernel: [  249.525822] usb 3-3: New USB device found, idVendor=04e8, idProduct=341b
May  6 19:47:23 dusan-K55A kernel: [  249.525830] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
May  6 19:47:23 dusan-K55A kernel: [  249.525834] usb 3-3: Product: SCX-4200 Series
May  6 19:47:23 dusan-K55A kernel: [  249.525837] usb 3-3: Manufacturer: Samsung
May  6 19:47:23 dusan-K55A kernel: [  249.525840] usb 3-3: SerialNumber: 8T21BAILC00139N.
May  6 19:47:23 dusan-K55A kernel: [  250.127578] WARNING! power/level is deprecated; use power/control instead
May  6 19:47:23 dusan-K55A colord: Device added: sysfs-Samsung-SCX-4200_Series
May  6 19:47:23 dusan-K55A kernel: [  250.206346] usblp 3-3:1.1: usblp0: USB Bidirectional printer dev 3 if 1 alt 0 proto 2 vid 0x04E8 pid 0x341B
May  6 19:47:23 dusan-K55A kernel: [  250.206372] usbcore: registered new interface driver usblp
May  6 19:47:24 dusan-K55A NetworkManager[1050]: <info> (wlan0): IP6 addrconf timed out or failed.
May  6 19:47:24 dusan-K55A NetworkManager[1050]: <info> Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) scheduled...
May  6 19:47:24 dusan-K55A NetworkManager[1050]: <info> Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) started...
May  6 19:47:24 dusan-K55A NetworkManager[1050]: <info> Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) complete.
May  6 19:47:25 dusan-K55A wpa_supplicant[1293]: wlan0: CTRL-EVENT-SCAN-STARTED 
May  6 19:47:28 dusan-K55A NetworkManager[1050]: <warn> nl_recvmsgs() error: (-33) Dump inconsistency detected, interrupted
May  6 19:47:41 dusan-K55A signond[6522]: QObject::disconnect: Unexpected null parameter
May  6 19:49:27 dusan-K55A dbus[916]: [system] Activating service name='org.freedesktop.hostname1' (using servicehelper)
May  6 19:49:27 dusan-K55A dbus[916]: [system] Successfully activated service 'org.freedesktop.hostname1'
May  6 19:51:57 dusan-K55A kernel: [  523.891783] usb 3-3: usbfs: interface 1 claimed by usblp while 'scan-thread' sets config #1
May  6 19:50:34 dusan-K55A wpa_supplicant[1293]: message repeated 3 times: [ wlan0: CTRL-EVENT-SCAN-STARTED ]
May  6 19:52:02 dusan-K55A wpa_supplicant[1293]: wlan0: WPA: Group rekeying completed with 7c:05:07:de:42:7a [GTK=TKIP]
May  6 19:52:17 dusan-K55A wpa_supplicant[1293]: wlan0: CTRL-EVENT-SCAN-STARTED 
May  6 19:53:24 dusan-K55A kernel: [  610.927164] usb 3-3: usbfs: interface 1 claimed by usblp while 'scan-thread' sets config #1

And here's some latest output from /var/log/kern.log, here it shows some kind of driver interference:

May  6 19:47:04 dusan-K55A kernel: [  230.535670] ath9k 0000:02:00.0 wlan0: disabling HT as WMM/QoS is not supported by the AP
May  6 19:47:04 dusan-K55A kernel: [  230.535672] ath9k 0000:02:00.0 wlan0: disabling VHT as WMM/QoS is not supported by the AP
May  6 19:47:04 dusan-K55A kernel: [  230.537083] wlan0: associate with 7c:05:07:de:42:7a (try 1/3)
May  6 19:47:04 dusan-K55A kernel: [  230.541459] wlan0: RX AssocResp from 7c:05:07:de:42:7a (capab=0x411 status=0 aid=1)
May  6 19:47:04 dusan-K55A kernel: [  230.541663] wlan0: associated
May  6 19:47:23 dusan-K55A kernel: [  249.508157] usb 3-3: new high-speed USB device number 3 using xhci_hcd
May  6 19:47:23 dusan-K55A kernel: [  249.525822] usb 3-3: New USB device found, idVendor=04e8, idProduct=341b
May  6 19:47:23 dusan-K55A kernel: [  249.525830] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
May  6 19:47:23 dusan-K55A kernel: [  249.525834] usb 3-3: Product: SCX-4200 Series
May  6 19:47:23 dusan-K55A kernel: [  249.525837] usb 3-3: Manufacturer: Samsung
May  6 19:47:23 dusan-K55A kernel: [  249.525840] usb 3-3: SerialNumber: 8T21BAILC00139N.
May  6 19:47:23 dusan-K55A kernel: [  250.127578] WARNING! power/level is deprecated; use power/control instead
May  6 19:47:23 dusan-K55A kernel: [  250.206346] usblp 3-3:1.1: usblp0: USB Bidirectional printer dev 3 if 1 alt 0 proto 2 vid 0x04E8 pid 0x341B
May  6 19:47:23 dusan-K55A kernel: [  250.206372] usbcore: registered new interface driver usblp
May  6 19:51:57 dusan-K55A kernel: [  523.891783] usb 3-3: usbfs: interface 1 claimed by usblp while 'scan-thread' sets config #1
May  6 19:53:24 dusan-K55A kernel: [  610.927164] usb 3-3: usbfs: interface 1 claimed by usblp while 'scan-thread' sets config #1

In ~/.xsession-errors there's no errors, I think:

Script for ibus started at run_im.
Script for auto started at run_im.
Script for default started at run_im.
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd main process ended, respawning
init: at-spi2-registryd respawning too fast, stopped

Edit13: By analising errors in /var/log/kern.log, i have found out that this error line is outputed into kern.log when I get error no scanner found:

May  6 20:45:34 dusan-K55A kernel: [  500.209280] usb 3-3: usbfs: interface 1 claimed by usblp while 'scan-thread' sets config #1

And I get this error when "Failed to scan" error heppens(like in screenshot):

May  6 20:52:03 dusan-K55A kernel: [  889.843120] usb 3-3: usbfs: interface 1 claimed by usblp while 'scan-thread' sets config #1

Edit14: I realized that with Samsung Universal linux driver, which I have installed via this link, printing doesn't work. I uninstalled it and installed drivers via add printer function in system settings -> printers. However, now scanning doesn't work even with steps in edit8, which previously worked, but now, printing works. AHowever, scanning with vuescan still works.

Edit15: Here's output of grep 341b /etc/sane.d/xerox_mfp.conf:

usb 0x04e8 0x341b

And output of modprobe -r usblp; sane-find-scanner:

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.

  # No USB scanners found. If you expected something different, make sure that
  # you have loaded a kernel driver for your USB host controller and have setup
  # the USB system correctly. See man sane-usb for details.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

Here's output of ldd $(which sane-find-scanner):

linux-vdso.so.1 =>  (0x00007fffad7e6000)
    libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007f872a0b6000)
    libieee1284.so.3 => /usr/lib/x86_64-linux-gnu/libieee1284.so.3 (0x00007f8729eaa000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8729ae3000)
    libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f87298d2000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f87296b4000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f872a2f4000)
    libcgmanager.so.0 => /lib/x86_64-linux-gnu/libcgmanager.so.0 (0x00007f8729499000)
    libnih.so.1 => /lib/x86_64-linux-gnu/libnih.so.1 (0x00007f8729281000)
    libnih-dbus.so.1 => /lib/x86_64-linux-gnu/libnih-dbus.so.1 (0x00007f8729077000)
    libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f8728e31000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8728c29000)

Edit16: Here's dll.conf.

Edit17: Here's log.txt, the output of sudo strace sane-find-scanner.

Edit18: Here's output of scanimage -L, it's same for mine and my brother's laptop:

device `xerox_mfp:libusb:003:003' is a SAMSUNG ORION multi-function peripheral
27
  • Was this system upgraded to latest version? Your brother's laptop is a fresh install? I ask because upgrading over fresh install can cause weird problems like this. However they are different hardware so could be a nasty bug.
    – fleamour
    May 4, 2014 at 10:16
  • This sounds like it may, perhaps, be a kernel module (driver) issue. Perhaps a specific one isn't loaded that should be. If you could also provide the output of lsmod from both computers with the scanner plugged in, that may give us a good starting point.
    – Chuck R
    May 4, 2014 at 10:49
  • When the scanner fails do you see any errors in /var/log/syslog or /var/log/kern.log or ~/.xsession-errors?
    – bain
    May 6, 2014 at 14:32
  • 2
  • 1
    It works! This fixed the problem and the scan is now working. Post the answer if you want bounty reward. One question: Will this affect USB 3.0 performance? May 9, 2014 at 9:50

7 Answers 7

22
+100

Your USB 2.0 device (in this case, scanner) has some compatibility problem interacting with your USB 3.0 system (either USB3 ports, or USB2 ports of a USB3 hub). The problem could be caused by the scanner hardware/firmware, PC EFI/BIOS firmware, PC USB chipset, or the Linux kernel xhci_hcd driver.

Possible solutions:

  • Use a short USB 2 extension cable (or just a USB2 cable) to connect the device. This forces the USB 3 port to use USB 2 signalling. A USB 3 device or cable has 9 pins, whereas a USB 2 device or cable only has 4 pins. A USB 3 port will default to USB 2 signaling communication when only 4 pins are connected. A USB 2 extension cable only caries 4 wires that connect the 4 pins of USB 2 only communications.

  • Use a cheap USB 1.1 (or 2.0) hub and connect it to the USB3 port. Connect your device to the USB 1.1/2.0 hub. This will force the connection to be USB1.1/2.0. Since the hub has a different USB controller, it will workaround some protocol bugs. A USB 1.1 hub is a good choice for a "low speed" device like a mouse, keyboard etc. A USB 2.0 hub may well be necessary for a "full speed" device like a scanner that won't downgrade to USB 1.1.

  • Upgrade your PC/laptop BIOS. Manufacturers can workaround many USB issues with fixes in the BIOS/EFI.

  • Connect the USB 2.0 device (scanner) via a USB 2.0 port if the laptop has one. This may make no difference if your USB2 ports are also controlled by the xhci_hcd driver (ie. you still see new high-speed USB device number x using xhci_hcd in dmesg), in which case try using an external USB2 hub.

  • If this is a desktop or server rather than a laptop, try a different PCI USB controller card. Different USB3 cards have different XHCI host controller chips, so compatibility with different USB hubs/devices varies.

  • Upgrade the firmware of your USB 2.0 device. This is probably not possible for a consumer-level scanner, but is possible for some USB 2.0 devices (eg. Pro cameras)

  • Replace your USB 2.0 device (scanner) with a USB 3.0 compatible device

  • Upgrade to the latest mainline kernel

  • In the UEFI/BIOS change the setting under USB configuration, "XHCI Pre-Boot mode" from enabled to disabled. In some BIOS configurations this setting is known as "XHCI Mode".

    USB 3.0 ports are controlled by the xhci_hcd driver in Linux. When "XHCI pre-boot mode" is enabled the BIOS will route the USB 3.0 ports to the USB3 xHCI controller. When it is disabled, the USB 3.0 ports are routed to the EHCI (USB 2.0) ports. The wording "pre-boot mode" implies that this option only affects the environment before a full operating system is booted (the associated BIOS help text explicitly mentions that this option is used for USB3 support in MSDOS); however, it seems this can also affect the post-boot environment, and can have the effect of connecting the USB 3.0 ports to the USB 2.0 controller even after Linux is loaded. The disadvantage of this is that all the USB 3 ports will now run at USB 2 speed.

  • Disable USB powersaving for all devices with the autosuspend kernel module option:

    modprobe usbcore autosuspend=-1

    Or if usbcore is not a module with this kernel boot parameter:

    usbcore.autosuspend=-1

    (in Ubuntu usbcore is builtin so use the kernel boot parameter)

  • Disable powersaving (USB autosuspend) for the scanner (from Documentation/usb/power-management.txt.

    When you plug the scanner in check dmesg|tail and you will see something like

    usb 3-3: Product: SCX-4200 Series

    The number 3-3 represents the USB path of the device in the format bus-port.port.port. You will find the corresponding sysfs directory at /sys/bus/usb/devices/3-3. Write on to power/control here to disable autosuspend:

    echo on > /sys/bus/usb/devices/3-3/power/control

0
5

I had a similar problem with my scanner (all in one Brother MFC-j410) on Ubuntu 14.04 32 bit. The scanner only worked after starting XSANE for the second time and then only did one operation preview or scan. I tried changing the usb ports to usb 2.0 to no avail. My motherboard is an Asus B85M-k with an intel i3 LGA1150 chip.

I tried virtualbox with a previous version of Ubuntu where the scanner always worked on an other pc. Still, no luck, which made me highly suspicious about the usb 3 capabilities. The printer gave me some warnings also, but did print.

after reading this

USB 3.0 ports are controlled by the xhci_hcd driver in Linux. When "XHCI pre-boot mode" is enabled the BIOS will route the USB 3.0 ports to the USB3 xHCI controller. When it is disabled, the USB 3.0 ports are routed to the EHCI (USB 2.0) ports. The wording "pre-boot mode" implies that this option only affects the environment before a full operating system is booted (the associated BIOS help text explicitly mentions that this option is used for USB3 support in MSDOS); however, it seems this can also affect the post-boot environment, and can have the effect of connecting the USB 3.0 ports to the USB 2.0 controller even after Linux is loaded (so ports run at USB2 speed).

I went into my BIOS and under advanced settings found and changed the USB 3.0 from XHCI enabled to disabled and there was another setting for the usb 2 (I think it was EHCI) from enabled to disabled or the other way around, sorry I don't remember. Anyhow, after booting back into Ubuntu 14.04 32 bit, everything worked fine.

2
  • Yep I did the same, thankfully my Dell laptop had an option to disable usb 3, rebooted and hey presto, scanner works fine now (btw mine is a epson scansnap 1300i).
    – Maks
    Nov 30, 2014 at 4:42
  • Disabling XHCI worked for me as well. Thank you. Mar 9, 2016 at 2:36
1

Update: From the info found on internet results:

  1. Drivers v 2.0.0 are universally known as bugged (so that you apply a patch).
  2. The developer of the patch do not continue to update it and said
    "Versions 2.xx of its Linux drivers have a defect: the user has to run with root permissions to be able to scan. That is very dangerous" and suggest to install version 3.xx."
  3. In the Samsung site it exists a version 3 for Windows and OSX not for linux
  4. Following the link you give and searching around I find a link: (maybe it functions) http://www.openprinting.org/download/printdriver/debian/dists/lsb3.2/main/binary-i386/openprinting-ppds-postscript-samsung_20140331-1lsb3.2_all.deb
  5. In the same path there is another file named samsung

Even if you have downloaded and installed the version 2.xx and the relative patch, you cannot expect it functions with a kernel different from the one was tested.

Possible solutions:

  • Try to install driver version 3.xx or the ones in the directory linked above.
  • Find with which kernel was compatible the couple driver+patch. Decide if install on your machine or to install it inside a Virtual box.
  • Try to download the drivers and program for windows (better an old one) and try to install/run them under wine.
  • Here there is another tutorial on how to install those driver (foreign language) different output for scanimage -L
    device smfp:SAMSUNG SCX-4200 Series on USB:0 is a SAMSUNG SCX-4200 Series on USB:0 Flatbed Scanner
  • Ignore the safety rules that push the developer of the patch to create the patch and execute the scanner program not like a user but like root. With the driver not patched. Risky and dangerous. I didn't really suggest you...

Good luck


Meanwhile you don't find a fix in Ubuntu, I could suggest to you this workaround. You said

I might switch to windows, which I don't like because it's not open-source...

(I agree) So on your computer under windows seems that the scanner functions. Try to install Windows and drivers in a Virtualbox image. If the scanner functions you have not to switch system...

If it doesn't functions try to run the same virtual machine on the computer of your brother. If from that computer functions you will be sure there's a setting somewhere in your computer that you can try to fix. Good luck.

7
  • I don't have windows, and I don't want to use pirated version. I might borrow windows laptop from a fried, but I'm not an advanced user, so I don't feel like fixing it myself. That's why I asked here. May 7, 2014 at 17:34
  • I agree I said it. I understood that you have 2 operative systems on your laptop. BTW, since it functions with Vuescan and with Scanlite(even if not in a proper mode)I'm led to suppose that this is not a problem of BIOS settings. I confirm that for other trademark scanner-printer the fact that Linux recognises the printer do not imply it recognise as a Scanner too. Which your brother laptop's lsusb results? Does dmesg give you some new errors when scanner fail? (I solved problem with Epson RX690 with scanlite. It functions but sudo sane-find-scanner responds with your same output).
    – Hastur
    May 8, 2014 at 6:52
  • @Dusan Milosevic: Updated answer
    – Hastur
    May 9, 2014 at 1:56
  • I trid all drivers on that site, and none work. Thank you! May 9, 2014 at 9:44
  • I really suggest you to install VirtualBox and create one or two of virtual machines: in the virtual machine the risk to run a program as root is relative only to the virtual machine, so you can accept it. Moreover if it fails you can always install an old Linux kernel+driver+patch...
    – Hastur
    May 9, 2014 at 10:18
1

Try connecting the scanner via a powered USB. There's a chance your computer isn't putting enough power to the USB port.

For anyone else having this problem, be sure to check adding a powered USB hub. It has resolved the issue in many occasions with computers that had problems with devices that worked on other computers.

This has worked with pen drives that failed on my main computer as well as customers computers. It has also resolved issues with external USB drives which fail on certain usb ports where other devices worked.

I have also had occasions where Y cable adapters has served as the same resolution.

I hope this clarification will save others who are having similar problems.

I don't know whether the OP's issue is resolved at this time. But the differences between his computer and the other computers which he has described has everything exact including the same version and update, the USB is a clear factor in this case, which could be resolved with either a powered hub or Y cable USB adapter.

7
  • And how to do that? May 7, 2014 at 7:59
  • Purchase a usb hub that takes a power adapter. Example image: image.apollo3.com/image/gen/poweredusbadapter140507.jpg May 7, 2014 at 8:36
  • It's a printer with scanner, so I think it has enough power, thus, it works great on my brother's laptop... I said, I'm not gonna spend money on scanning, which works with any other computer except mine! And what kind of answer is this? Anyone could say "Buy a new laptop" and that would probably fix this issue, but it's not quality answer! May 7, 2014 at 10:44
  • 2
    By the way, I'm not recommending a $300.00 Laptop. I'm recommending a $7.00 USB hub. That's much more economical than purchasing a $300.00 windows OS with another $300.00 on the word processor and accessories. I'm mentioning this because it's in your question. While it's not my suggestion, in my environment I replace a possibly faulty Laptop as more economically than replacing the OS. In your question you say your USB works with everything else. But I'll mention that for me, it's common that certain usb devices fail with some of my USB ports. May 7, 2014 at 14:01
  • 1
    It is worth trying a different USB hub if you happen to have one lying around. USB protocol bugs that are exposed by one program may not necessarily appear with another, even on the same hardware.
    – bain
    May 8, 2014 at 13:05
1

I will give a simple answer not pretending to be better.

With some motherboards old USB 2.0 scanners do not work. No matter if they are connected to USB 2.0, or 3.0 port.

An easy workaround is to disable XHCI mode in UEFI aka BIOS. It has been mentioned in other answers, but not easy to find.

This issue has been addressed by kernel developers and may be fixed in newer kernels.

1

Linux kernel version 4.1.1 (available at http://kernel.ubuntu.com/~kernel-ppa/mainline/) solves the problem that some scanners do not work with USB 3.0. At least it does do so on my computer.

To be recognized as a scanner that has to be available to non-root users for some devices a line like

SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", MODE:="666", GROUP="users"

might be necessary in a file named /etc/udev/rules.d/samsung.rules or similar. The vendor and product ids can be read out by the command

lsusb

in the following line:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

the device (in this case not a scanner but a usb hub, but had no scanner available right now) has the vendor id 1d6b and the product id 0002.

0

A workaround I found, was setting up a virtual machine (both VirtualBox and VMWare [player] should be ok) with any linux distro you want, I configured it to be compatible with USB 2.0 protocol. Once I redirect my USB device to the VM I can scan from there.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .