2004-01-05 13:00:43

by Javier Marcet

[permalink] [raw]
Subject: usb-storage && iRIVER flash player problem


I'm trying to get an iRIVER iFP-599T aduio player, with the Universal
Mass Storage firmware.

I've tried with 2.6.1-rc1-mm1 & 2.4.22.

The device is seen, but there is no way to mount it, nor re-partition
the thing.

I have it working from Windows and MacOS (I tried once on this). At
first look, it seems there is only one whole partition, but fdisk
reports 4 mangled ones, and some users who said they got it to work
under 2.4, explain that the mountable vfat partition under linux is the
fourth one (/dev/sda4 on my system).

There is no way here. I've recompiled with USBm usb-storage && scsi
debugging enabled and not as modules, directly into the kernel. For your
info I'm using udev.

See the attached dmesg, and some info from /proc, if there is anything
else which could come in handy to find where the problem might be,
please ask :)

P.S Other than the linux-kernel, please cross-post to my e-mail address
since I'm not subscribed.


--
Javier Marcet <[email protected]>


Attachments:
(No filename) (985.00 B)
dmesg (15.04 kB)
dmesg2 (15.00 kB)
proc_bus_usb_devices (2.21 kB)
proc_scsi_scsi (176.00 B)
proc_scsi_usb-storage_2 (160.00 B)
fdisk_list_devices (1.53 kB)
Download all attachments

2004-01-05 19:03:08

by Matthew Dharm

[permalink] [raw]
Subject: Re: usb-storage && iRIVER flash player problem

It looks like your device is choking over the ALLOW_MEDIUM_REMOVAL command
-- I've never seen a device broken in this particular way before.

If you edit drivers/scsi/sd.c to remove the sending of that command (it's
normally used to lock the media-eject button on devices that support it),
we should be able to test this theory. If this is the case, then we may
need to modify the SCSI layer to only send that command if the RMB bit is
set.

Matt

On Mon, Jan 05, 2004 at 01:59:48PM +0100, Javier Marcet wrote:
>
> I'm trying to get an iRIVER iFP-599T aduio player, with the Universal
> Mass Storage firmware.
>
> I've tried with 2.6.1-rc1-mm1 & 2.4.22.
>
> The device is seen, but there is no way to mount it, nor re-partition
> the thing.
>
> I have it working from Windows and MacOS (I tried once on this). At
> first look, it seems there is only one whole partition, but fdisk
> reports 4 mangled ones, and some users who said they got it to work
> under 2.4, explain that the mountable vfat partition under linux is the
> fourth one (/dev/sda4 on my system).
>
> There is no way here. I've recompiled with USBm usb-storage && scsi
> debugging enabled and not as modules, directly into the kernel. For your
> info I'm using udev.
>
> See the attached dmesg, and some info from /proc, if there is anything
> else which could come in handy to find where the problem might be,
> please ask :)
>
> P.S Other than the linux-kernel, please cross-post to my e-mail address
> since I'm not subscribed.
>
>
> --
> Javier Marcet <[email protected]>

> cted: Hauppauge WinTV [card=10], PCI subsystem ID is 0070:13eb
> bttv0: using: Hauppauge (bt878) [card=10,autodetected]
> bttv0: Hauppauge/Voodoo msp34xx: reset line init [5]
> bttv0: Hauppauge eeprom: model=44354, tuner=Temic 4009FR5 (20), radio=yes
> bttv0: using tuner=20
> bttv0: i2c: checking for MSP34xx @ 0x80... found
> msp34xx: init: chip=MSP3415D-B3 +nicam +simple
> msp3410: daemon started
> registering 0-0040
> bttv0: i2c: checking for TDA9875 @ 0xb0... not found
> bttv0: i2c: checking for TDA7432 @ 0x8a... not found
> tvaudio: TV audio decoder + audio/video mux driver
> tvaudio: known chips: tda9840,tda9873h,tda9874h/a,tda9850,tda9855,tea6300,tea6420,tda8425,pic16c54 (PV951),ta8874z
> tuner: chip found @ 0xc2
> tuner: type set to 20 (Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5))
> registering 0-0061
> bttv0: registered device video0
> bttv0: registered device vbi0
> bttv0: registered device radio0
> bttv0: PLL: 28636363 => 35468950 .. ok
> registering 1-002d
> registering 1-0049
> registering 1-0048
> found reiserfs format "3.6" with standard journal
> Reiserfs journal params: device hda8, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
> reiserfs: checking transaction log (hda8) for (hda8)
> Using r5 hash to sort names
> found reiserfs format "3.6" with standard journal
> Reiserfs journal params: device hda9, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
> reiserfs: checking transaction log (hda9) for (hda9)
> b44: eth0: Link is down.
> Using r5 hash to sort names
> found reiserfs format "3.6" with standard journal
> Reiserfs journal params: device hda10, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
> reiserfs: checking transaction log (hda10) for (hda10)
> Using r5 hash to sort names
> found reiserfs format "3.6" with standard journal
> Reiserfs journal params: device hda11, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
> reiserfs: checking transaction log (hda11) for (hda11)
> Using r5 hash to sort names
> found reiserfs format "3.6" with standard journal
> b44: eth0: Link is up at 100 Mbps, full duplex.
> b44: eth0: Flow control is on for TX and on for RX.
> Reiserfs journal params: device hda13, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
> reiserfs: checking transaction log (hda13) for (hda13)
> Using r5 hash to sort names
> PCI: Found IRQ 4 for device 0000:00:11.5
> PCI: Setting latency timer of device 0000:00:11.5 to 64
> tvmixer: MSP3415D-B3 (bt878 #0 [sw]) registered with minor 16
> btaudio: driver version 0.7 loaded [digital+analog]
> PCI: Enabling device 0000:00:0c.1 (0004 -> 0006)
> PCI: Found IRQ 11 for device 0000:00:0c.1
> PCI: Sharing IRQ 11 with 0000:00:0c.0
> btaudio: Bt878 (rev 17) at 00:0c.1, irq: 11, latency: 64, mmio: 0xd6800000
> btaudio: using card config "default"
> btaudio: registered device dsp2 [digital]
> btaudio: registered device dsp3 [analog]
> btaudio: registered device mixer2
> Disabled Privacy Extensions on device c0377a40(lo)
> eth0: no IPv6 routers present
> Installing knfsd (copyright (C) 1996 [email protected]).
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> nfs warning: mount version older than kernel
> request_module: failed /sbin/modprobe -- char-major-226-0. error = 256
> [drm] Initialized radeon 1.9.0 20020828 on minor 0
> agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
> agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
> agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode
> agpgart: Putting AGP V2 device at 0000:01:00.1 into 4x mode
> [drm] Loading R200 Microcode
> PCI: Found IRQ 11 for device 0000:01:00.0
> atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).
> atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).
> ehci_hcd 0000:00:10.3: GetStatus port 6 status 001803 POWER sig=j CSC CONNECT
> hub 1-0:1.0: port 6, status 501, change 1, 480 Mb/s
> hub 1-0:1.0: debounce: port 6: delay 100ms stable 4 status 0x501
> ehci_hcd 0000:00:10.3: port 6 full speed --> companion
> ehci_hcd 0000:00:10.3: GetStatus port 6 status 003801 POWER OWNER sig=j CONNECT
> drivers/usb/host/uhci-hcd.c: 9800: wakeup_hc
> hub 4-0:1.0: port 2, status 101, change 1, 12 Mb/s
> hub 4-0:1.0: debounce: port 2: delay 100ms stable 4 status 0x101
> hub 4-0:1.0: new USB device on port 2, assigned address 2
> usb 4-2: new device strings: Mfr=0, Product=0, SerialNumber=0
> drivers/usb/core/usb.c: usb_hotplug
> usb 4-2: registering 4-2:1.0 (config #1, interface 0)
> drivers/usb/core/usb.c: usb_hotplug
> usb-storage 4-2:1.0: usb_probe_interface
> usb-storage 4-2:1.0: usb_probe_interface - got id
> usb-storage: USB Mass Storage device detected
> usb-storage: act_altsetting is 0, id_index is 86
> usb-storage: -- associate_dev
> usb-storage: Transport: Bulk
> usb-storage: Protocol: Transparent SCSI
> usb-storage: Endpoints: In: 0xdd291c94 Out: 0xdd291c80 Int: 0x00000000 (Period 0)
> usb-storage: usb_stor_control_msg: rq=fe rqtype=a1 value=0000 index=00 len=1
> usb-storage: GetMaxLUN command result is -32, data is 0
> usb-storage: *** thread sleeping.
> scsi2 : SCSI emulation for USB Mass Storage devices
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command INQUIRY (6 bytes)
> usb-storage: 12 00 00 00 24 00
> usb-storage: Bulk Command S 0x43425355 T 0x41 L 36 F 128 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 36 bytes
> usb-storage: Status code 0; transferred 36/36
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x41 R 0 Stat 0x0
> usb-storage: Fixing INQUIRY data to show SCSI rev 2 - was 0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command INQUIRY (6 bytes)
> usb-storage: 12 00 00 00 7a 00
> usb-storage: Bulk Command S 0x43425355 T 0x42 L 122 F 128 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 122 bytes
> usb-storage: Status code 0; transferred 122/122
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x42 R 0 Stat 0x0
> usb-storage: Fixing INQUIRY data to show SCSI rev 2 - was 0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> Vendor: iRiver Model: iFP Mass Driver Rev: 1.00
> Type: Direct-Access ANSI SCSI revision: 02
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x43 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x43 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command READ_CAPACITY (10 bytes)
> usb-storage: 25 00 00 00 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x44 L 8 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 8 bytes
> usb-storage: Status code 0; transferred 8/8
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x44 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> SCSI device sda: 2048000 512-byte hdwr sectors (1049 MB)
> sda: assuming Write Enabled
> sda: assuming drive cache: write through
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x45 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x45 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command ALLOW_MEDIUM_REMOVAL (6 bytes)
> usb-storage: 1e 00 00 00 01 00
> usb-storage: Bulk Command S 0x43425355 T 0x46 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x46 R 0 Stat 0x1
> usb-storage: -- transport indicates command failure
> usb-storage: Issuing auto-REQUEST_SENSE
> usb-storage: Bulk Command S 0x43425355 T 0x80000046 L 18 F 128 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 18 bytes
> usb-storage: Status code 0; transferred 18/18
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x80000046 R 0 Stat 0x0
> usb-storage: -- Result from auto-sense is 0
> usb-storage: -- code: 0x70, key: 0x6, ASC: 0x29, ASCQ: 0x0
> usb-storage: Unit Attention: Power on, reset, or bus device reset occurred
> usb-storage: scsi cmd done, result=0x2
> usb-storage: *** thread sleeping.
> sda:<3>Buffer I/O error on device sda, logical block 0
> Buffer I/O error on device sda, logical block 0
> unable to read partition table
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command ALLOW_MEDIUM_REMOVAL (6 bytes)
> usb-storage: 1e 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x47 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x47 R 0 Stat 0x1
> usb-storage: -- transport indicates command failure
> usb-storage: Issuing auto-REQUEST_SENSE
> usb-storage: Bulk Command S 0x43425355 T 0x80000047 L 18 F 128 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 18 bytes
> usb-storage: Status code 0; transferred 18/18
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x80000047 R 0 Stat 0x0
> usb-storage: -- Result from auto-sense is 0
> usb-storage: -- code: 0x70, key: 0x6, ASC: 0x29, ASCQ: 0x0
> usb-storage: Unit Attention: Power on, reset, or bus device reset occurred
> usb-storage: scsi cmd done, result=0x2
> usb-storage: *** thread sleeping.
> Attached scsi removable disk sda at scsi2, channel 0, id 0, lun 0
> Attached scsi generic sg0 at scsi2, channel 0, id 0, lun 0, type 0
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Bad target number (1:0)
> usb-storage: scsi cmd done, result=0x40000
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Bad target number (2:0)
> usb-storage: scsi cmd done, result=0x40000
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Bad target number (3:0)
> usb-storage: scsi cmd done, result=0x40000
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Bad target number (4:0)
> usb-storage: scsi cmd done, result=0x40000
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Bad target number (5:0)
> usb-storage: scsi cmd done, result=0x40000
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Bad target number (6:0)
> usb-storage: scsi cmd done, result=0x40000
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Bad target number (7:0)
> usb-storage: scsi cmd done, result=0x40000
> usb-storage: *** thread sleeping.
> WARNING: USB Mass Storage data integrity not assured
> USB Mass Storage device found at 2

> e 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x12e R 0 Stat 0x1
> usb-storage: -- transport indicates command failure
> usb-storage: Issuing auto-REQUEST_SENSE
> usb-storage: Bulk Command S 0x43425355 T 0x8000012e L 18 F 128 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 18 bytes
> usb-storage: Status code 0; transferred 18/18
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x8000012e R 0 Stat 0x0
> usb-storage: -- Result from auto-sense is 0
> usb-storage: -- code: 0x70, key: 0x6, ASC: 0x29, ASCQ: 0x0
> usb-storage: Unit Attention: Power on, reset, or bus device reset occurred
> usb-storage: scsi cmd done, result=0x2
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x12f L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x12f R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x130 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x130 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command READ_CAPACITY (10 bytes)
> usb-storage: 25 00 00 00 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x131 L 8 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 8 bytes
> usb-storage: Status code 0; transferred 8/8
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x131 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> SCSI device sda: 2048000 512-byte hdwr sectors (1049 MB)
> sda: assuming Write Enabled
> sda: assuming drive cache: write through
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command ALLOW_MEDIUM_REMOVAL (6 bytes)
> usb-storage: 1e 00 00 00 01 00
> usb-storage: Bulk Command S 0x43425355 T 0x132 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x132 R 0 Stat 0x1
> usb-storage: -- transport indicates command failure
> usb-storage: Issuing auto-REQUEST_SENSE
> usb-storage: Bulk Command S 0x43425355 T 0x80000132 L 18 F 128 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 18 bytes
> usb-storage: Status code 0; transferred 18/18
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x80000132 R 0 Stat 0x0
> usb-storage: -- Result from auto-sense is 0
> usb-storage: -- code: 0x70, key: 0x6, ASC: 0x29, ASCQ: 0x0
> usb-storage: Unit Attention: Power on, reset, or bus device reset occurred
> usb-storage: scsi cmd done, result=0x2
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x133 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x133 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command READ_CAPACITY (10 bytes)
> usb-storage: 25 00 00 00 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x134 L 8 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 8 bytes
> usb-storage: Status code 0; transferred 8/8
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x134 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> SCSI device sda: 2048000 512-byte hdwr sectors (1049 MB)
> sda: assuming Write Enabled
> sda: assuming drive cache: write through
> sda:<3>Buffer I/O error on device sda, logical block 0
> Buffer I/O error on device sda, logical block 0
> unable to read partition table
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x135 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x135 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x136 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x136 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command READ_CAPACITY (10 bytes)
> usb-storage: 25 00 00 00 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x137 L 8 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 8 bytes
> usb-storage: Status code 0; transferred 8/8
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x137 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> SCSI device sda: 2048000 512-byte hdwr sectors (1049 MB)
> sda: assuming Write Enabled
> sda: assuming drive cache: write through
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command TEST_UNIT_READY (6 bytes)
> usb-storage: 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x138 L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x138 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command READ_CAPACITY (10 bytes)
> usb-storage: 25 00 00 00 00 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x139 L 8 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 8 bytes
> usb-storage: Status code 0; transferred 8/8
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x139 R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> SCSI device sda: 2048000 512-byte hdwr sectors (1049 MB)
> sda: assuming Write Enabled
> sda: assuming drive cache: write through
> sda:<7>usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command READ_10 (10 bytes)
> usb-storage: 28 00 00 00 00 00 00 00 08 00
> usb-storage: Bulk Command S 0x43425355 T 0x13a L 4096 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_sglist: xfer 4096 bytes, 1 entries
> usb-storage: Status code 0; transferred 4096/4096
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x13a R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> sda1 sda2 sda3 sda4
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command READ_10 (10 bytes)
> usb-storage: 28 00 00 00 00 08 00 00 78 00
> usb-storage: Bulk Command S 0x43425355 T 0x13b L 61440 F 128 Trg 0 LUN 0 CL 10
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_sglist: xfer 61440 bytes, 15 entries
> usb-storage: Status code 0; transferred 61440/61440
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x13b R 0 Stat 0x0
> usb-storage: scsi cmd done, result=0x0
> usb-storage: *** thread sleeping.
> usb-storage: queuecommand called
> usb-storage: *** thread awakened.
> usb-storage: Command ALLOW_MEDIUM_REMOVAL (6 bytes)
> usb-storage: 1e 00 00 00 00 00
> usb-storage: Bulk Command S 0x43425355 T 0x13c L 0 F 0 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x13c R 0 Stat 0x1
> usb-storage: -- transport indicates command failure
> usb-storage: Issuing auto-REQUEST_SENSE
> usb-storage: Bulk Command S 0x43425355 T 0x8000013c L 18 F 128 Trg 0 LUN 0 CL 6
> usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
> usb-storage: Status code 0; transferred 31/31
> usb-storage: -- transfer complete
> usb-storage: Bulk command transfer result=0
> usb-storage: usb_stor_bulk_transfer_buf: xfer 18 bytes
> usb-storage: Status code 0; transferred 18/18
> usb-storage: -- transfer complete
> usb-storage: Bulk data transfer result 0x0
> usb-storage: Attempting to get CSW...
> usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
> usb-storage: Status code 0; transferred 13/13
> usb-storage: -- transfer complete
> usb-storage: Bulk status result = 0
> usb-storage: Bulk Status S 0x53425355 T 0x8000013c R 0 Stat 0x0
> usb-storage: -- Result from auto-sense is 0
> usb-storage: -- code: 0x70, key: 0x6, ASC: 0x29, ASCQ: 0x0
> usb-storage: Unit Attention: Power on, reset, or bus device reset occurred
> usb-storage: scsi cmd done, result=0x2
> usb-storage: *** thread sleeping.

>
> T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
> B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
> D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=0000 ProdID=0000 Rev= 2.06
> S: Manufacturer=Linux 2.6.1-rc1-mm1 uhci_hcd
> S: Product=UHCI Host Controller
> S: SerialNumber=0000:00:10.2
> C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
> I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
> E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
>
> T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
> D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=4102 ProdID=1105 Rev= 1.00
> C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
> I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
> E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
>
> T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
> B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
> D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=0000 ProdID=0000 Rev= 2.06
> S: Manufacturer=Linux 2.6.1-rc1-mm1 uhci_hcd
> S: Product=UHCI Host Controller
> S: SerialNumber=0000:00:10.1
> C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
> I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
> E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
>
> T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
> B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
> D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
> P: Vendor=0000 ProdID=0000 Rev= 2.06
> S: Manufacturer=Linux 2.6.1-rc1-mm1 uhci_hcd
> S: Product=UHCI Host Controller
> S: SerialNumber=0000:00:10.0
> C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
> I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
> E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
>
> T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6
> B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
> D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1
> P: Vendor=0000 ProdID=0000 Rev= 2.06
> S: Manufacturer=Linux 2.6.1-rc1-mm1 ehci_hcd
> S: Product=EHCI Host Controller
> S: SerialNumber=0000:00:10.3
> C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
> I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
> E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms

> Attached devices:
> Host: scsi2 Channel: 00 Id: 00 Lun: 00
> Vendor: iRiver Model: iFP Mass Driver Rev: 1.00
> Type: Direct-Access ANSI SCSI revision: 02

> Host scsi2: usb-storage
> Vendor: Unknown
> Product: Unknown
> Serial Number: None
> Protocol: Transparent SCSI
> Transport: Bulk
> Quirks:

>
> Disk /dev/sda: 1048 MB, 1048576000 bytes
> 33 heads, 61 sectors/track, 1017 cylinders
> Units = cylinders of 2013 * 512 = 1030656 bytes
>
> Device Boot Start End Blocks Id System
> /dev/sda1 ? 386556 953625 570754815+ 72 Unknown
> Partition 1 has different physical/logical beginnings (non-Linux?):
> phys=(357, 116, 40) logical=(386555, 11, 23)
> Partition 1 has different physical/logical endings:
> phys=(357, 32, 45) logical=(953624, 6, 61)
> Partition 1 does not end on cylinder boundary.
> /dev/sda2 ? 83801 1045563 968014120 65 Novell Netware 386
> Partition 2 has different physical/logical beginnings (non-Linux?):
> phys=(288, 115, 43) logical=(83800, 2, 1)
> Partition 2 has different physical/logical endings:
> phys=(367, 114, 50) logical=(1045562, 23, 53)
> Partition 2 does not end on cylinder boundary.
> /dev/sda3 ? 928903 1890666 968014096 79 Unknown
> Partition 3 has different physical/logical beginnings (non-Linux?):
> phys=(366, 32, 33) logical=(928902, 28, 32)
> Partition 3 has different physical/logical endings:
> phys=(357, 32, 43) logical=(1890665, 16, 36)
> Partition 3 does not end on cylinder boundary.
> /dev/sda4 ? 1 1806869 1818613248 d Unknown
> Partition 4 has different physical/logical beginnings (non-Linux?):
> phys=(372, 97, 50) logical=(0, 0, 1)
> Partition 4 has different physical/logical endings:
> phys=(0, 10, 0) logical=(1806868, 19, 53)
> Partition 4 does not end on cylinder boundary.
>
> Partition table entries are not in disk order


--
Matthew Dharm Home: [email protected]
Maintainer, Linux USB Mass Storage Driver

Department of Justice agent. I have come to purify the flock.
-- DOJ agent
User Friendly, 5/22/1998


Attachments:
(No filename) (37.35 kB)
(No filename) (189.00 B)
Download all attachments

2004-01-05 20:03:43

by Javier Marcet

[permalink] [raw]
Subject: Re: usb-storage && iRIVER flash player problem

* Matthew Dharm <[email protected]> [040105 20:02]:

>It looks like your device is choking over the ALLOW_MEDIUM_REMOVAL command
>-- I've never seen a device broken in this particular way before.

>If you edit drivers/scsi/sd.c to remove the sending of that command (it's
>normally used to lock the media-eject button on devices that support it),
>we should be able to test this theory. If this is the case, then we may
>need to modify the SCSI layer to only send that command if the RMB bit is
>set.

That did it, with this fix I have no problems. fdisk still reports
mangled partitions, parted OTOH reports one partition filling the whole
device. I can mount either /dev/sda or /dev/sda4 and get the same
correct results.

Thanks a lot :) You've made me happy for the coming days ;)
Until your message I was messing around with unusual_devs.h to no
avail...


--
Javier Marcet <[email protected]>


Attachments:
(No filename) (917.00 B)
usb-storage_ifpdev_fix.patch (347.00 B)
Download all attachments

2004-01-06 06:57:07

by Matthew Dharm

[permalink] [raw]
Subject: Re: [usb-storage] Re: usb-storage && iRIVER flash player problem

On Mon, Jan 05, 2004 at 09:03:33PM +0100, Javier Marcet wrote:
> * Matthew Dharm <[email protected]> [040105 20:02]:
>
> >It looks like your device is choking over the ALLOW_MEDIUM_REMOVAL command
> >-- I've never seen a device broken in this particular way before.
>
> >If you edit drivers/scsi/sd.c to remove the sending of that command (it's
> >normally used to lock the media-eject button on devices that support it),
> >we should be able to test this theory. If this is the case, then we may
> >need to modify the SCSI layer to only send that command if the RMB bit is
> >set.
>
> That did it, with this fix I have no problems. fdisk still reports
> mangled partitions, parted OTOH reports one partition filling the whole
> device. I can mount either /dev/sda or /dev/sda4 and get the same
> correct results.
>
> Thanks a lot :) You've made me happy for the coming days ;)
> Until your message I was messing around with unusual_devs.h to no
> avail...

Hrm... what's the easiest way for Javier to figure out if his device sets
the RMB or not?

I feel another SCSI enhancement coming on....

Matt

--
Matthew Dharm Home: [email protected]
Maintainer, Linux USB Mass Storage Driver

I'm just trying to think of a way to say "up yours" without getting fired.
-- Stef
User Friendly, 10/8/1998


Attachments:
(No filename) (1.33 kB)
(No filename) (189.00 B)
Download all attachments

2004-01-06 15:37:15

by Alan Stern

[permalink] [raw]
Subject: Re: [usb-storage] Re: usb-storage && iRIVER flash player problem

On Mon, 5 Jan 2004, Matthew Dharm wrote:

> On Mon, Jan 05, 2004 at 09:03:33PM +0100, Javier Marcet wrote:
> > * Matthew Dharm <[email protected]> [040105 20:02]:
> >
> > >It looks like your device is choking over the ALLOW_MEDIUM_REMOVAL command
> > >-- I've never seen a device broken in this particular way before.
> >
> > >If you edit drivers/scsi/sd.c to remove the sending of that command (it's
> > >normally used to lock the media-eject button on devices that support it),
> > >we should be able to test this theory. If this is the case, then we may
> > >need to modify the SCSI layer to only send that command if the RMB bit is
> > >set.

> Hrm... what's the easiest way for Javier to figure out if his device sets
> the RMB or not?
>
> I feel another SCSI enhancement coming on....

It's not so simple, unfortunately. In 2.6, sd.c already does check that
sdev->removable is set before issuing PREVENT ALLOW MEDIUM REMOVAL.

Alan Stern

2004-01-06 20:32:30

by Javier Marcet

[permalink] [raw]
Subject: Re: usb-storage && iRIVER flash player problem

* Alan Stern <[email protected]> [040106 16:41]:

>> > >It looks like your device is choking over the ALLOW_MEDIUM_REMOVAL command
>> > >-- I've never seen a device broken in this particular way before.

>> Hrm... what's the easiest way for Javier to figure out if his device sets
>> the RMB or not?

>> I feel another SCSI enhancement coming on....

>It's not so simple, unfortunately. In 2.6, sd.c already does check that
>sdev->removable is set before issuing PREVENT ALLOW MEDIUM REMOVAL.

Yeah, I noticed that upon looking over sd.c et all.
It seems this iRiver player reports incorrectly that it is removable,
since the protocol used by usb-stoareg for this device is
transparent_scsi, thus all the info is fed directly from the device to
the scsi layer.

I have added a new flag for SCSI devices that need special treatment,
and the "iRiver" "iFP Mass Driver" to the list of those devices with
that new flag. this way nothing is broken to support the iRiver.
However, since this is not a real SCSI device, shouldn't this be
transparently fixed by usb-storage instead? Or is it ok this way?


--
Javier Marcet <[email protected]>


Attachments:
(No filename) (1.12 kB)
broken_RMB_scsi.patch (1.31 kB)
Download all attachments