Recent Rockbox fan, lurker, tinkerer, etc here. Had a huge adventure repairing my new Sansa e280.
I hope this can be a be-all-end-all procedure for fixing Sansa bricks!
There is a LOT of good information out there - especially in this forum! For me this took some digging and work with multiple solutions. So here is my post with everything I did in hopes it will help someone else. Little here is original - credit where credit is due! I just had to pull a lot of details together. NOTE a lot of this is half guesswork but it worked for me! Please correct as necessary
Started with the Sansa issue where the files become corrupted - garbage filenames, database hung during update, etc. The regular solution is to mount the drive in Windows and format - the firmware will rebuild it. Well, in Linux, I ended up formatting the volume - not just the partitions! That killed my player.
Issue: player started up with black screen only and blue light. That's all. lsusb showed
0b70:0003 Portalplayer usb device
(aka "pre-bootloader mode") . (NOTE in Windows, you can see this in Device Manager - on the "unknown usb device", with the question mark, on properties you will find a string containing "\0b70\0003\" I believe)
Solution:Bring the player to recovery mode, reformat per correct Sansa partitioning, and flash the firmware.
This was accomplished by
1. downloading the firmware and boot loader:http://nuclearscripting.com/other/sansafw/BL_SD_BOARDSUPPORTSD.ROMhttp://nuclearscripting.com/other/sansafw/PP5022.MI4MD5:
6a10d79a2e13f6b4a7c8243f422e5608 BL_SD_BOARDSUPPORTSD.ROM
d9f946067844e2a24fcbb6cfedb75057 PP5022.MI4
And downloading i2c-e280.bin (and e200tool) from Daniel!
http://daniel.haxx.se/sansa/e200tool.html 2. Running the e200tool as root to flash the i2c:# ./e200tool i2cprogram i2c-e280.bin
In this process the device became:
6666:e200 Prototype product Vendor ID
(I believe this is "manufacturing mode")
NOTE I had a lot of trouble running the e200tool. There were two consistent issues: timing out initializing USB stub, or timing out and not finding device 6666:e200. There has been mention in the forums of needing to hold "rec" when flashing. I did this but also needed to "jigger" the connection! After one or two timeouts, I would unplug the player, plug back in, and within 1-2 seconds run the e200tool i2cprogram again. After a few tries it would suddenly see the device and successfully write!NOW at this point the device was a Sandisk player - 6666:e200 was necessary to get this flashed! lsusb showed:
0781:0720 SanDisk Corp.
At this point the ROM would survive a reboot! lsusb still showed the device as 0781 Sandisk. However it was still a black screen! But, the working i2c enabled the player to temporarily go into recovery mode and go to the next step:
3. Flash/execute the downloaded boot loader on the player:# ./e200tool recover BL_SD_BOARDSUPPORTSD.ROM
Still took some jiggering of the connection! Up until now I had been booting the player with the "hold" button enabled and "rec" held down. Unfortunately after loading the boot rom, the player said HOLD was locked and immediately rebooted! I think the ROM would execute in memory, but get lost if the device was powered off. SO there needed to be a way to load and execute the boot loader without the device resetting! I found I did not need to use "hold" at all - just power the device on. After reconnecting and re-flashing a few times, I got a successful boot rom flash. The Sansa said the image failed and went into recovery mode!
4. Formatting the recovery partition:With the device still connected, recovery mode made a USB volume called "16MB-FORMAT" appear on the computer. No matter how many times I copied boot loader .rom or .mi4 firmware files, after disconnecting, the device said they would fail loading the image! The problem was that even though it looked ok, I previously had formatted the entire volume and the partition wasn't valid!
I had to
create and save a blank file named sansa.fmt on the recovery partition. The file is nothing special -
the file name tells the Sansa to reformat!After disconnecting, the Sansa read that it was formatting. It took a few minutes but then finished successfully! Unfortunately , it still would not boot right - still booted to a blank screen with the blue light!
HOWEVER the previous steps now enabled a working recovery partition to be accessible. When the Sansa booted, I was able to flash/execute the boot loader again! Previously this went straight to recovery mode, but now it went normal mode - but it was hung up! It was necessary to get back into recovery mode by
a) pushing HOLD and holding REC while
b) flashing the boot loader and while
c) it booted. Holding those buttons led to recovery mode, and now showed a
valid "16MB-FORMAT" USB recovery drive on the computer! This made the next step possible:
5. Flashing the firmware and boot loader Using the step 3 and 4 procedures, I was able to temporarily bring up recovery mode with a VALID recovery partition. Now I was able to copy the boot loader and firmware files onto the partition. Another issue here - the player did not recognize the file names correctly - apparently there are two different possible names and they are case sensitive!
I saved
BL_SD_BOARDSUPPORTSD.ROM
and
PP5022.MI4
on the recovery partition but the device did not see them. After a disconnect, the device rebooted without saying anything about an image file! So I had to rename the files "using the filenames for the Hebrew bootloader and firmware":
PP5022.MI4 to firmware.mi4
BL_SD_BOARDSUPPORTSD.ROM to pribootLoader.rom
After disconnecting, the Sansa saw the files and flashed, and everything worked 100%! All the mp3s etc were gone too - but at least it worked!
I hope this helps some others out there who have reported similar issues.
THANK YOU THANK YOU to Daniel for the files and the great work on the e200 tool, along with all the Rockbox developers, everyone who has posted in the e200 "brick" threads, especially chrisjs169 (chrisjs162216 on the anythingbutipod forums which were a HUGE help, and JSV on those forums for the "sansa.fmt" trick) !
w00t!++ RockBox Rules!