Вопрос или проблема
Я в растерянности, я попробовал всё, но не могу заставить работать USB порты. Это вывод “dmesg”. Когда я подключаю внешний жесткий диск, он не определяется. Я использую: Linux ubuntu 5.3.0-1008-raspi2 на Raspberry Pi.
[ 0.919738] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330
[ 0.919809] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[ 0.920002] pci 0000:01:00.0: PME# supported from D0 D3cold
[ 0.920272] pci 0000:01:00.0: failed to get arch_dma_ops
[ 0.922824] pci_bus 0000:01: busn_res: [bus 01] end is updated to 01
[ 0.922866] pci 0000:00:00.0: BAR 14: assigned [mem 0x600000000-0x6000fffff]
[ 0.922893] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit]
[ 0.922934] pci 0000:00:00.0: PCI bridge to [bus 01]
[ 0.922958] pci 0000:00:00.0: bridge window [mem 0x600000000-0x6000fffff]
[ 0.923219] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[ 0.923407] pcieport 0000:00:00.0: PME: Signaling with IRQ 42
[ 0.923754] pcieport 0000:00:00.0: AER: enabled with IRQ 42
[ 0.923986] pci 0000:01:00.0: enabling device (0000 -> 0002)
[ 0.982941] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
[ 0.985138] iproc-rng200 fe104000.rng: hwrng registered
[ 0.985554] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[ 0.986307] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000
[ 0.986647] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 1.312136] loop: module loaded
[ 1.314343] spi-bcm2835 fe204000.spi: could not get clk: -517
[ 1.315053] libphy: Fixed MDIO Bus: probed
[ 1.315096] tun: Universal TUN/TAP device driver, 1.6
[ 1.315268] PPP generic driver version 2.4.2
[ 1.315490] usbcore: registered new interface driver lan78xx
[ 1.315546] usbcore: registered new interface driver smsc95xx
[ 1.315585] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.315615] ehci-pci: EHCI PCI platform driver
[ 1.315683] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.315708] ohci-pci: OHCI PCI platform driver
[ 1.315757] uhci_hcd: USB Universal Host Controller Interface driver
[ 1.316070] xhci_hcd 0000:01:00.0: xHCI Host Controller
[ 1.316141] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
[ 1.316680] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x0000001000000890
[ 1.316865] genirq: irq_chip Brcm_MSI did not update eff. affinity mask of irq 43
[ 1.317408] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.03
[ 1.317435] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.317458] usb usb1: Product: xHCI Host Controller
[ 1.317476] usb usb1: Manufacturer: Linux 5.3.0-1008-raspi2 xhci-hcd
[ 1.317495] usb usb1: SerialNumber: 0000:01:00.0
[ 1.318034] hub 1-0:1.0: USB hub found
[ 1.318096] hub 1-0:1.0: 1 port detected
[ 1.318553] xhci_hcd 0000:01:00.0: xHCI Host Controller
[ 1.318582] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
[ 1.318614] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[ 1.318912] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.03
[ 1.318937] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.318958] usb usb2: Product: xHCI Host Controller
[ 1.318975] usb usb2: Manufacturer: Linux 5.3.0-1008-raspi2 xhci-hcd
[ 1.318994] usb usb2: SerialNumber: 0000:01:00.0
[ 1.319493] hub 2-0:1.0: USB hub found
[ 1.319554] hub 2-0:1.0: 4 ports detected
[ 1.320381] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 1.320673] dwc_otg fe980000.usb: base=(____ptrval____)
[ 1.522916] Core Release: 2.80a
[ 1.522935] Setting default values for core params
[ 1.522968] Finished setting default values for core params
[ 1.652170] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[ 1.725425] Using Buffer DMA mode
[ 1.725443] Periodic Transfer Interrupt Enhancement - disabled
[ 1.725459] Multiprocessor Interrupt Enhancement - disabled
[ 1.725476] OTG VER PARAM: 0, OTG VER FLAG: 0
[ 1.725531] Dedicated Tx FIFOs mode
[ 1.726556] WARN::dwc_otg_hcd_init:1043: FIQ DMA bounce buffers: virt = ffff000010de1000 dma = 0x00000000eb500000 len=9024
[ 1.726601] FIQ FSM acceleration enabled for :
Non-periodic Split Transactions
Periodic Split Transactions
High-Speed Isochronous Endpoints
Interrupt/Control Split Transaction hack enabled
[ 1.726638] dwc_otg: Microframe scheduler enabled
[ 1.726677] WARN::hcd_init_fiq:496: MPHI regs_base at ffff0000102c5200
[ 1.726776] dwc_otg fe980000.usb: DWC OTG Controller
[ 1.726812] dwc_otg fe980000.usb: new USB bus registered, assigned bus number 3
[ 1.726859] dwc_otg fe980000.usb: irq 24, io mem 0x00000000
[ 1.726917] Init: Port Power? op_state=1
[ 1.726932] Init: Power Port (0)
[ 1.727199] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.03
[ 1.727227] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.727249] usb usb3: Product: DWC OTG Controller
[ 1.727268] usb usb3: Manufacturer: Linux 5.3.0-1008-raspi2 dwc_otg_hcd
[ 1.727287] usb usb3: SerialNumber: fe980000.usb
[ 1.727850] hub 3-0:1.0: USB hub found
[ 1.727910] hub 3-0:1.0: 1 port detected
[ 1.728593] dwc_otg: FIQ enabled
[ 1.728601] dwc_otg: NAK holdoff enabled
[ 1.728608] dwc_otg: FIQ split-transaction FSM enabled
[ 1.728618] Module dwc_common_port init
[ 1.729092] mousedev: PS/2 mouse device common for all mice
[ 1.729519] i2c /dev entries driver
[ 1.732076] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[ 1.732314] device-mapper: uevent: version 1.0.3
[ 1.732623] device-mapper: ioctl: 4.40.0-ioctl (2019-01-18) initialised: dm-d[email protected]
[ 1.732758] bcm2835-cpufreq: min=600000 max=1500000
[ 1.734033] sdhci: Secure Digital Host Controller Interface driver
[ 1.734040] sdhci: Copyright(c) Pierre Ossman
[ 1.734214] mmc-bcm2835 fe300000.mmcnr: could not get clk, deferring probe
[ 1.734362] Error: Driver 'sdhost-bcm2835' is already registered, aborting...
[ 1.734369] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.736046] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.736129] hidraw: raw HID events driver (C) Jiri Kosina
[ 1.736573] vchiq: vchiq_init_state: slot_zero = (____ptrval____)
[ 1.738686] NET: Registered protocol family 10
[ 1.760971] Segment Routing with IPv6
[ 1.761042] NET: Registered protocol family 17
[ 1.761180] Key type dns_resolver registered
[ 1.761635] registered taskstats version 1
[ 1.761666] Loading compiled-in X.509 certificates
[ 1.766654] Loaded X.509 cert 'Build time autogenerated kernel key: 8a543b0083d12dc0ff5d2ba72b66d5347614cc85'
[ 1.766756] zswap: loaded using pool lzo/zbud
[ 1.780463] usb 1-1: device descriptor read/64, error 18
[ 1.785333] cryptd: max_cpu_qlen set to 1000
[ 1.886988] Key type big_key registered
[ 1.912018] Key type encrypted registered
[ 1.912044] AppArmor: AppArmor sha1 policy hashing enabled
[ 1.912067] ima: No TPM chip found, activating TPM-bypass!
[ 1.912088] ima: Allocated hash algorithm: sha1
[ 1.912141] No architecture policies found
[ 1.912175] evm: Initialising EVM extended attributes:
[ 1.912182] evm: security.selinux
[ 1.912188] evm: security.SMACK64
[ 1.912194] evm: security.SMACK64EXEC
[ 1.912199] evm: security.SMACK64TRANSMUTE
[ 1.912205] evm: security.SMACK64MMAP
[ 1.912210] evm: security.apparmor
[ 1.912216] evm: security.ima
[ 1.912221] evm: security.capability
[ 1.912227] evm: HMAC attrs: 0x1
[ 1.915222] uart-pl011 fe201000.serial: cts_event_workaround enabled
[ 1.915277] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 18, base_baud = 0) is a PL011 rev2
[ 1.916613] printk: console [ttyS0] disabled
[ 1.916647] fe215040.serial: ttyS0 at MMIO 0x0 (irq = 21, base_baud = 62500000) is a 16550
[ 2.037445] usb 1-1: device descriptor read/64, error 18
[ 2.283008] usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 2.311001] usb 2-2: device descriptor read/8, error -61
[ 2.417135] usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 2.460732] usb 2-2: device descriptor read/8, error -61
[ 2.743351] usb 1-1: new high-speed USB device number 3 using xhci_hcd
[ 2.903601] usb 1-1: device descriptor read/64, error 18
[ 3.162866] usb 1-1: device descriptor read/64, error 18
[ 3.273126] usb usb1-port1: attempt power cycle
[ 3.480547] usb 2-2: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[ 3.487747] printk: console [ttyS0] enabled
[ 3.492341] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[ 3.499898] spi-bcm2835 fe204000.spi: no tx-dma configuration found - not using dma mode
[ 3.508423] usb 2-2: device descriptor read/8, error -61
[ 3.514766] brcmstb_thermal fd5d2200.thermal: registered AVS TMON of-sensor driver
[ 3.522777] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[ 3.528882] mmc-bcm2835 fe300000.mmcnr: mmc-bcm2835: Unable to initialise DMA channel. Falling back to PIO
[ 3.564772] hctosys: unable to open rtc device (rtc0)
[ 3.570155] of_cfs_init
[ 3.572697] of_cfs_init: OK
[ 3.580649] Freeing unused kernel memory: 4096K
[ 3.584445] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 3.592376] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3.598610] Checked W+X mappings: passed, no W+X pages found
[ 3.599503] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3.604363] Run /init as init process
[ 3.612637] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 3.620146] usb 2-2: new SuperSpeed Gen 1 USB device number 3 using xhci_hcd
[ 3.627952] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 3.648401] usb 2-2: device descriptor read/8, error -61
[ 3.674291] random: fast init done
[ 3.695840] mmc1: new high speed SDIO card at address 0001
[ 3.701769] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[ 3.709197] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[ 3.717432] random: systemd-udevd: uninitialized urandom read (16 bytes read)
[ 3.789048] usb usb2-port2: attempt power cycle
[ 4.091681] usb_phy_generic phy: phy supply vcc not found, using dummy regulator
[ 4.099919] bcmgenet fd580000.genet: failed to get enet clock
[ 4.105790] bcmgenet fd580000.genet: GENET 5.0 EPHY: 0x0000
[ 4.115514] bcmgenet fd580000.genet: failed to get enet-wol clock
[ 4.121864] bcmgenet fd580000.genet: failed to get enet-eee clock
[ 4.128167] usb 1-1: new high-speed USB device number 4 using xhci_hcd
[ 4.146146] mmc0: Failed to set 32-bit DMA mask.
[ 4.150906] mmc0: No suitable DMA available - falling back to PIO
[ 4.196252] mmc0: SDHCI controller on fe340000.emmc2 [fe340000.emmc2] using PIO
[ 4.261488] [drm] No displays found. Consider forcing hotplug if HDMI is attached
[ 4.268409] usb 1-1: device descriptor read/64, error 18
[ 4.269174] vc4-drm soc:gpu: bound fe600000.firmwarekms (ops vc4_fkms_ops [vc4])
[ 4.291686] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 4.298437] [drm] No driver support for vblank timestamp query.
[ 4.304465] [drm] Setting vblank_disable_immediate to false because get_vblank_timestamp == NULL
[ 4.309836] mmc0: new ultra high speed DDR50 SDHC card at address aaaa
[ 4.318699] [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 0
[ 4.329188] mmcblk0: mmc0:aaaa SL32G 29.7 GiB
[ 4.340259] mmcblk0: p1 p2
[ 4.508398] usb 1-1: device descriptor read/64, error 18
[ 4.748406] usb 2-2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[ 4.772544] usb 2-2: device descriptor read/8, error -61
[ 4.884170] usb 2-2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[ 4.908414] usb 2-2: device descriptor read/8, error -61
[ 4.929681] unimac-mdio unimac-mdio.-19: DMA mask not set
[ 4.948125] libphy: bcmgenet MII bus: probed
[ 4.987366] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[ 5.176128] usb 1-1: new high-speed USB device number 5 using xhci_hcd
[ 5.308347] usb 1-1: device descriptor read/64, error 18
[ 5.548339] usb 1-1: device descriptor read/64, error 18
[ 5.660248] usb usb1-port1: unable to enumerate USB device
[ 5.856350] usb 2-2: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
[ 5.880410] usb 2-2: device descriptor read/8, error -61
[ 5.992114] usb 2-2: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
[ 6.016364] usb 2-2: device descriptor read/8, error -61
[ 6.156198] usb usb2-port2: unable to enumerate USB device
Это основные ошибки:
[ 4.508398] usb 1-1: device descriptor read/64, error 18
[ 4.748406] usb 2-2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[ 4.772544] usb 2-2: device descriptor read/8, error -61
[ 4.884170] usb 2-2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[ 4.908414] usb 2-2: device descriptor read/8, error -61
[ 4.929681] unimac-mdio unimac-mdio.-19: DMA mask not set
[ 4.948125] libphy: bcmgenet MII bus: probed
[ 4.987366] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[ 5.176128] usb 1-1: new high-speed USB device number 5 using xhci_hcd
[ 5.308347] usb 1-1: device descriptor read/64, error 18
[ 5.548339] usb 1-1: device descriptor read/64, error 18
[ 5.660248] usb usb1-port1: unable to enumerate USB device
[ 5.856350] usb 2-2: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
[ 5.880410] usb 2-2: device descriptor read/8, error -61
[ 5.992114] usb 2-2: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
[ 6.016364] usb 2-2: device descriptor read/8, error -61
[ 6.156198] usb usb2-port2: unable to enumerate USB device
На основании ошибки с номером (также здесь):
$ errno 61
ENODATA 61 No data available
$ grep '61' /usr/include/asm-generic/errno.h
#define ENODATA 61 /* No data available */
Что означает: “Нет сообщения в очереди STREAM для чтения”.
Таким образом, вероятно, если у вас есть правильные разрешения, вы не получаете никаких данных от устройства из-за аппаратного сбоя илинеправильного драйвера.
Ответ или решение
Ошибки, с которыми вы столкнулись, такие как "Device Descriptor Read/8 Error -61" и "Device Descriptor Read/64, Error 18", наводят на мысль о проблемах с подключением USB-устройств на Raspberry Pi, работающем под управлением системы Linux Ubuntu 5.3.0-1008-raspi2. Давайте разберемся более подробно с возможными причинами и способами решения данной проблемы.
Причины возникновения ошибки
-
Недостаточное питание USB-портов: Raspberry Pi может недостаточно питать подключенные USB-устройства, особенно если речь идет о внешнем жестком диске. Энергопотребление может быть выше, чем может предоставить Raspberry Pi через стандартные USB-порты.
-
Поврежденный или некачественный USB-кабель: Кабель может быть поврежден или иметь плохое качество, что приводит к ограничению скорости передачи данных или даже к полному отсутствию взаимодействия с устройством.
-
Аппаратные проблемы устройства или порта: Возможна неисправность самого внешнего жесткого диска, который вы пытаетесь подключить, или дефекты USB-портов на Raspberry Pi.
-
Несовместимость драйверов: Возможно, драйвера для USB не совместимы с вашим ядром или требуют обновления/правильной конфигурации.
-
АЙРО (Irq) проблемы: Устройства могут иметь проблемы с распределением IRQ, как показано строкой "genirq: irq_chip Brcm_MSI did not update eff. affinity mask of irq 43".
Решения проблемы
-
Внешний источник питания: Попробуйте подключить внешнее питание к вашему устройству через USB-хаб с собственным источником питания.
-
Проверка и замена кабеля: Убедитесь, что используемый вами кабель USB исправен и поддерживает необходимые скорости передачи данных. Если возможно, замените его на более надежный.
-
Переподключение к разным USB-портам: Попробуйте каждый из доступных USB-портов на Raspberry Pi, чтобы исключить неисправный порт.
-
Обновление системы и драйверов: Проверьте наличие обновлений операционной системы и соответствующих драйверов. Используйте команды:
sudo apt update sudo apt upgrade
-
Проверка на ограничение питания USB: Убедитесь, что в конфигурациях вашего Raspberry Pi нет ограничений, которые могут привести к недостаточной подаче энергии на USB-порты. Это можно проверить и при необходимости изменить в файле
/boot/config.txt
с добавлением параметров:max_usb_current=1
-
Проверка и исправление конфигураций IRQ и других специфических параметров: Внесите необходимые изменения в конфигурацию для корректного распознавания и управления USB-устройствами.
-
Проверка логов ядра: Посмотрите дополнительные логи ошибок или предупреждений в
dmesg
после перезапуска системы, которые могут содержать ключи к решению проблемы.
Заключение
Каждая из указанных проблем и решений может быть задействована в различных комбинациях для устранения ошибок, связанных с USB в вашем Raspberry Pi. Для более точной диагностики и устранения неисправностей можно попробовать подключить другие устройства или подключить текущие устройства к другому ПК для проверки. Постоянное обновление системы и внимательное отношение к качеству аксессуаров также помогает избежать подобных проблем.