Rockbox General > Rockbox General Discussion

iPod: disable boot to original firmware with "hold"-button

(1/3) > >>

Tron:
Greetings,

I'm a happy Rockbox user for years now, just one thing bothers me a bit: I really don't need to boot into the original firmware any more (I know I can do that while holding "Menu" on boot), but quite often I happen to insert the device into my car adapter while locked (i.e., with the Hold-button on). Of course it always boots into the original firmware, which I don't want.

Is there a way to disable the "boot into original when Hold-button is on"?

Thanks in advance!

saratoga:
I think you'd have to edit the bootloader, compile it and then install it to your player.

Tron:
Yeah, probably. I think I'll check out the source then and see if I find something fitting there.

saratoga:
The ipod ports were before my time, but probably in /bootloader/ there should be an ipod.c or something similar that checks if the hold switch is activated. 

whiskers75:
Specifically, line 367 onwards:

--- Quote ---   if (button_was_held || (btn==BUTTON_MENU)) {
        /* If either the hold switch was on, or the Menu button was held, then
           try the Apple firmware */

        printf("Loading original firmware...");
   
        /* First try an apple_os.ipod file on the FAT32 partition
           (either in .rockbox or the root)
         */
   
        rc=load_firmware(loadbuffer, "apple_os.ipod", MAX_LOADSIZE);
   
        if (rc == EOK) {
            printf("apple_os.ipod loaded.");
            return (void*)DRAM_START;
        } else if (rc == EFILE_NOT_FOUND) {
            /* If apple_os.ipod doesn't exist, then check if there is an Apple
               firmware image in RAM  */
            haveramos = (memcmp((void*)(DRAM_START+0x20),"portalplayer",12)==0);
            if (haveramos) {
                /* We have a copy of the retailos in RAM, lets just run it. */
      printf("RetailOS in RAM, running");
                return (void*)DRAM_START;
            }
        } else if (rc < EFILE_NOT_FOUND) {
            printf("Error!");
            printf("Can't load apple_os.ipod:");
            printf(strerror(rc));
        }
       
        /* Everything failed - just loop forever */
        printf("No RetailOS detected");
       
    } else if (btn==BUTTON_PLAY) {

--- End quote ---

Navigation

[0] Message Index

[#] Next page

Go to full version