Fix Clock

From OLPC
Revision as of 19:35, 8 April 2008 by Riva (talk | contribs) (pipe link)
Jump to: navigation, search

This page is on how to fix a clock on a write protected machine. (These machines don't boot and give the message "The Clock is not set properly. Invalid system date. Stopping." then they power off.)

According to Mitch, there are two different issues with RTC date. (1) Prior to Q2D05, the firmware would turn on the screen, but wouldn't let you boot anything if the RTC date was less than Aug 2007. >= Q2D05 will still display the message saying that the date is wrong, but will process to boot actos. (2) == Q2D06 will not turn on the screen at all if the RTC month field is 0.

The problem can possibly be circumvented by presenting a "developer key" for this machine, on a USB storage stick, at power-on time. The developer key must match the individual machine (it's derived from the serial number and the UUID of the machine). You can find the serial number in the battery compartment, on a sticker; it looks like "CSN74701E2F". The UUID is trickier to get. Seek help from OLPC, either with an email to help@laptop.org (containing your serial number), or by getting on IRC at irc.freenode.net, channel #olpc-help, and asking for help.

If you can't get a developer key for this machine, fixing this requires opening up the laptop and exposing its circuit boards, having a second laptop (XO or otherwise), *plus* having a unique little hardware board called a "serial to USB converter", and some skill in working with bare computer boards. The following instructions are for repair technicians, not for the public!


Take the back off the Laptop

  1. Rotate the screen halfway so you can see the screws underneath the screen. (Two on each side.)
  2. Remove the four screws below the top section of the laptop.
  3. Take off the plate over the screen.
  4. Remove the four screws around the screen.
  5. Slide the screen down.
  6. Remove the four screws holding in the back.
  7. Slide the back off.
  8. Put the screen back in place, and put in a screw or two.

Hook the laptop up to another one through the serial port

  1. Connect a serial port to the laptop
  2. Using a serial to usb converter, connect the laptop to your personal laptop
  3. Use a program like minicom to access the laptop serially
    • How to set up an XO for this
      1. Install any build 650 or later
      2. Boot the laptop, and connect to the internet.
      3. Go to the terminal and: yum install minicom
      4. After it is done, type: minicom -s (to set up minicom)
      5. Go to 'Serial port setup' and hit enter.
      6. Press 'a' and change it to /dev/ttyUSB0, and then hit enter twice.
      7. Go to 'Modem and dialing' and hit enter.
      8. Clear the contents of both 'Init string' and 'Reset string' (you get to those by hitting 'a' and 'b'
      9. Hit enter to get back to the 'configuration' menu.
      10. Go to 'Save setup as..' and hit enter.
      11. Name the setup as 'USB0' and hit enter.
      12. Go to 'Exit from Minicom' and hit enter.
      13. Now, all you have to do is type: minicom USB0 (this will open minicom to the settings you want)

Fix the clock

(all the commands here are done on the laptop that is connected serially to the one with the bad clock)

  1. power up the laptop (one with the bad clock), and hit ‘i’ a bunch (on the laptop connected serially) after seeing ‘Forth’ (easy to miss, just re-try)
  2. Then, do the following commands at the ok prompt. (hitting enter after each one)
    1. ok debug secure-startup (sets a break point at secure startup)
    2. ok resume (runs and breaks at secure start up)
    3. f (gives a forth 'ok' prompt)
    4. ok clock-node @ iselect
    5. ok decimal
    6. ok sec min hour day month year set-time (sec, min, hour, etc. should be numbers correlating to the current date) (e.g. 00 48 3 13 12 2007 set-time)
  3. power off (the laptop with the bad clock), and try booting.