Титла: Проблем със скоростта на usb storage устройствата 
					Публикувано от: PhobosK в Oct 15, 2005, 21:31
					 
					Здравейте, Имам странен проблем със скоростта на трансфер с всички usb устройства които се разпознават като usb storage - KINGMAX usb flash 256M, SONY mp3 player и няколко други. Когато прехвърлям файлове ОТ тези устройства няма проблем със скоростта (тя е около 6-8 М/сек), но ако прехвърлям файлове КЪМ тези устройства, скоростта пада драстично до 30-40 к/сек Ето и малко повече информация: | Примерен код  |  
  dmesg
  usb 4-1: new high speed USB device using ehci_hcd and address 7 Initializing USB Mass Storage driver... scsi0 : SCSI emulation for USB Mass Storage devices usbcore: registered new driver usb-storage USB Mass Storage support registered. usb-storage: device found at 7 usb-storage: waiting for device to settle before scanning   Vendor: KINGMAX   Model: USB Flash Disk    Rev: 2.00   Type:   Direct-Access                      ANSI SCSI revision: 02 Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0 usb-storage: device scan complete sda: Unit Not Ready, sense: : Current: sense key: Unit Attention     Additional sense: Not ready to ready change, medium may have changed sda : READ CAPACITY failed. sda : status=1, message=00, host=0, driver=08 sd: Current: sense key: Unit Attention     Additional sense: Not ready to ready change, medium may have changed sda: test WP failed, assume Write Enabled sda: assuming drive cache: write through sda: Unit Not Ready, sense: : Current: sense key: Unit Attention     Additional sense: Not ready to ready change, medium may have changed sda : READ CAPACITY failed. sda : status=1, message=00, host=0, driver=08 sd: Current: sense key: Unit Attention     Additional sense: Not ready to ready change, medium may have changed sda: test WP failed, assume Write Enabled sda: assuming drive cache: write through sda: Unit Not Ready, sense: : Current: sense key: Unit Attention     Additional sense: Not ready to ready change, medium may have changed SCSI device sda: 512000 512-byte hdwr sectors (262 MB) sda: Write Protect is off sda: Mode Sense: 03 00 00 00 sda: assuming drive cache: write through  sda: sda1 Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
 
 
  lsusb
  Bus 004 Device 007: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash 2.0 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) Bus 003 Device 004: ID 046d:c216 Logitech, Inc. Bus 003 Device 001: ID 0000:0000 Bus 002 Device 005: ID 066f:4200 SigmaTel, Inc. STIr4200 IrDA Bridge Bus 002 Device 004: ID 046d:0840 Logitech, Inc. QuickCam Express Bus 002 Device 001: ID 0000:0000 Bus 001 Device 003: ID 04a9:220d Canon, Inc. CanoScan N670U/N676U/LiDE 20 Bus 001 Device 001: ID 0000:0000
 
 
  cat /proc/scsi/usb-storage/0
     Host scsi0: usb-storage        Vendor: USB       Product: Flash Disk Serial Number: None      Protocol: Transparent SCSI     Transport: Bulk        Quirks:
 
 
  sfdisk -l
  Disk /dev/sda: 1000 cylinders, 16 heads, 32 sectors/track Units = cylinders of 262144 bytes, blocks of 1024 bytes, counting from 0
     Device Boot Start     End   #cyls    #blocks   Id  System /dev/sda1   *      0+    999    1000-    255984    b  W95 FAT32 /dev/sda2          0       -       0          0    0  Empty /dev/sda3          0       -       0          0    0  Empty /dev/sda4          0       -       0          0    0  Empty
 
 
  lsusb -v
  Bus 004 Device 007: ID 0ea0:2168 Ours Technology, Inc. Transcend JetFlash 2.0 Device Descriptor:   bLength                18   bDescriptorType         1   bcdUSB               2.00   bDeviceClass            0 (Defined at Interface level)   bDeviceSubClass         0   bDeviceProtocol         0   bMaxPacketSize0        64   idVendor           0x0ea0 Ours Technology, Inc.   idProduct          0x2168 Transcend JetFlash 2.0   bcdDevice            2.00   iManufacturer           1 USB   iProduct                2 Flash Disk   iSerial                 0   bNumConfigurations      1   Configuration Descriptor:     bLength                 9     bDescriptorType         2     wTotalLength           39     bNumInterfaces          1     bConfigurationValue     1     iConfiguration          0     bmAttributes         0x80     MaxPower              200mA     Interface Descriptor:       bLength                 9       bDescriptorType         4       bInterfaceNumber        0       bAlternateSetting       0       bNumEndpoints           3       bInterfaceClass         8 Mass Storage       bInterfaceSubClass      6 SCSI       bInterfaceProtocol     80 Bulk (Zip)       iInterface              0       Endpoint Descriptor:         bLength                 7         bDescriptorType         5         bEndpointAddress     0x81  EP 1 IN         bmAttributes            2           Transfer Type            Bulk           Synch Type               None           Usage Type               Data         wMaxPacketSize     0x0200  1x 512 bytes         bInterval               0       Endpoint Descriptor:         bLength                 7         bDescriptorType         5         bEndpointAddress     0x02  EP 2 OUT         bmAttributes            2           Transfer Type            Bulk           Synch Type               None           Usage Type               Data         wMaxPacketSize     0x0200  1x 512 bytes         bInterval               0       Endpoint Descriptor:         bLength                 7         bDescriptorType         5         bEndpointAddress     0x83  EP 3 IN         bmAttributes            3           Transfer Type            Interrupt           Synch Type               None           Usage Type               Data         wMaxPacketSize     0x0002  1x 2 bytes         bInterval               1 Device Qualifier (for other device speed):   bLength                10   bDescriptorType         6   bcdUSB               2.00   bDeviceClass            0 (Defined at Interface level)   bDeviceSubClass         0   bDeviceProtocol         0   bMaxPacketSize0        64   bNumConfigurations      1
 
 
  lsmod |grep usb -i
  usb_storage            72832  2 scsi_mod              123432  3 sd_mod,usb_storage,sg usblp                  11008  0 hci_usb                13000  6 bluetooth              42564  17 bnep,rfcomm,l2cap,sco,hci_usb usbhid                 45216  0 usbcore               112252  10 usb_storage,xpad,stir4200,usblp,hci_usb,usbhid,ehci_hcd,quickcam,uhci_hcd
 
 
  cat /sys/block/sda/device/max_sectors
  128
 
 
  uname -r
  2.6.13
  |  
 
  Опитах да променя "max_sectors": echo 128 >/sys/block/sda/device/max_sectors echo 1024 >/sys/block/sda/device/max_sectors
  но това нямаше никакъв ефект върху скоростта на трансфер.
 
  Използвам Mandriva Linux 2005LE. Освен това този проблем не съществува под WinXP и Win98 (на същата машина).
  Ако някой може да помогне ще съм му много благодарен. 
					 
					 
					Титла: Проблем със скоростта на usb storage устройствата 
					Публикувано от: ray в Oct 16, 2005, 10:30
					 
					Здравей, Имах същият проблем само преди седмица, оказа се че проблема е в последните ядра (2.6.12.Х и 2.6.13, само най-новите 2.6.12 ядра са проблемни). Накратко казано устройствата с "vfat" файлова система се монтират с опция "sync", но има и някаква грешка така че реално се прави 'sync' след всеки записан блок и затова скоростта пада драстично. Но още по-лошото е че това буквално скапва USB-то (това го има в една дискусия в Gentoo-ML). Цитирам от там: "броят на записванията на едно USB е ограничен - около 100,000 записа", затова не се препоръчва да се ползват за чести записи (вместо хард например). Тук проблема е това много често синхронизиране/записване (след всеки блок) което буквално скапва устройството - в дискусията има пример за развалено чисто ново USB след един единствен запис на много голям файл/файлове. Решението (за мен) бе да сменя опцията за монтиране от "sync" --> "async" и нещата се оправиха. Тъй като ползвам "dbus-hal-ivman" за автоматично монтиране на устройствата трябваше да редактирам файл от конфигурацията на "ivman" добавяйки "async". Успех.Румен 
					 
					 
					Титла: Проблем със скоростта на usb storage устройствата 
					Публикувано от: PhobosK в Oct 16, 2005, 15:28
					 
					@ray, благодаря ти изключително много за информацията. Единственото нещо което не ми бе хрумнало да опитам бяха опциите за mount-ване. За по-лесно прибавих няколко policy правила на hal за "volume.policy.mount_option.sync" и нещата си дойдоха на място.     Благодаря ти още веднаж.  
					
  
					
				 |