Fix Clock

From OLPC
Revision as of 04:01, 26 December 2007 by Gnu (talk | contribs) (Add note about developer key as a way to circumvent this problem, describe the root of the problem, and how different firmware versions act.)
Jump to navigation Jump to 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 D05, the firmware would turn on the screen, but wouldn't let you boot anything if the RTC date was less than Aug 2007. >= D05 will still display the message saying that the date is wrong, but will process to boot actos. (2) == D06 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!

All of this hassle is caused because OLPC chose to ship you the laptop that you purchased "write protected", i.e. locked against its owner (you). Normally, the laptop would just complain about the clock, and then it would let you enter commands, which would let you reset the clock and fix the problem. Instead, you have this hassle. If and when you ever get this problem resolved, immediately go see Activation and Developer Keys for how to turn off this false-security once and for all on your laptop, using the "disable-security" command, so it can never bite you again. In other peoples' products, such locks against owners are called Digital R...... Management, but OLPC staff get mad if you call it this, so don't.

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.