Hi,
What's the most comfortable way to switch between normal and fallback images in LinuxBIOS on AMD64. I was using lxbios from http://www.llnl.gov/linux/lxbios/lxbios.html
But when changing the parameters to Normal, the next boot LinuxBIOS still says "Invalid CMOS LB checksum" and it sets "boot_option" back to Fallback.
Stefan
On Fri, 21 Jan 2005, Stefan Reinauer wrote:
But when changing the parameters to Normal, the next boot LinuxBIOS still says "Invalid CMOS LB checksum" and it sets "boot_option" back to Fallback.
cmos_util is a good tool that we use here.
ron
On Fri, 2005-01-21 at 12:19 +0100, Stefan Reinauer wrote:
But when changing the parameters to Normal, the next boot LinuxBIOS still says "Invalid CMOS LB checksum" and it sets "boot_option" back to Fallback.
This isn't AMD64-specific, but Ron pointed me to the solution for issues with invalid CMOS settings on my x86 box a few days ago, so hopefully this will work for you too. There's probably an easier/shorter path, but after some time figuring out how to use the tools, the following steps got me past my cmos checksum problems. Note that I extract an image to disk and manipulate that until it's correct, then write it back to cmos. If I understand the cmos_util tool correctly, that isn't strictly necessary -- it could do the manipulations directly on the cmos. However, I want to see the results of what I do before I actually write the changes to cmos.
- Grab the cmos_util package from "ftp://ftp.lnxi.com/pub/linuxbios/utilities/cmos_util".
- Build the cmos_util package, it provides three executables: cmos_to_file, cmos_util, file_to_cmos. I put these in /usr/local/bin.
- Create a new working directory for doing cmos stuff, cd to it, and copy over the cmos.layout file for your board from the LB distribution, it should be in "src/mainboard/<mfr>/<board>/cmos.layout". As long as you don't change the name of this file, the cmos_util tool will use it automatically.
- Get an image of your current cmos in to a file: cmos_to_file image
- Extract the settings: cmos_util -d --image image > settings
- Edit the settings file the way you want it, it's pretty self-explanatory. Read the cmos.settings.5 manpage that comes with the cmos_util package. Note that you can tell in the comments at the top of the file if the checksum is not correct.
- Apply the settings and create a new image: cmos_util -u --image image --settings settings --output-image image.new
- Verify that the new image has your updated settings and the checksum is correct: cmos_util -d --image image.new
- Write the new image out to cmos: file_to_cmos image.new
In my case, every time my LB build doesn't work and I have to reboot a board with the OEM bios, it borks the cmos checksum again. I've learned that in this situation, right before I shutdown to try a new LB build, I repeat the last step above. This pushes the updated image down to cmos, so the checksum is correct when I boot with LB the next time around.
Hope this helps...
-Al