Dus*_*vic 26 usb scanner xhci-hcd
我正在尝试使用带有扫描仪的打印机samsung scx-4200进行扫描。当我连接我兄弟的具有相同版本 ubuntu(14.04) 的笔记本电脑时,它可以工作。我不知道如何以及为什么。他没有安装任何扫描软件。我还尝试了另一台带有基本操作系统的计算机,它也可以工作。现在是它变得非常奇怪的时候!我尝试在我和兄弟的笔记本电脑上通过实时 USB 运行许多发行版。扫描仪总是与兄弟的一起工作,从不与我的笔记本电脑一起工作。我非常需要扫描仪,因此可能会发生这样的情况,我可能会切换到 Windows,我不喜欢它,因为它不是开源的,所以请帮忙!下面是我得到的错误截图和简单扫描的设置。
编辑 1:USB 可以与任何其他设备一起正常工作。到目前为止,我已经连接了鼠标,USB闪存,相机,它们都运行良好。我试图将扫描仪连接到所有 3 个 USB 端口(2 3.0 和 1 2.0),但同样的事情发生了。
Edit2:扫描与程序 vuescan 一起使用,但它需要购买它才能删除它创建的水印,并且它是闭源的。
Edit3:在所有经过测试的笔记本电脑中,只有我的有 USB 3.0(x2)。但是,扫描也不适用于 USB 2.0(在我的笔记本电脑上)。
Edit4:这是输出sudo sane-find-scanner
:
# sane-find-scanner 现在将尝试检测您的扫描仪。如果 # 结果与您预期的不同,请首先确保您的 # 扫描仪已通电并正确连接到您的计算机。
# 未找到 SCSI 扫描仪。如果您期望有所不同,请确保您已经为 SCSI 适配器加载了内核 SCSI 驱动程序。
# 未找到 USB 扫描仪。如果您期望有所不同,请确保 # 您已经为 USB 主机控制器加载了内核驱动程序并正确设置了 USB 系统。有关详细信息,请参阅 man sane-usb。
# 不检查并行端口扫描器。
# 大多数连接到并行端口或其他专有端口的扫描仪 # 此程序无法检测到。
Edit5:我尝试了 BIOS 中与 USB 配置相关的所有设置组合,但没有结果。我恢复到原来的设置。
Edit6:我试过scanlite,这是它给我的错误:
Edit7:我第二次运行 Scanlite 时,它说它没有检测到我电脑上的扫描仪。我有时会在简单扫描时收到类似的消息。
Edit8:扫描仪在执行以下操作后使用简单扫描:
这仅适用于 1 次扫描。
Edit9:我和我弟弟都有 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
Run Code Online (Sandbox Code Playgroud)
这是我弟弟的:
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
它找到了 Printer(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
Run Code Online (Sandbox Code Playgroud)
这是/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
Run Code Online (Sandbox Code Playgroud)
在~/.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
Run Code Online (Sandbox Code Playgroud)
编辑 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
Run Code Online (Sandbox Code Playgroud)
当“扫描失败”错误出现时,我收到此错误(如屏幕截图所示):
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
Run Code Online (Sandbox Code Playgroud)
Edit14:我意识到使用我通过此链接安装的 Samsung Universal linux 驱动程序时,打印不起作用。我通过在系统设置-> 打印机中添加打印机功能卸载了它并安装了驱动程序。但是,即使使用 edit8 中的步骤,现在扫描也不起作用,以前可以使用,但现在可以打印。A但是,使用 vuescan 扫描仍然有效。
Edit15:这是grep 341b /etc/sane.d/xerox_mfp.conf的输出:
usb 0x04e8 0x341b
Run Code Online (Sandbox Code Playgroud)
和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.
Run Code Online (Sandbox Code Playgroud)
这是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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
bai*_*ain 20
您的 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 only 通信的 4 针的电线。
使用便宜的 USB 1.1(或 2.0)集线器并将其连接到 USB3 端口。将您的设备连接到 USB 1.1/2.0 集线器。这将强制连接为 USB1.1/2.0。由于集线器具有不同的 USB 控制器,它将解决一些协议错误。USB 1.1 集线器是鼠标、键盘等“低速”设备的不错选择。USB 2.0 集线器可能是“全速”设备(如不会降级到 USB 1.1 的扫描仪)所必需的。
升级您的 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 Pre-Boot mode”从启用更改为禁用。在某些 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 速度运行。
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
以bus-port.port.port格式表示设备的 USB 路径。您将在/sys/bus/usb/devices/3-3找到相应的 sysfs 目录。写上至电源/控制这里禁止autosuspend:
echo on > /sys/bus/usb/devices/3-3/power/control
小智 5
我在 32 位 Ubuntu 14.04 上的扫描仪(全在一个 Brother MFC-j410 中)遇到了类似的问题。扫描仪只有在第二次启动 XSANE 后才工作,然后只进行了一次操作预览或扫描。我尝试将 USB 端口更改为 USB 2.0 无济于事。我的主板是带有 intel i3 LGA1150 芯片的 Asus B85M-k。
我在以前版本的 Ubuntu 上尝试过 virtualbox,其中扫描仪总是在另一台电脑上工作。尽管如此,还是没有运气,这让我对 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 位后,一切正常。