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

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

我正在尝试扫描三星 scx-4200这是一台带扫描仪的打印机。当我连接我哥哥的笔记本电脑时,它运行着相同版本的 ubuntu(14.04),它可以工作。我不知道怎么做到的,也不知道为什么。他没有安装任何扫描软件。我也尝试了另一台装有 elementary os 的电脑,它也能工作。现在,事情变得非常奇怪!我尝试在我的和哥哥的笔记本电脑上运行许多来自 live USB 的发行版。扫描仪在哥哥的笔记本上总是能用,但在我的笔记本上永远用不了。我非常需要扫描仪,因此我可能会切换到 Windows,但我不喜欢它,因为它不是开源的,所以请帮忙!这是我收到的错误的屏幕截图和简单扫描的设置。

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

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

编辑2:扫描使用程序vuescan进行,但需要购买它才能去除它创建的水印,并且它是封闭源代码的。

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

编辑4:这是输出sudo sane-find-scanner

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

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

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

# 不检查并行端口扫描仪。

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

编辑5:我尝试了 BIOS 中与 USB 配置相关的所有设置组合,但无济于事。我恢复了原始设置。

编辑6:我尝试了 scanlite,它给了我以下错误:

在此处输入图片描述

编辑 7:第二次运行 Scanlite 时,它​​说它没有检测到我电脑上的扫描仪。我有时在简单扫描时也会收到类似的消息。

编辑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 个 2.0。这是一些区别... 以下是输出uname -a对于我的笔记本电脑:

Linux dusan-K55A 3.13.0-24-generic #46-Ubuntu SMP 星期四 4月 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 星期四 4月 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

编辑 10:我的笔记本电脑是全新安装的,兄弟的笔记本电脑是升级的。当两台笔记本电脑都运行全新安装的 13.10 时,发生了同样的事情

编辑11:这是我的输出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

编辑 12:/dev/bus/usb/* 的所有者是 root。以下是卢斯布

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

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

以下是/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

以下是来自/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 错误我认为没有错误:

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驱动程序,我已经通过此链接,打印不起作用。我卸载了它并通过系统设置 -> 打印机中的添加打印机功能安装了驱动程序。但是,现在即使按照 edit8 中的步骤扫描也不起作用,以前可以,但现在打印可以了。但是,使用 vuescan 扫描仍然有效。

Edit15:以下是输出grep 341b /etc/sane.d/xerox_mfp.conf

usb 0x04e8 0x341b

并输出modprobe -r usblp; 理智查找扫描仪

  # 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 $(哪个健全的发现扫描仪)

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)

編輯16:这是 dll.conf

編輯17:这是 log.txt,输出sudo strace sane-find-scanner

Edit18:以下是扫描图像-L,我和我弟弟的笔记本电脑也是一样的:

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

答案1

您的 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 根电线,用于连接 USB 2 专用通信的 4 个引脚。

  • 使用便宜的 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驱动程序(即您仍然可以new high-speed USB device number x using xhci_hcd在 dmesg 中看到),在这种情况下,请尝试使用外部 USB2 集线器。

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

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

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

  • 升级到最新的主线内核

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

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

  • 禁用 USB 省电对于所有具有自动暂停内核模块选项:

    modprobe usbcore autosuspend=-1

    或者如果 usbcore 不是具有此内核启动参数的模块:

    usbcore.autosuspend=-1

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

  • 禁用扫描仪的省电功能(USB 自动暂停)(从文档/usb/电源管理.txt

    当你插入扫描仪时dmesg|tail,你会看到类似

    usb 3-3: Product: SCX-4200 Series

    数字3-3表示设备的 USB 路径,格式为总线端口.端口.端口您将在以下位置找到相应的 sysfs 目录/sys/bus/usb/设备/3-3。 写功率控制此处禁用自动暂停:

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

答案2

我在 Ubuntu 14.04 32 位上运行的扫描仪(一体式 Brother MFC-j410)也遇到了类似的问题。扫描仪只有在第二次启动 XSANE 后才能工作,然后只执行一次操作预览或扫描。我尝试将 USB 端口更改为 USB 2.0,但没有成功。我的主板是华硕 B85M-k,带有英特尔 i3 LGA1150 芯片。

我尝试使用 VirtualBox 和旧版 Ubuntu,扫描仪在另一台电脑上始终能正常工作。但还是不行,这让我对 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 位后,一切正常。

答案3

更新:根据互联网结果找到的信息:

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

即使您已经下载并安装了 2.xx 版本和相关补丁,您也不能期望它能够在与测试内核不同的内核下运行。

可能的解决方案:

  • 尝试安装驱动程序版本 3.xx 或上面链接的目录中的版本。
  • 查找与哪个内核兼容的驱动程序+补丁。决定是否安装在您的机器上或安装在虚拟机中。
  • 尝试下载适用于 Windows 的驱动程序和程序(最好是旧的),然后尝试在 wine 下安装/运行它们。
  • 这里还有另一个关于如何安装这些驱动程序的教程(外语) scanimage -L
    设备 smfp 的不同输出:USB:0 上的 SAMSUNG SCX-4200 系列是 USB:0 上的 SAMSUNG SCX-4200 系列平板扫描仪
  • 忽视安全规则,这些规则促使补丁开发人员创建补丁并以 root 身份而不是用户身份执行扫描仪程序。驱动程序未打补丁。 有风险危险的。我其实并没有建议你……

祝你好运


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

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

(我同意)所以在 Windows 下,您的计算机上扫描仪似乎可以正常工作。尝试在 Virtualbox 映像中安装 Windows 和驱动程序。如果扫描仪正常工作,则您不必切换系统...

如果它不起作用,请尝试在您兄弟的计算机上运行相同的虚拟机。如果该计算机起作用,则您可以确定计算机中的某个设置可以尝试修复。祝你好运。

答案4

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

某些主板不支持旧式 USB 2.0 扫描仪。无论它们是连接到 USB 2.0 还是 3.0 端口。

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

内核开发人员已经解决了该问题,并且可能会在较新的内核中修复。

相关内容