Решено: Глючит USB Flash Drive Transcend (инфа читается с ошибками)

Выбор и настройка HardWare

Модератор: Модераторы разделов

vantaker
Сообщения: 166

Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

1GB USB2.0 Flash Drive Transcend TS1GJF2A
Motherboard ASUS P4P800 SE (Intel 865PE)
Fedora Core 6 2.6.19.2

определяется и монтируется нормально, но у файлов, скопированных с флешки, неверные md5, архивы выдают ошибку crc, причем размеры файлов не изменяются
сравнение через cmp показывает, что в файлах (950М), побывавших на флешке - мусор, но не с начала файла

что руками монтировать/отмонтировать, что автоматом - одинаково

самое обидное - в офтопике на этом же компе флешка работает нормально

форматирование утилитой производителя и gparted ситуацию не улучшило

подскажите, как это дело поправить
Спасибо сказали:
Аватара пользователя
AMD
Сообщения: 478
Статус: Maestro
ОС: Linux Kubuntu 7.10

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение AMD »

vantaker писал(а):
16.06.2007 15:39
1GB USB2.0 Flash Drive Transcend TS1GJF2A
Fedora Core 6 2.6.19.2

определяется и монтируется нормально, но у файлов, скопированных с флешки, неверные md5, архивы выдают ошибку crc, причем размеры файлов не изменяются
сравнение через cmp показывает, что в файлах (950М), побывавших на флешке - мусор, но не с начала файла

что руками монтировать/отмонтировать, что автоматом - одинаково

самое обидное - в офтопике на этом же компе флешка работает нормально

форматирование утилитой производителя и gparted ситуацию не улучшило

подскажите, как это дело поправить


А под Виндовс проблеммы есть?

Возможно флэшка битая или USB port передачу с ошибками осушествляет
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

А под Виндовс проблеммы есть?

да вот в том то и дело, что там нормально без ошибок работает
Спасибо сказали:
Andrew S
Сообщения: 225
Статус: экспериментатор
ОС: Conrad-Gentoo

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение Andrew S »

Пробовал только с одной файловой системой или с разными?
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

раньше пробовал fat16/fat32 (надо, чтоб флешка виделась в винде) - разницы никакой, ошибки
щас ради интереса отформатировал через gparted в ext2 - аналогично глухо

на ЛОРе похожую тему встретил, причем у чела абсолютно другое железо - там советовали в другие разъемы повтыкать, мать проверить и все такое.

перепробовал все разъемы на системнике - одинаково
и потом, железо то видимо нормальное, если в винде пашет
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение esvaf »

А если через биос временно отключить USB2.0 ?
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

отключил USB2.0. скорость упала раз в 20. не помогло
еще странная вещь: кажется только читает с ошибками, а записывает нормально - в линуксе скопировал файл на флешку - в винде прочиталось без ошибок
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

Странности продолжаются :(
Взял попробовать флешку знакомого. производитель не известен. резиновая такая, на боку написано JOGR.
Подключил, копирую на флеш, скорость меньше чем у Transcend раза в 4-5. Скопировал, отключил, подключаю снова, копирую обратно на винт. Проверил md5.... сходится!! млин :( Два раза повторил - все работает четко.

Вот вывод dmesg | tail после подключения моей флешки:

Код: Выделить всё

sdb: Mode Sense: 03 00 00 00
sdb: assuming drive cache: write through
SCSI device sdb: 2007040 512-byte hdwr sectors (1028 MB)
sdb: Write Protect is off
sdb: Mode Sense: 03 00 00 00
sdb: assuming drive cache: write through
 sdb: sdb1
sd 9:0:0:0: Attached scsi removable disk sdb
sd 9:0:0:0: Attached scsi generic sg1 type 0
usb-storage: device scan complete


вот то же для флешки друга:

Код: Выделить всё

sdb: Mode Sense: 00 00 00 00
sdb: assuming drive cache: write through
SCSI device sdb: 2015232 512-byte hdwr sectors (1032 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 00 00 00
sdb: assuming drive cache: write through
 sdb: sdb1
sd 7:0:0:0: Attached scsi removable disk sdb
sd 7:0:0:0: Attached scsi generic sg1 type 0
usb-storage: device scan complete


это появляется в var/log/messages после моей флешки:

Код: Выделить всё

Jun 18 20:50:07 localhost kernel: usb 5-8: new high speed USB device using ehci_hcd and address 9
Jun 18 20:50:07 localhost kernel: usb 5-8: configuration #1 chosen from 1 choice
Jun 18 20:50:07 localhost kernel: scsi9 : SCSI emulation for USB Mass Storage devices
Jun 18 20:50:12 localhost kernel: scsi 9:0:0:0: Direct-Access     JetFlash TS1GJF2A/120     8.07 PQ: 0 ANSI: 2
Jun 18 20:50:12 localhost kernel: SCSI device sdb: 2007040 512-byte hdwr sectors (1028 MB)
Jun 18 20:50:12 localhost kernel: sdb: Write Protect is off
Jun 18 20:50:12 localhost kernel: sdb: assuming drive cache: write through
Jun 18 20:50:12 localhost kernel: SCSI device sdb: 2007040 512-byte hdwr sectors (1028 MB)
Jun 18 20:50:12 localhost kernel: sdb: Write Protect is off
Jun 18 20:50:12 localhost kernel: sdb: assuming drive cache: write through
Jun 18 20:50:12 localhost kernel:  sdb: sdb1
Jun 18 20:50:12 localhost kernel: sd 9:0:0:0: Attached scsi removable disk sdb
Jun 18 20:50:12 localhost kernel: sd 9:0:0:0: Attached scsi generic sg1 type 0
Jun 18 20:50:12 localhost hald: mounted /dev/sdb1 on behalf of uid 500


это после флешки друга:

Код: Выделить всё

Jun 18 20:26:10 localhost kernel: usb 5-8: new high speed USB device using ehci_hcd and address 7
Jun 18 20:26:10 localhost kernel: usb 5-8: configuration #1 chosen from 1 choice
Jun 18 20:26:10 localhost kernel: scsi7 : SCSI emulation for USB Mass Storage devices
Jun 18 20:26:15 localhost kernel: scsi 7:0:0:0: Direct-Access     USB 2.0  Flash Disk       0.00 PQ: 0 ANSI: 2
Jun 18 20:26:15 localhost kernel: SCSI device sdb: 2015232 512-byte hdwr sectors (1032 MB)
Jun 18 20:26:15 localhost kernel: sdb: Write Protect is off
Jun 18 20:26:15 localhost kernel: sdb: assuming drive cache: write through
Jun 18 20:26:15 localhost kernel: SCSI device sdb: 2015232 512-byte hdwr sectors (1032 MB)
Jun 18 20:26:15 localhost kernel: sdb: Write Protect is off
Jun 18 20:26:15 localhost kernel: sdb: assuming drive cache: write through
Jun 18 20:26:15 localhost kernel:  sdb: sdb1
Jun 18 20:26:15 localhost kernel: sd 7:0:0:0: Attached scsi removable disk sdb
Jun 18 20:26:15 localhost kernel: sd 7:0:0:0: Attached scsi generic sg1 type 0
Jun 18 20:26:20 localhost hald: mounted /dev/sdb1 on behalf of uid 500


Разница есть. Но куда копать дальше ума не приложу.
Может есть у кого какие мысли?
Спасибо сказали:
Аватара пользователя
mk2002
Сообщения: 239
ОС: Debian Testing (lenny)

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение mk2002 »

Была похожая проблема с гиговой флешкой Transcend (правда проявлялось и в оффтопике) и при этом на том компе на котором писал читалось без проблем, а вставляешь в другой так у всех файлов ошибка crc.
Проблема решилась сама методом форматирования флешки разными утилитами (в том числе и фирменными) в результате все работает а я больше не форматирую. Вот такие вот загадочные флешки.

P.S> Чуть не забыл у флешки потом нашелся непропай который запаяли может это было и из-за него но терь форматировать не рискую.
Duron 950Mhz/512Mb/320+80+250+40Gb
Ubuntu 7.10->kernel-2.6.22-14/KDE 3.5.8
ArchLinux(don't panic)->kernel-2.6.23-1/KDE 3.5.8
Спасибо сказали:
Аватара пользователя
uptime
Сообщения: 1661
Статус: Drinker with computing problems
ОС: kubuntu 8.04

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение uptime »

vantaker писал(а):
18.06.2007 21:25
Разница есть. Но куда копать дальше ума не приложу.
Может есть у кого какие мысли?

Попробуйте сравнить вывод команды

udevinfo -p /sys/block/sdb/sdb1 -a

после монтирования двух разных флешек.
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

вот udevinfo -p /sys/block/sdb/sdb1 -a моей флешки:

Код:

looking at device '/block/sdb/sdb1': KERNEL=="sdb1" SUBSYSTEM=="block" SYSFS{stat}==" 32 256 0 0" SYSFS{size}=="2007008" SYSFS{start}=="32" SYSFS{dev}=="8:17" looking at parent device '/block/sdb': ID=="sdb" BUS=="block" DRIVER=="" SYSFS{stat}==" 26 15 328 28 0 0 0 0 0 21 28" SYSFS{size}=="2007040" SYSFS{removable}=="1" SYSFS{range}=="16" SYSFS{dev}=="8:16" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0/host6/target6:0:0/6:0:0:0': ID=="6:0:0:0" BUS=="scsi" DRIVER=="sd" SYSFS{ioerr_cnt}=="0x2" SYSFS{iodone_cnt}=="0x2f" SYSFS{iorequest_cnt}=="0x2f" SYSFS{iocounterbits}=="32" SYSFS{timeout}=="60" SYSFS{state}=="running" SYSFS{rev}=="8.07" SYSFS{model}=="TS1GJF2A/120 " SYSFS{vendor}=="JetFlash" SYSFS{scsi_level}=="3" SYSFS{type}=="0" SYSFS{queue_type}=="none" SYSFS{queue_depth}=="1" SYSFS{device_blocked}=="0" SYSFS{max_sectors}=="240" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0/host6/target6:0:0': ID=="target6:0:0" BUS=="" DRIVER=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0/host6': ID=="host6" BUS=="" DRIVER=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0': ID=="5-8:1.0" BUS=="usb" DRIVER=="usb-storage" SYSFS{modalias}=="usb:v058Fp6387d0141dc00dsc00dp00ic08isc06ip50" SYSFS{bInterfaceProtocol}=="50" SYSFS{bInterfaceSubClass}=="06" SYSFS{bInterfaceClass}=="08" SYSFS{bNumEndpoints}=="02" SYSFS{bAlternateSetting}==" 0" SYSFS{bInterfaceNumber}=="00" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8': ID=="5-8" BUS=="usb" DRIVER=="usb" SYSFS{serial}=="WCFR6RWN" SYSFS{product}=="Mass Storage Device" SYSFS{manufacturer}=="Generic" SYSFS{maxchild}=="0" SYSFS{version}==" 2.00" SYSFS{devnum}=="6" SYSFS{speed}=="480" SYSFS{bMaxPacketSize0}=="64" SYSFS{bNumConfigurations}=="1" SYSFS{bDeviceProtocol}=="00" SYSFS{bDeviceSubClass}=="00" SYSFS{bDeviceClass}=="00" SYSFS{bcdDevice}=="0141" SYSFS{idProduct}=="6387" SYSFS{idVendor}=="058f" SYSFS{bMaxPower}=="100mA" SYSFS{bmAttributes}=="80" SYSFS{bConfigurationValue}=="1" SYSFS{bNumInterfaces}==" 1" SYSFS{configuration}=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5': ID=="usb5" BUS=="usb" DRIVER=="usb" SYSFS{serial}=="0000:00:1d.7" SYSFS{product}=="EHCI Host Controller" SYSFS{manufacturer}=="Linux 2.6.19.2 ehci_hcd" SYSFS{maxchild}=="8" SYSFS{version}==" 2.00" SYSFS{devnum}=="1" SYSFS{speed}=="480" SYSFS{bMaxPacketSize0}=="64" SYSFS{bNumConfigurations}=="1" SYSFS{bDeviceProtocol}=="01" SYSFS{bDeviceSubClass}=="00" SYSFS{bDeviceClass}=="09" SYSFS{bcdDevice}=="0206" SYSFS{idProduct}=="0000" SYSFS{idVendor}=="0000" SYSFS{bMaxPower}==" 0mA" SYSFS{bmAttributes}=="e0" SYSFS{bConfigurationValue}=="1" SYSFS{bNumInterfaces}==" 1" SYSFS{configuration}=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7': ID=="0000:00:1d.7" BUS=="pci" DRIVER=="ehci_hcd" SYSFS{msi_bus}=="" SYSFS{broken_parity_status}=="0" SYSFS{modalias}=="pci:v00008086d000024DDsv00001043sd000080A6bc0Csc03i20" SYSFS{local_cpus}=="1" SYSFS{irq}=="11" SYSFS{class}=="0x0c0320" SYSFS{subsystem_device}=="0x80a6" SYSFS{subsystem_vendor}=="0x1043" SYSFS{device}=="0x24dd" SYSFS{vendor}=="0x8086" looking at parent device '/devices/pci0000:00': ID=="pci0000:00" BUS=="" DRIVER==""


вот чужой:

Код:

looking at device '/block/sdb/sdb1': KERNEL=="sdb1" SUBSYSTEM=="block" SYSFS{stat}==" 274 274 0 0" SYSFS{size}=="2015169" SYSFS{start}=="63" SYSFS{dev}=="8:17" looking at parent device '/block/sdb': ID=="sdb" BUS=="block" DRIVER=="" SYSFS{stat}==" 53 230 346 1168 0 0 0 0 0 728 1168" SYSFS{size}=="2015232" SYSFS{removable}=="1" SYSFS{range}=="16" SYSFS{dev}=="8:16" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0/host5/target5:0:0/5:0:0:0': ID=="5:0:0:0" BUS=="scsi" DRIVER=="sd" SYSFS{ioerr_cnt}=="0x0" SYSFS{iodone_cnt}=="0x45" SYSFS{iorequest_cnt}=="0x45" SYSFS{iocounterbits}=="32" SYSFS{timeout}=="60" SYSFS{state}=="running" SYSFS{rev}=="0.00" SYSFS{model}=="Flash Disk " SYSFS{vendor}=="USB 2.0 " SYSFS{scsi_level}=="3" SYSFS{type}=="0" SYSFS{queue_type}=="none" SYSFS{queue_depth}=="1" SYSFS{device_blocked}=="0" SYSFS{max_sectors}=="240" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0/host5/target5:0:0': ID=="target5:0:0" BUS=="" DRIVER=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0/host5': ID=="host5" BUS=="" DRIVER=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8/5-8:1.0': ID=="5-8:1.0" BUS=="usb" DRIVER=="usb-storage" SYSFS{modalias}=="usb:v0457p0151d0100dc00dsc00dp00ic08isc06ip50" SYSFS{bInterfaceProtocol}=="50" SYSFS{bInterfaceSubClass}=="06" SYSFS{bInterfaceClass}=="08" SYSFS{bNumEndpoints}=="03" SYSFS{bAlternateSetting}==" 0" SYSFS{bInterfaceNumber}=="00" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5/5-8': ID=="5-8" BUS=="usb" DRIVER=="usb" SYSFS{serial}=="04827bc198d1f9" SYSFS{product}=="USB Mass Storage Device" SYSFS{maxchild}=="0" SYSFS{version}==" 2.00" SYSFS{devnum}=="5" SYSFS{speed}=="480" SYSFS{bMaxPacketSize0}=="64" SYSFS{bNumConfigurations}=="1" SYSFS{bDeviceProtocol}=="00" SYSFS{bDeviceSubClass}=="00" SYSFS{bDeviceClass}=="00" SYSFS{bcdDevice}=="0100" SYSFS{idProduct}=="0151" SYSFS{idVendor}=="0457" SYSFS{bMaxPower}==" 98mA" SYSFS{bmAttributes}=="80" SYSFS{bConfigurationValue}=="1" SYSFS{bNumInterfaces}==" 1" SYSFS{configuration}=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb5': ID=="usb5" BUS=="usb" DRIVER=="usb" SYSFS{serial}=="0000:00:1d.7" SYSFS{product}=="EHCI Host Controller" SYSFS{manufacturer}=="Linux 2.6.19.2 ehci_hcd" SYSFS{maxchild}=="8" SYSFS{version}==" 2.00" SYSFS{devnum}=="1" SYSFS{speed}=="480" SYSFS{bMaxPacketSize0}=="64" SYSFS{bNumConfigurations}=="1" SYSFS{bDeviceProtocol}=="01" SYSFS{bDeviceSubClass}=="00" SYSFS{bDeviceClass}=="09" SYSFS{bcdDevice}=="0206" SYSFS{idProduct}=="0000" SYSFS{idVendor}=="0000" SYSFS{bMaxPower}==" 0mA" SYSFS{bmAttributes}=="e0" SYSFS{bConfigurationValue}=="1" SYSFS{bNumInterfaces}==" 1" SYSFS{configuration}=="" looking at parent device '/devices/pci0000:00/0000:00:1d.7': ID=="0000:00:1d.7" BUS=="pci" DRIVER=="ehci_hcd" SYSFS{msi_bus}=="" SYSFS{broken_parity_status}=="0" SYSFS{modalias}=="pci:v00008086d000024DDsv00001043sd000080A6bc0Csc03i20" SYSFS{local_cpus}=="1" SYSFS{irq}=="11" SYSFS{class}=="0x0c0320" SYSFS{subsystem_device}=="0x80a6" SYSFS{subsystem_vendor}=="0x1043" SYSFS{device}=="0x24dd" SYSFS{vendor}=="0x8086" looking at parent device '/devices/pci0000:00': ID=="pci0000:00" BUS=="" DRIVER==""


подскажите что тут н так?
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

Установил Mandriva 2007.1 (ядро 2.6.17-13mdv) - флешка заработала без ошибок.
Поставил ядро 2.6.20.4-3mdv-tmb - опять те же глюки.
Новое ядро нужно, чтобы нормально работал тв-тюнер.
Такие вот проблемы.
Неужели никак эту напасть не побороть?
Спасибо сказали:
Аватара пользователя
uptime
Сообщения: 1661
Статус: Drinker with computing problems
ОС: kubuntu 8.04

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение uptime »

можно попробовать монтировать с опцией flush. Вот в этой теме описано.
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

смонтировал так:
mount /dev/sdb1 /media/tmp -o umask=0,users,iocharset=utf8,flush

не помогло :(
Спасибо сказали:
Elrock
Сообщения: 25
ОС: Linux

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение Elrock »

Подозреваю флешку.

У меня была одна флешка. При записи на одних компьютерах - все нормально на других - сплошные ошибки. Потом окончательно накрылась...
Спасибо сказали:
t2a
Сообщения: 694
ОС: Sidux-2008-2 (Debian sid)

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение t2a »

Попробуй вот это: http://rlab.ru/doc/repair_usb_flash_linux.html
Думаю хуже не станет
Спасибо сказали:
MindFlicker
Сообщения: 48
ОС: Gentoo

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение MindFlicker »

Вчера наблюдал ту же самую картину - под Кубунту 7.04 с моей флешки (Transcend Jetflash TS512MJF2A/120) считать инфу было невозможно, система ругалась, что файлы битые. Под Виндой - все нормально. Дома под Гентой - тоже.
Имхо, тут виновата не флешка.
read-only mode
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

Попробуй вот это: http://rlab.ru/doc/repair_usb_flash_linux.html

Попробовал, лучше не стало :(

Да и вобще причем тут железо, если на одном и том же компе:
windows - работает нормально
linux 2.6.17 - работает нормально
linux 2.6.19 - не работает
linux 2.6.20 - не работает

Имхо чего-то там значит девелоперы в usb-драйвере поменяли после 2.6.17, что привело к такому поведению.
Теперь нада искать workaround или флешку менять.
Перезагружаться в винду или в 2.6.17, чтоб инфу скинуть, уже задолбался :(.
Вобще нада признать, что поддержка USB Removable Mass Storage в Linux кривовата - странные глюки, при программном отключении питание с разъема не снимается - не стабильно как-то все
Спасибо сказали:
Аватара пользователя
uptime
Сообщения: 1661
Статус: Drinker with computing problems
ОС: kubuntu 8.04

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение uptime »

vantaker писал(а):
08.07.2007 11:58
linux 2.6.17 - работает нормально
linux 2.6.19 - не работает
linux 2.6.20 - не работает

Имхо чего-то там значит девелоперы в usb-драйвере поменяли после 2.6.17, что привело к такому поведению.
Теперь нада искать workaround ...


Предлагаю "грязный и быстрый" путь: взять драйвера из 2.6.17 и подсунуть в 2.6.20 :)
У меня они лежат по такому пути:

Код: Выделить всё

/lib/modules/2.6.20-16-generic/kernel/drivers/usb/storage$ ls
libusual.ko  usb-storage.ko


успехов!
The answer, my friend, is blowin' in the wind.
The answer is blowin' in the wind.
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

Вобщем после длительной переписки с разработчиками USB-стека, сборок/расборок, патчения/распатчения всяческих ядер пришли к выводу, что проблема вроде как и не в USB, а в чем-то еще.
Глюк возникает где-то между 2.6.17-git21 и 2.6.17-git22. А инкрементный патч между ними - 1,5 мега - искать кто именно виновник глюка до конца жизни :((
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение BlackStar »

У меня в точности такая же ситуация с флэшкой Transcend JetFlash TS1GJFV60, в венде все работает, в линуксе, особенно заметно на больших файлах >10 Мб, вся информация после записи битая. Ядро 2.6.22.4. Пробовал монтировать с разными опциями (sync, flush) результат не меняется.
LightLang Team
Спасибо сказали:
vantaker
Сообщения: 166

Re: Решено: Глючит USB Flash Drive Transcend

Сообщение vantaker »

Вобщем, разобрались. С помощью товарища по имени Alan Stern, за что ему большой респект. Профессионал, каких мало.
Подробности истории тут: linux-usb-users

Если коротко, проблема из двух частей:
1 - баг в scsi.
Патч (обещают внести в 2.6.24):

Код: Выделить всё

--- 2.6.23/drivers/scsi/sd.c2    2007-11-20 16:14:04.000000000 -0500
+++ 2.6.23/drivers/scsi/sd.c    2007-11-20 16:16:05.000000000 -0500
@@ -962,7 +962,17 @@
         /* This computation should always be done in terms of
          * the resolution of the device's medium.
          */
-        good_bytes = (bad_lba - start_lba)*SCpnt->device->sector_size;
+        if (start_lba <= bad_lba && bad_lba < start_lba +
+                (xfer_size / SCpnt->device->sector_size))
+            good_bytes = SCpnt->device->sector_size *
+                    (unsigned int) (bad_lba - start_lba);
+
+        /* If the bad_lba value is no good, maybe the residue value
+         * is better.
+         */
+        else if (SCpnt->resid > 0 && SCpnt->resid < xfer_size)
+            good_bytes = (xfer_size - SCpnt->resid) &
+                    (- SCpnt->device->sector_size);
         break;
     case RECOVERED_ERROR:
     case NO_SENSE:

2 - флешка хочет max_sectors<=184 вместо умолчальных 240.
Патч (обещают внести в 2.6.24):

Код: Выделить всё

--- usb-2.6.orig/drivers/usb/storage/unusual_devs.h
+++ usb-2.6/drivers/usb/storage/unusual_devs.h
@@ -731,6 +731,13 @@ UNUSUAL_DEV(  0x0584, 0x0008, 0x0102, 0x
          US_SC_SCSI, US_PR_ALAUDA, init_alauda, 0 ),
 #endif

+/* Reported by ... <...> */
+UNUSUAL_DEV(  0x058f, 0x6387, 0x0141, 0x0141,
+        "JetFlash",
+        "TS1GJF2A/120",
+        US_SC_DEVICE, US_PR_DEVICE, NULL,
+        US_FL_MAX_SECTORS_64 ),
+
 /* Fabrizio Fellini <...> */
 UNUSUAL_DEV(  0x0595, 0x4343, 0x0000, 0x2210,
         "Fujifilm",


без пересборки ядра можно попробовать сделать так:
echo 64 >/sys/block/sdc/device/max_sectors
Спасибо сказали: