What should happen while flashing the kernel?

Posted by: Gary

What should happen while flashing the kernel? - 07/02/2002 01:00

For programs that flash the kernel, such as autoHijack, what mode should they put the empeg into while flashing the kernel? Here's the problem as I'm thinking through it:

1. We could do nothing. But if the empeg is playing music, several pauses will interrupt the playing music. Ick.

2. We could just put the player in standby mode. But then we can't send messages to the screen that say "Now upgrading kernel, please wait."

3. We could send a pause command _if_ music is playing. But how can the program tell that music is playing?

4. We could just send a 'pause' command regardless of whether or not music is playing. But aren't the remote commands relative? That is, if the music is playing, the pause button pauses it. But if the music is paused, the same button starts it playing again...

5. We could turn the volume down. But how do we know how far back up it needs to returned later? Also, the listener misses audio because quieting doesn't stop the playing.

6. We could send a hush command, but hush doesn't hush all the way. The attenuation is set in config.ini. Is there a way to temporarily set hushpercent=100?

7. What if the player is in aux or tuner mode? Will the solution that works in one mode work in all of them?

We need a 'stop playback, but don't turn off the display' command.

Any ideas?

Gary
Posted by: tfabris

Re: What should happen while flashing the kernel? - 07/02/2002 01:16

Um, I could be mistaken about how the Hijack version of the code handles it since I've only seen serial-port flashing in action, but isn't flashing done by the boot PROM, and its behavior is totally out of our control?
Posted by: andy

Re: What should happen while flashing the kernel? - 07/02/2002 03:12

No, flashing via HiJack is done while the player is running.
Posted by: mlord

Re: What should happen while flashing the kernel? - 07/02/2002 07:07

Hijack actually contains NO CODE to flash a kernel. Instead, it creates a /proc directory entry for the Empeg flash driver's "kernel" partition. Writing a file to "/proc/empeg_kernel" (using, say, kftpd for the transfer) therefore sends data to the flash driver, which duly writes it to the flash memory space reserved for the kernel.

Cool, eh?

There are also kernel "devices" for other flash areas, and this same mechanism could be tweaked to allow the Logo Editor to upload new logos if we wanted.

Personally, I'm thinking of a Disk-based app for the player that would have a collection of 100-200 logos on disk, and after each bootup it could flash a randomly-chosen new one for display on the next boot..

..
Posted by: mlord

Re: What should happen while flashing the kernel? - 07/02/2002 09:23

Hijack v187 now includes some fixes to the Empeg flash driver, to prevent the lack of response and playback interruptions previously experienced.
Posted by: frog51

Re: What should happen while flashing the kernel? - 07/02/2002 09:52

That sounds cool - randomly chosen TuxMuch graphic would stop you getting bored. Not that I am bored, but 6 hours night driving with "Don't Panic" in the HHGTTG font jumping away at me 'cos I couldn't be bothered changing to something else eventually made my eyes go weird.

Although I guess I'd have to use as much effort to reboot as select next visual.

Hey ho.
Posted by: bonzi

Re: What should happen while flashing the kernel? - 07/02/2002 13:13

Serial 'pause' - w - is not a toggle (as opposed to play/pause on the front panel or remote). It pauses the player if it is playing, does nothing otherwise. 'Unconditional play' is space.