USB 2.0设备(扫描仪)无法与USB 3.0系统上的xhci_hcd一起使用

我正在尝试使用samsung scx-4200进行扫描,这是一台带扫描仪的打印机。 当我连接我兄弟的笔记本电脑,它具有相同版本的ubuntu(14.04),它的工作原理。 我不知道如何以及为什么。 他没有安装任何扫描软件。 我还尝试了另一台带有基本操作系统的计算机,它也可以工作。 现在这里真的很奇怪! 我尝试在我和兄弟的笔记本电脑上运行许多发行版的USB。 扫描仪总是和兄弟一起工作,从不和我的笔记本电脑一起工作。 我需要扫描仪很多,可能会发生这种情况,因为这样,我可能会切换到我不喜欢的窗口,因为它不是开源的,所以请帮忙! 以下是我收到的错误和简单扫描设置的屏幕截图。

在此处输入图像描述在此处输入图像描述

Edit1:USB可以与任何其他设备一起使用。 到目前为止,我已连接鼠标,USB闪存,相机,它们都工作正常。 我试图将扫描仪连接到所有3个USB端口(2 3.0和1 2.0),同样的事情发生了。

编辑2:扫描使用程序vuescan,但它需要购买它以删除它创建的水印,它是闭源。

编辑3:在所有经过测试的笔记本电脑中,只有我的USB 3.0(x2)。 但是,扫描在USB 2.0上也不起作用(在我的笔记本电脑上)。

Edit4:这是sudo sane-find-scanner的输出:

#sanne-find-scanner现在将尝试检测您的扫描仪。 如果#结果与您的预期不同,请首先确保您的#扫描仪已打开电源并正确连接到您的计算机。

#未找到SCSI扫描程序。 如果您期望不同的东西,请确保#您已为SCSI适配器加载了内核SCSI驱动程序。

#未找到USB扫描仪。 如果您期望有不同的东西,请确保#您已为您的USB主控制器加载了内核驱动程序并正确设置了USB系统。 有关详细信息,请参阅man sane-usb。

#不检查并行端口扫描程序。

#此程序无法检测到大多数连接到并行端口或其他专用端口#的扫描仪。

编辑5:我尝试了BIOS中与USB配置相关的所有设置组合,没有结果。 我恢复了原来的设置。

Edit6:我试过scanlite,这是它给我的错误:

在此处输入图像描述

编辑7:我第二次运行Scanlite,它说它没有检测到我的电脑上的扫描仪。 我有时会在简单的扫描中得到simillar信息。

编辑8:执行以下操作后,扫描仪可以使用简单扫描:

  1. 打开系统设置
  2. 单击“打印机”
  3. 右键单击我的打印机(scx-4200) – >属性
  4. 墨水/碳粉水平
  5. 单击“刷新”
  6. 打开简单扫描
  7. 单击扫描
  8. 等待大约10-20秒,直到出现错误消息(如提供的屏幕截图)
  9. 再次单击扫描

这仅适用于1次扫描。

编辑9:我和我的兄弟都有64位。 我哥哥的笔记本电脑是惠普,我的笔记本电脑是华硕。 我在BIOS中有更多选择。 我有2个USB 3.0和一个2.0,而我的兄弟有3 x 2.0。 这是一些不同之处…这是我的笔记本电脑uname -a的输出:

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

这是我兄弟的:

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:我的笔记本电脑全新安装,兄弟升级了。 当两台笔记本电脑都运行全新安装13.10时,同样的事情发生了

Edit11:这是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 

这是我兄弟的:

 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:/ dev / bus / usb / *的所有者是root。 这是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 

它找到了Printer(scx4200),所以我猜它也是一台扫描仪,因为它是打印机和scaner(多function打印机)。

这是/ var / log / syslog的最新部分“

 May 6 19:47:07 dusan-K55A NetworkManager[1050]:  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]:  (wlan0): IP6 addrconf timed out or failed. May 6 19:47:24 dusan-K55A NetworkManager[1050]:  Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) scheduled... May 6 19:47:24 dusan-K55A NetworkManager[1050]:  Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) started... May 6 19:47:24 dusan-K55A NetworkManager[1050]:  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]:  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 

这里是/var/log/kern.log的一些最新输出,这里显示了某种驱动程序干扰

 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 

〜/ .xsession-errors中没有错误,我想:

 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 

编辑13:通过分析/var/log/kern.log中的错误,我发现当我收到错误没有找到扫描器时,这个错误行被输出到kern.log中:

 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 

当“扫描失败”错误时,我会收到此错误(如屏幕截图所示):

 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 

编辑14:我意识到使用三星通用Linux驱动程序,我通过此链接安装,打印不起作用。 我通过在系统设置 – >打印机中添加打印机function来卸载它并安装驱动程序。 但是,现在扫描甚至无法使用之前有效的edit8中的步骤,但现在,打印工作。 然而,用vuescan扫描仍然有效。

Edit15:这是grep 341b /etc/sane.d/xerox_mfp.conf的输出:

 usb 0x04e8 0x341b 

并输出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. 

这是ldd $的输出(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: 这是dll.conf 。

Edit17: 这是log.txt , sudo strace sane-find-scanner的输出。

Edit18:这是scanimage -L的输出,对我的和我兄弟的笔记本电脑来说是一样的:

 device `xerox_mfp:libusb:003:003' is a SAMSUNG ORION multi-function peripheral 

您的USB 2.0设备(在本例中为扫描仪)存在与USB 3.0系统(USB3端口或USB3集线器的USB2端口)交互的兼容性问题。 问题可能是由扫描仪硬件/固件,PC EFI / BIOS固件,PC USB芯片组或Linux内核xhci_hcd驱动程序引起的。

可能的解决方案:

  • 使用短USB 2延长线(或仅USB2线)连接设备。 这会强制USB 3端口使用USB 2信令。 USB 3设备或电缆有9个引脚,而USB 2设备或电缆只有4个引脚。 当仅连接4个引脚时,USB 3端口将默认为USB 2信号通信。 USB 2延长线只能连接4条线,连接4个USB 2通信引脚。

  • 使用廉价的USB 1.1(或2.0)集线器并将其连接到USB3端口。 将您的设备连接到USB 1.1 / 2.0集线器。 这将强制连接为USB1.1 / 2.0。 由于集线器具有不同的USB控制器,因此它将解决一些协议错误。 USB 1.1集线器是“低速”设备(如鼠标,键盘等)的理想选择。对于像扫描仪这样不会降级到USB 1.1的“全速”设备,USB 2.0集线器可能是必需的。

  • 升级您的PC /笔记本电脑BIOS。 制造商可以通过BIOS / EFI中的修复解决许多USB问题。

  • 如果笔记本电脑有USB 2.0设备,请通过USB 2.0端口连接USB 2.0设备。 如果您的USB2端口也由xhci_hcd驱动程序控制 (即您仍然在dmesg中new high-speed USB device number x using xhci_hcd看到new high-speed USB device number x using xhci_hcd ),这可能没有区别,在这种情况下尝试使用外部USB2集线器。

  • 如果这是台式机或服务器而不是笔记本电脑,请尝试使用其他PCI USB控制器卡。 不同的USB3卡具有不同的XHCI主控制器芯片,因此与不同USB集线器/设备的兼容性各不相同。

  • 升级USB 2.0设备的固件。 这对于消费级扫描仪来说可能是不可能的,但对于某些USB 2.0设备(例如Pro相机)是可能的。

  • 用USB 3.0兼容设备更换USB 2.0设备(扫描仪)

  • 升级到最新的主线内核

  • 在UEFI / BIOS中,将 USB配置下的设置 , “XHCI预启动模式”从启用更改为禁用。 在某些BIOS配置中,此设置称为“XHCI模式”。

    USB 3.0端口由Linux中的xhci_hcd驱动程序控制 。 当“XHCI预启动模式”启用时,BIOS将USB 3.0端口路由到USB3 xHCI控制器 。 禁用时,USB 3.0端口将路由到EHCI(USB 2.0)端口。 措辞“预启动模式”意味着此选项仅引导完整操作系统之前影响环境(相关的BIOS帮助文本明确提到此选项用于MSDOS中的USB3支持); 但是,这似乎也会影响后启动环境,即使在加载Linux之后也可以将USB 3.0端口连接到USB 2.0控制器。 这样做的缺点是所有USB 3端口现在都将以USB 2速度运行。

  • 使用 autosuspend内核模块选项禁用所有设备的USB省电 :

    modprobe usbcore autosuspend=-1

    或者,如果usbcore不是具有此内核引导参数的模块:

    usbcore.autosuspend=-1

    (在Ubuntu中,usbcore是内置的,所以使用内核启动参数)

  • 禁用扫描仪的省电(USB自动挂起)(来自Documentation / usb / power-management.txt 。

    当你在检查dmesg|tail插入扫描仪时,你会看到类似的东西

    usb 3-3: Product: SCX-4200 Series

    数字3-3表示设备的USB路径,格式为bus-port.port.port 。 您将在/ sys / bus / usb / devices / 3-3中找到相应的sysfs目录。 此处写入电源/控制以禁用自动暂停:

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

在Ubuntu 14.04 32位上,我的扫描仪(所有在一台Brother MFC-j410中)出现了类似的问题。 扫描仪仅在第二次启动XSANE后才起作用,然后只进行一次操作预览或扫描。 我尝试将usb端口更改为usb 2.0无济于事。 我的主板是带有intel i3 LGA1150芯片的华硕B85M-k。

我尝试使用以前版本的Ubuntu的virtualbox,其中扫描仪总是在另一台PC上工作。 但是,没有运气,这让我对usb 3的能力非常怀疑。 打印机也给了我一些警告,但确实打印了。

读完之后

USB 3.0端口由Linux中的xhci_hcd驱动程序控制。 当“XHCI预启动模式”启用时,BIOS将USB 3.0端口路由到USB3 xHCI控制器。 禁用时,USB 3.0端口将路由到EHCI(USB 2.0)端口。 措辞“预启动模式”意味着此选项仅在引导完整操作系统之前影响环境(相关的BIOS帮助文本明确提到此选项用于MSDOS中的USB3支持); 但是,它似乎也会影响启动后环境,即使在加载Linux之后也可以将USB 3.0端口连接到USB 2.0控制器(因此端口以USB2速度运行)。

我进入我的BIOS并在高级设置下找到并将USB 3.0从XHCI启用更改为禁用,并且还有另一个设置为usb 2(我认为是EHCI)从启用到禁用或反过来,抱歉我不知道记住。 无论如何,在重新启动到Ubuntu 14.04 32位后,一切正常。

更新:从互联网上找到的信息结果:

  1. 驱动程序v 2.0.0通常被称为bugged(因此您应用了补丁)。
  2. 该补丁的开发人员不会继续更新它并说
    “其Linux驱动程序的2.xx版本存在缺陷:用户必须以root权限运行才能扫描。这非常危险”并建议安装3.xx版本。“
  3. 在三星网站上,它存在适用于Windows的版本3和适用于Linux的OSX
  4. 按照你给出的链接和搜索我找到一个链接:(也许它的function) http://www.openprinting.org/download/printdriver/debian/dists/lsb3.2/main/binary-i386/openprinting-ppds-后记-samsung_20140331-1lsb3.2_all.deb
  5. 在同一条路径中还有另一个名为samsung的文件

即使你已经下载并安装了2.xx版本和相关的补丁,你也不能指望它的内核与被测试的内核不同。

可能的解决方案:

  • 尝试安装驱动程序版本3.xx或上面链接的目录中的驱动程序。
  • 找到与哪个内核兼容的几个驱动程序+补丁。 决定是否在您的计算机上安装或将其安装在虚拟框中。
  • 尝试下载Windows的驱动程序和程序(更好的是旧的)并尝试在wine下安装/运行它们。
  • 这里有另一个关于如何为scanimage -L安装这些驱动程序(外语)不同输出的教程
    设备smfp:USB上的SAMSUNG SCX-4200系列:0是USB上的SAMSUNG SCX-4200系列:0平板扫描仪
  • 忽略推动修补程序开发人员创建修补程序并执行扫描程序的安全规则,而不是像用户那样执行扫描程序。 随着驱动程序没有打补丁。 危险危险 。 我没有真的建议你……

祝好运


同时你在Ubuntu中找不到修复程序,我可以向你推荐这个解决方法。 你说

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

(我同意)所以在Windows下的计算机上似乎是扫描仪的function。 尝试在Virtualbox映像中安装Windows和驱动程序。 如果扫描仪function你不能切换系统…

如果它没有function,请尝试在您兄弟的计算机上运行相同的虚拟机。 如果从该计算机运行,您将确定计算机中的某个位置可以尝试修复。 祝好运。

尝试通过有源USB连接扫描仪。 您的计算机可能无法为USB端口提供足够的电量。

对于遇到此问题的其他人,请务必检查是否添加了有源USB集线器。 它已经在很多情况下解决了这个问题,因为计算机在其他计算机上运行的设备有问题。

这适用于在我的主计算机和客户计算机上失败的笔式驱动器。 它还解决了外部USB驱动器的问题,这些驱动器在其他设备工作的某些USB端口上出现故障。

我也曾经遇到Y电缆适配器具有相同分辨率的情况。

我希望这一澄清能够拯救那些遇到类似问题的人。

我不知道OP的问题目前是否得到解决。 但是他所描述的计算机和其他计算机之间的差异包括相同的版本和更新,USB在这种情况下是一个明确的因素,可以通过有源集线器或Y电缆USB适配器解决。

我会给出一个简单的答案而不是假装更好。

有些主板旧USB 2.0扫描仪不起作用。 无论它们是连接到USB 2.0还是3.0端口。

一个简单的解决方法是在UEFI aka BIOS中禁用XHCI mode 。 在其他答案中已经提到过,但不容易找到。

此问题已由内核开发人员解决,可能会在较新的内核中修复。

Linux内核版本4.1.1(可从http://kernel.ubuntu.com/~kernel-ppa/mainline/获得 )解决了某些扫描仪无法使用USB 3.0的问题。 至少它确实在我的电脑上这样做了。

要被识别为扫描仪,必须为某些设备的非root用户提供像

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

可能需要在名为/etc/udev/rules.d/samsung.rules或类似的文件中。 可以通过命令读取供应商和产品ID

 lsusb 

在以下行中:

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

设备(在这种情况下不是扫描仪而是USB集线器,但现在没有可用的扫描仪)具有供应商ID 1d6b和产品ID 0002。

我找到的解决方法是设置一个虚拟机(VirtualBox和VMWare [播放器]应该没问题)和你想要的任何Linux发行版,我将它配置为与USB 2.0协议兼容。 将USB设备重定向到VM后,我可以从那里进行扫描。

Interesting Posts