[linux] Re: Seagate Expansion 2TB USB3-disk doet Ubuntu bevriezen

Hans de Goede j.w.r.degoede op gmail.com
Zo Dec 28 09:36:29 CET 2014


Hoi Eric,

On 28-12-14 00:55, Eric de Hont wrote:
> Vorige week een leuke 2TB USB 3.0 disk gekocht bij MediaMarkt voor een
> leuke prijs.
> "Seagate Expansion Portable 2 TB USB 3.0", €89.
> 2,5 inch, voeding via USB-poort.
>
> Probleem: als ik hem aansluit op de USB3-poort van mijn
> desktop-kontjoeper dan zie ik in de syslog van Ubuntu dat hij de
> hardware, zelfs de fabrikant, van de hardware herkent, hij roept het
> disk-id (/dev/sdj, als ik me goed herinner) en dan 'bevriest' Linux.
> Alleen het indrukken van de reset-knop of de power-knop krijgt dan weer
> beweging in de zaak. Meerdere keren geprobeerd, bootrecord van de disk
> afgegooid, opnieuw geformatteerd, diverse filesystemen (FAT, NTFS,
> EXT4), etc.
>
> Sluit ik de disk aan op een USB2-poort, dan is er niks aan de hand en
> kan ik alles met de disk doen waar disks voor bedoeld zijn.
> Luks-encrypted filesystem aangemaakt, desktop-computer gebackupt en de
> disk meegenomen op vakantie.
>
> Het punt is: als je zo'n grote schijf hebt wil je het snelheidsvoordeel
> van UBS3 benutten, dus dat moet gewoon werken.
>
> Ik heb al meerdere USB3-disks die gewoon lekker snel werken met
> (Ubuntu-) Linux, maar dan moet je weer een adapter meeslepen...
>
> In Windows 7 werkt alles gewoon naar behoren, dus we hebben niet te
> maken met een of ander bizar hardwareconflict.
>
> Mijn vraag aan jullie is: wat is de way to go om de incompatibitileit
> van deze disk met Linux aan te melden bij Ubuntu of de hogere linuxgoden?

Ik ben de upstream maintainer van de usb attached scsi (uas) driver, welke
waarschijnlijk de driver is die deze problemen veroorzaakt.

Zoals je alreeds gemerkt hebt zijn Seagate USB disk enclosures niet 100%
UAS compatible, en zit er helaas een bug in de fout afhandling van de uas
driver waardoor deze het hele systeem onderuit haalt wanneer de Seagate
drive ophoud met reageren.

Beide problemen zijn in nieuwere kernels opgelost, de reden dat dit niet
werkt met Ubuntu en wel met andere distros is dat Ubuntu waarschijnlijk
een (stuk) oudere kernel heeft.

Als je kernel niet te oud is, kan je dit oplossen door een quirk voor
de seagate drive door te geven via de kernel commandline. Eerst moet
je de product en vendor id van de drive weten. Dit staat in de syslog
berichten die je krijgt voordat de boel hangt.

Als de product en vendor ids weet, dan moet je het volgende toevoegen aan
de kernel commandline (zie ubuntu docs) om de kernel te vertellen bepaalde
scsi commandos niet naar deze drive te sturen:

usb-storage.quirks=<vendor>:<product>:t

Dit wordt dus bijvoorbeeld:

usb-storage.quirks=0bc2:3312:t

Voordat je de disk aansluit kan je na het booten: "cat /proc/cmdline" doen
in een terminal om te zien ofdat het toevoegen aan de kernel commandline
gelukt is.

Als dit niet helpt, dan heb je een kernel die zo oud is dat hij de t quirk
niet kent, probeer in dat geval de u quirk, bijv:

usb-storage.quirks=0bc2:3312:u

Dat zorgt ervoor dat de usb-storage driver ipv de uas driver word gebruikt,
en zou zeker moeten werken.

Groet,

Hans



More information about the Linux mailing list