DMP1 Replacement Kernels
From Omnifi Wiki
| Quick Links |
![]() |
| Related topics |
|
Quotation by from Dan Z's email to openfi_dev group on November 1, 2005
One of the major stumbling blocks to getting a replacment kernel has been the custom drivers that they are using. If we're going to use a replacement kernel, these will all need to be recreated in some fashion.
The other major stumbling block is the lack of a serial port. Not having a serial port is problematic for two reasons:
- Having access to the first serial port is the only known way to fix a bad flash. If you flash a bad kernel into the system, and you don't have access to the first serial port, you've just killed your system.
- Without a serial port, it is virtually impossible to get any debugging information out of the system, which makes it impossible to bring up a new kernel.
Ok, so how do we address these issues?
Upon Andy's suggestion, I took a look at something called Kexec. Kexec allows you to load and execute a kernel off of disk from within linux*, which means you can do it without have to write it to flash!
And, after a bit of porting, I was able to get it running on the DMP1. So, we can now load a kernel without risk of destroying the flash! This is a major step.
That solves issue #1, but we still need a way to get debugging output out of the box.
So I started thinking that maybe we could use the LCD as an output device, instead of using a serial port.
<<Section removed for another Wiki page>>
So, now we have a way to get debugging output from the DMP1. Simply unplug the front panel, wire two of the pins on the back of the DMP1 to a DB-9 serial connector, hook it up to your PC, and with a little bit of help from some magic software, voila!
And with that, and a few days of effort... Drumroll please...
I've brought up a fresh kernel! :-)
There is still lots of work to be done. For example, none of the custom drivers are running on it yet, so it is useless for running Openfi.
But it does provide a level of flexibility that the current kernel lacks -- for example, I've been booting my system using an NFS root filesystem, which makes development a snap.
And eventually, it will do everything that the current kernel does, and more!
When I get things cleanup up a bit, I will start posting the source code. It will most likely end up in the SourceForge CVS repository.
Anyway, that's all for now...
Good night,
-Dan
See Also
- DMP1 Reverse Engineering Notes Findings by Andy Poling on how the faceplate talks to the DMP1
- DMP1 System Time Hacking Findings on how to work the onboard Real Time Clock and Wake Up Alarm (for those wireless syncs!)
- Logging Into The DMP1 Get on there and play!
- DMP1 Replacement Kernels Dan Zenchelsky's findings on loading a replacement kernel into the DMP1
- DMP1 Enabling a Serial Port Ingenious findings by Dan Zenchelsky on how to gain access to DMP1 kernel through a hidden serial port
External Links
Lumkichi 13:22, 9 Nov 2005 (CST)
