On Thu, 19 Sep 2002 [EMAIL PROTECTED] wrote: | Date: Sun, 15 Sep 2002 16:47:02 +0100 (BST) | From: Jonathan Lozinski <[EMAIL PROTECTED]> | | I have a funnny problem with my SanDisk Compact Flash read/writer. | | Files it writes under Linux fine, and those files are readable by | | most devices, and windows can read them also. | | | | The thing is using my MP3 Player it is not able to play files when a | | file has been added to it using linux.. remove that file and all is | | well. | | | | There must be some information which windows adds which the | | usb-storage does not. As far as I can tell the files are added | | are played in the order they are copied under windows... | | Maybe I'm wrong, but I don't see this as a USB storage or | SanDisk CF problem, but some kind of filesystem problem. | | I was able to reproduce some parts of this problem. | I wrote an mp3 file to a CF and tried to play it. | The CF already had 1 mp3 file on it and I added 1 more. | The MP3 player (MoveMan) would only play the first mp3 file | (written on a Windows system). It ignored the second mp3 | file (written by Linux). | | Yes, I agree that it most likely is a filesystem problem, | but have no MP3 player to play with. | | Maybe you can debug it yourself?
Sure, I like doing this (so long as my son's mp3 player works). | Test 1: Could it be the driver? Write some stuff with Windows, | make sure the player plays it correctly, dd it off with Linux, | remove all with Windows, make sure the player sees nothing, | dd the old contents back with Linux, make sure the player plays it. | | After this test succeeds, the working hypothesis is that it is | the Linux-visible bits that make a difference (and not some | obscure copyright markers or other things that the Linux driver | does not know about). Yes, that did succeed. | Probably such special things are not to be expected if the device | is a standard Windows USB-storage device without its special own | drivers. | | Test 2: Write some stuff with Windows, make sure the player plays | it correctly, dd it off with Linux, remove all with Windows, | now copy (with cp) the same files back to the card with Linux. | Make sure the player fails to play them correctly. Yes, it fails. | Aldo dd this off. Look at the difference between the two | disk images. I'm using an 8 MB CF, but all the differences are in the PBR (or BPB), FAT, and directory entries, so I've truncated the 'dd' images to around 25 KB each. There are a few PBR/BPB differences (in the 0x4000 range). There is one FAT diff (this is FAT12) in the 0x4200 area, duplicated in the 0x4e00 area (for the duplicate FAT). And there are a few directory entry differences in the 0x5a00 range. I'm most suspicious of the FAT byte difference, since it might indicate and end-of-file in one case but not in the other case. Here are the byte differences: [root@midway root]# ~rddunlap/bin/xcomp -vrx cf6winadd.begin cf7linadd.begin Current time = Wed Sep 18 22:29:41 2002 Comparing 'cf6winadd.begin' and 'cf7linadd.begin' Source: 24576 bytes, Wed Sep 18 22:29:00 2002, [0100644], [r ] Target: 24576 bytes, Wed Sep 18 22:29:24 2002, [0100644], [r ] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x4004: 56[V] # 55[U] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x4005: 7e[~] # 6a[j] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x4007: 4a[J] # 3b[;] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x4027: 59[Y] # 12[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x4028: 43[C] # 1f[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x4029: fc[?] # d3[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x402a: 1b[?] # 1c[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x426c: ff[?] # f8[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x4e6c: ff[?] # f8[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x5a2d: 12[?] # 00[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x5a2e: 6b[k] # 6e[n] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x5a2f: a5[?] # a9[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x5a36: f4[?] # 6e[n] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x5a37: 89[?] # a9[?] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x5a38: b3[?] # 32[2] 'cf6winadd.begin' vs. 'cf7linadd.begin' error at 0x5a39: 28[(] # 2d[-] 16 file compare error(s) | (You may also send me the results of such experiments.) | | When you work under Linux, try both with msdos and with vfat. So far I've only tried vfat, and I'm out of time for tonight, but I will put some more time in on it. "cf6winadd.begin" is from Windows ME writing one file to the CF. "cf6linadd.begin" is from Linux 2.4.18 writing the same file to the CF. They are posted at http://www.xenotime.net/linux/cf/ since they could be too large to email to this mailing list. | Cameras and other devices that must interpret FAT often | are very picky, while Windows and Linux are willing to | accept many variations. Maybe there is some detail in the way | Linux writes FATs that differs from the way Windows does it. | Or maybe the boot block has to be updated. -- ~Randy ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users
