Kopieerproblemen via USB naar externe opslag

Gebruik je Linux en heb je problemen met het kopiëren van bestanden via USB naar externe opslag  zoals externe harddisk, memory stick, SD card of internal memory van bijvoorbeeld een HTC Diamond?

Staat de logfile vol met foutmeldingen die ontstaan tijdens het kopiëren en komen de bestanden corrupt aan?

Wellicht is het uitzetten van USB 2.0 (high speed) ondersteuning c.q het niet gebruiken van EHCI HCD de oplossing. Communicatie zal dan weer verlopen middels USB 1.

EHCI staat voor: Enhanced Host Controller Interface en HCD voor Host Controller Driver. EHCI HCD is de host-controller voor de universal serial bus (USB) revisie 2.0.

Voorbeeld van logfile (/var/log/syslog) met EHCI-problemen:


usb 2-4: reset high speed USB device using ehci_hcd and address 10
sd 11:0:0:0: [sde] Unhandled error code
sd 11:0:0:0: [sde] Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
sd 11:0:0:0: [sde] CDB: Write(10): 2a 00 00 00 3c 44 00 00 f0 00
end_request: I/O error, dev sde, sector 15428

Ook kan dit in de logfile staan (enumeratie-problemen):


usb 1-2: new high speed USB device using ehci_hcd and address 5
hub 1-0:1.0: unable to enumerate USB device on port 2

Hoe wordt EHCI HCD uitgezet in Linux?

Wanneer ehci_hcd niet is meegecompileerd in de kernel dan volstaat het uitvoeren van het commando: ‘modprobe -r ehci_hcd‘ als gebruiker ‘root’.

Als de module ehci_hcd wel in de kernel zit dan moeten de volgende commando’s als root-gebruiker worden uitgevoerd:


cd /sys/bus/pci/drivers/ehci_hcd

Zoek in deze directory naar één of meerdere bestanden in dit formaat: 0000:00:xx.x

Voer vervolgens voor elk van deze bestanden het onderstaande commando uit. Probeer tussendoor telkens de externe opslag opnieuw aan te koppelen en bestanden hierheen te kopiëren en kijk in de logfile of de fouten nog steeds optreden. Wanneer de logfile ‘schoon’ blijft, dan heb je de juiste file te pakken en weet je hoe je dit probleem op kunt lossen.


sh -c 'echo -n "0000:00:xx.x" > unbind'

Wanneer je deze procedure niet telkens uit wilt voeren na het opnieuw opstarten van de computer, dan zijn er twee mogelijkheden om EHCI bij elke herstart automatisch uit te zetten:

  1. Voeg de bovengenoemde commando’s toe aan een script dat bij elke herstart wordt uitgevoerd. Bij Ubuntu is dit: /etc/rc.local Afhankelijk van de Linux-distributie heet dit script anders of staat op een andere plek.
  2. Voeg ehci_hcd toe aan /etc/modprobe.d/blacklist

Meer informatie

Lees meer over USB, EHCI en Linux/kernel-modules op de volgende sites:

Zelf had ik problemen met de volgende configuratie: External device: HTC Diamond, Kernel: 2.6.32-25-generic #45-Ubuntu SMP Sat Oct 16 19:48:22 UTC 2010 i686 GNU/Linux