android
  #1  
Old 07-28-2007, 08:15 PM
digerati1338's Avatar
digerati1338 digerati1338 is offline
Member
 
Join Date: Apr 2007
Location: Aurora, CO
Posts: 337
Default Rockbox ReverseBL: OF First

I realized that there was never an 'official' ReverseBL thread here, and questions seem to keep popping up so I decided to make this thread.

Current Version: 2.1, 2007-07-31
Background:
The ReverseBL will load the OF by default and Rockbox with the select button(this is easier to press than left). Quite simple.

ReverseBL Page: http://e200.digerati1338.googlepages.com/reversebl

Installation:
  1. Download the ReverseBL.
  2. Download sansapatcher.
  3. Run "sansapatcher.exe -a ReverseBL<date>.mi4"
  4. Unplug and reboot Sansa.
I just released an updated version with a fixed sansapatcher bug and includes the ability to dump hidden firmware partition with the up button (included in Rockbox bootloader a while back). This is probably useful for recovery purposes.

A patch against rockbox SVN is available on the site for anyone that wants the source.
__________________
Rockbox digibuild
Player: SanDisk Sansa e200
Firmware: Rockbox digibuild
Reply With Quote

Advertisement [Remove Advertisement]

  #2  
Old 07-29-2007, 09:48 PM
Llorean Llorean is offline
Rockbox Developer
 
Join Date: Dec 2006
Posts: 397
Default

Just as a note, all bootloaders that are not the binary built bootloader provided at download.rockbox.org are considered "unsupported builds." We provide a specific SVN revision compiled under specific condition so that we know what is to be expected because different versions of bootloader can have strange effects on the firmware (since some hardware initialization takes place there) so just like we don't support builds with patches, we don't support *any* bootloader or build running on a bootloader that isn't the one we provide, because we can't know that the bootloader isn't causing something strange to happen. Sometimes they're so quirky that even a different compiler version can completely break them, even when there are no changes to the code.
Reply With Quote

  #3  
Old 07-30-2007, 01:12 PM
Titons Titons is offline
Junior Member
 
Join Date: Jan 2007
Posts: 18
Default

Quote:
Originally Posted by Llorean View Post
Just as a note, all bootloaders that are not the binary built bootloader provided at download.rockbox.org are considered "unsupported builds." We provide a specific SVN revision compiled under specific condition so that we know what is to be expected because different versions of bootloader can have strange effects on the firmware (since some hardware initialization takes place there) so just like we don't support builds with patches, we don't support *any* bootloader or build running on a bootloader that isn't the one we provide, because we can't know that the bootloader isn't causing something strange to happen. Sometimes they're so quirky that even a different compiler version can completely break them, even when there are no changes to the code.
Sorry... I didn't get it. Are you saying that using alternative/modified bootloaders like this reverse one is not recommended?
Reply With Quote

  #4  
Old 07-30-2007, 01:44 PM
adrift's Avatar
adrift adrift is offline
Junior Member
 
Join Date: Jul 2007
Posts: 67
Default

Quote:
Originally Posted by Titons View Post
Sorry... I didn't get it. Are you saying that using alternative/modified bootloaders like this reverse one is not recommended?
Lol, I'm betting that's it in a nutshell.
Reply With Quote

  #5  
Old 07-30-2007, 07:29 PM
Titons Titons is offline
Junior Member
 
Join Date: Jan 2007
Posts: 18
Default

Quote:
Originally Posted by adrift View Post
Lol, I'm betting that's it in a nutshell.
No... I really did not understand, but now I get it.

BTW, what does "in a nutshell" means? (I'm brazillian).

I found this:
In a nutshell is an idiom. It means “in a few words” or concisely. It is the act of summing up the facts in a brief manner but containing all the relevant information. It is something that is described in as few words as possible. Thus this idiom is used to introduce concise summary. It is a hyperbolic statement or expression.
Reply With Quote

  #6  
Old 07-30-2007, 01:53 PM
dtrust dtrust is offline
Junior Member
 
Join Date: Jun 2007
Posts: 39
Default

digi,

I just tried the reverse bootloader. It didn't work for me. (using a Sansa e280, no micro SD card).

It DID boot into the OF first, but I couldn't get it to boot into rockbox using either the left button OR the select button. FWIW, the initial Sansa screen came up, then the screen blanked, then showed the 'all text bootload screen', as I call it, then just booted into the OF.

I went back and reinstalled the normal bootloader and everything is fine again. (boots to rockbox first).

Followed the instructions on your page about:
"sansapatcher -a reversebl.mi4"

I don't know what else I may have done wrong. Any thoughts?
Reply With Quote

  #7  
Old 07-30-2007, 01:54 PM
Llorean Llorean is offline
Rockbox Developer
 
Join Date: Dec 2006
Posts: 397
Default

Quote:
Sorry... I didn't get it. Are you saying that using alternative/modified bootloaders like this reverse one is not recommended?
You can do whatever you want, but don't report any bugs to us while using it. It's unsupported.

We can't fix bugs in other people's code, so don't expect us to, and don't come to us with them, basically. If you didn't download it from rockbox.org, it's not ours and we don't support it. Even if you *think* it's our part of the code causing the problem, test it with our version, and be using only our version any time we ask you for more information.
Reply With Quote

  #8  
Old 07-30-2007, 03:46 PM
Zim's Avatar
Zim Zim is offline
Junior Member
 
Join Date: Jul 2007
Location: I live in a giant bucket...
Posts: 17
Default

What does this do? I don't realy understand what you are talking about. I mean, I know it loads the origional Firmware by pressing Select, but is that all? Does it do anything else, or is it just an easier way of doing what we've been doing? I'm sorry, I just don't get why we actually need this.
Reply With Quote

  #9  
Old 07-30-2007, 04:58 PM
adrift's Avatar
adrift adrift is offline
Junior Member
 
Join Date: Jul 2007
Posts: 67
Default

According to the Original Post what it does is load the Original Firmware first and allows you to load the Rockbox firmware second by pressing the select button. With the official bootloader, Rockbox is loaded first.
Reply With Quote

  #10  
Old 07-30-2007, 07:22 PM
digerati1338's Avatar
digerati1338 digerati1338 is offline
Member
 
Join Date: Apr 2007
Location: Aurora, CO
Posts: 337
Default

Unsupported simply means that any bugs/problems are not because of rockbox and should not be reported to rockbox. Instead, ask here.
__________________
Rockbox digibuild
Player: SanDisk Sansa e200
Firmware: Rockbox digibuild
Reply With Quote

  #11  
Old 07-30-2007, 07:58 PM
digerati1338's Avatar
digerati1338 digerati1338 is offline
Member
 
Join Date: Apr 2007
Location: Aurora, CO
Posts: 337
Default

That's exactly what "in a nutshell" means. Same as "simply".

I was able to reproduce the bug where Rockbox won't load. I was also able to produce it in my MultiBL. I suspect it has something to do with sansapatcher, since I didn't use that on the last version.

Update: I've isolated sansapatcher to be causing the problem. Placing the mi4 on the player and naming it PP5022.mi4 works just fine. This has me a bit confused. What exactly does sansapatcher do when you run it with the -a option? I was under the impression that that would do the same thing as putting the PP5022.mi4 file on the player.

For now, I'll modify the instructions not to use sansapatcher.
__________________
Rockbox digibuild
Player: SanDisk Sansa e200
Firmware: Rockbox digibuild

Last edited by digerati1338; 07-30-2007 at 08:24 PM. Reason: Update
Reply With Quote

  #12  
Old 07-30-2007, 08:59 PM
cpchan's Avatar
cpchan cpchan is offline
Ultra Senior Member
 
Join Date: Feb 2007
Location: Toronto, Ontario
Posts: 2,012
Default

Quote:
Originally Posted by digerati1338 View Post
This has me a bit confused. What exactly does sansapatcher do when you run it with the -a option? I was under the impression that that would do the same thing as putting the PP5022.mi4 file on the player.
When using the "-a" option you need to specify the name of the bootloader to install, ie.

Code:
sansapatcher.exe -a PP5022.mi4
If you don't use any options, sansapatcher will install the bootloader that is embedded in the program.

Charles
Reply With Quote

  #13  
Old 07-30-2007, 09:14 PM
Llorean Llorean is offline
Rockbox Developer
 
Join Date: Dec 2006
Posts: 397
Default

Also, -a just adds the bootloader.

Basically, the firmware partition on the disk looks like this normally:
[FIRMWARE........]
When you -a an MI4 you get
[BOOTLOADER|FIRMWARE]
If you -a a different MI4 it overwrites the bootloader portion. But the firmware is kept there, and a properly working bootloader loads the firmware from the firmware partition. OF.MI4 or whatever it was called isn't used by the official version of Rockbox anymore, though support for it still exists it should never be necessary.

If you put PP5022.MI4 on the player, and it's *just* the bootloader, you get
[BOOTLOADER......] instead, without any firmware there, meaning it must load from the OF.MI4.

It's possible you've broken the ability to load from the firmware partition, but it's detecting the OF there, failing to load it, and crashing, when you're using sansapatcher.
Reply With Quote

  #14  
Old 07-30-2007, 10:47 PM
digerati1338's Avatar
digerati1338 digerati1338 is offline
Member
 
Join Date: Apr 2007
Location: Aurora, CO
Posts: 337
Default

Thanks Llorean. That's what I needed.

So I am guessing that sansapatcher needs to be run without rockbox installed so that it can take the firmware that is currently on the player (OF) and move it to the firmware partition. This removes the need for the OF.bin file.

AHA! I looked back at the bootloader code and recognized this behavior in a part I had skimmed over before. When loading the Original firmware, first it checks the firmware partition, then tries OF.bin.

This leads me to a couple more questions:
How big is the firmware partition, and could several different firmwares be put on it?

And does anyone know specifically what this function does, in main-pp.c:
"rc = load_mi4_part(loadbuffer, pinfo, MAX_LOADSIZE, usb);"

1 Last question: Is there any big advantage to doing it the sansapatcher way, aside from not needing the OF.bin file?
__________________
Rockbox digibuild
Player: SanDisk Sansa e200
Firmware: Rockbox digibuild
Reply With Quote

  #15  
Old 07-30-2007, 11:33 PM
cpchan's Avatar
cpchan cpchan is offline
Ultra Senior Member
 
Join Date: Feb 2007
Location: Toronto, Ontario
Posts: 2,012
Default

Quote:
Originally Posted by digerati1338 View Post
So I am guessing that sansapatcher needs to be run without rockbox installed so that it can take the firmware that is currently on the player (OF) and move it to the firmware partition. This removes the need for the OF.bin file.
Not true. The OF is already in the 16 MB hidden partition.
  1. You install rockbox the usually way (the rockbox firmware is located in the ".rockbox" directory.
  2. Optionally you can place an unencrypted OF in the root directory of the player. This will speed up the loading the OF. You will probably should do this if you have installed Rockbox the old way.
  3. Unplug and then run sansapatcher.

Please refer back to the rockbox installation instructions.

http://download.rockbox.org/manual/r....html#x4-60002

Quote:
How big is the firmware partition, and could several different firmwares be put on it?
  1. The partition is 16 MB.
  2. There is no way to choose different firmware to load from the partition.

Quote:
1 Last question: Is there any big advantage to doing it the sansapatcher way, aside from not needing the OF.bin file?
I don't understand this question.

Charles
Reply With Quote

  #16  
Old 07-30-2007, 10:56 PM
Llorean Llorean is offline
Rockbox Developer
 
Join Date: Dec 2006
Posts: 397
Default

The main advantage is that you can reformat your player and still be safe (have a USB mode, for example). But also, you've got if I recall 20mb of space being used so you might as well store the original firmware in it, rather than leaving it sitting around empty (or nearly so) with just the Rockbox bootloader.

That's the real advantage, simply safety (especially since we don't have our own USB mode). In fact once we have a USB mode of our own, you'll be able to sansapatcher -a rockbox.mi4 and put Rockbox there. You'll have to do it every time you want to update, but it will make boot time noticeably faster (or should).

But yes, Sansapatcher should ONLY be run on either a device that has only the retail firmware installed, or a device that has the retail firmware + a sansapatcher installed bootloader (sansapatcher will detect it, and remove it and then add the newer version, rather than just scooting it over some more).

Unfortunately, I don't know what that function does.
Reply With Quote

  #17  
Old 07-30-2007, 10:58 PM
digerati1338's Avatar
digerati1338 digerati1338 is offline
Member
 
Join Date: Apr 2007
Location: Aurora, CO
Posts: 337
Default

Thanks for your help. You've at least given me a solid starting point for figuring this out.
__________________
Rockbox digibuild
Player: SanDisk Sansa e200
Firmware: Rockbox digibuild
Reply With Quote

  #18  
Old 07-30-2007, 11:49 PM
Llorean Llorean is offline
Rockbox Developer
 
Join Date: Dec 2006
Posts: 397
Default

One could certainly make the bootloader allow you to pick a firmware from the hidden partition if you can fit two in there (I'm not sure how big the of.mi4 is, but use that for reference).
Reply With Quote

  #19  
Old 07-30-2007, 11:50 PM
digerati1338's Avatar
digerati1338 digerati1338 is offline
Member
 
Join Date: Apr 2007
Location: Aurora, CO
Posts: 337
Default

Quote:
Optionally you can place an unencrypted OF in the root directory of the player. This will speed up the loading process. You will probably should do this if you have installed Rockbox the old way.
I see no reference to this in the sansa Rockbox manual. Are you saying to run mi4code on the OF PP5022.mi4 to get PP5022.bin, and then put that on the root of the player?


Back to the ReverseBL: I figured out what I need to change in the code to get it to work with sansapatcher, and will get a new version out tomorrow. The fix won't work with the MultiBL, which is what I was referring to when I asked about several firmwares on the partition.

Thanks for the help.
__________________
Rockbox digibuild
Player: SanDisk Sansa e200
Firmware: Rockbox digibuild
Reply With Quote

  #20  
Old 07-31-2007, 12:02 AM
cpchan's Avatar
cpchan cpchan is offline
Ultra Senior Member
 
Join Date: Feb 2007
Location: Toronto, Ontario
Posts: 2,012
Default

Quote:
Originally Posted by digerati1338 View Post
I see no reference to this in the sansa Rockbox manual. Are you saying to run mi4code on the OF PP5022.mi4 to get PP5022.bin, and then put that on the root of the player?
Yes, rename it to PP5022.mi4 (older OF bootloader) or firmware.mi4 (newer OF bootloader):

http://daniel.haxx.se/sansa/e200.html

Alternatively, you can download one from here:

http://daniel.haxx.se/sansa/mi4.html

Charles
Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



All times are GMT -5. The time now is 10:14 AM.