[Server-devel] [UKids] Re: Non-Network Time Protocol for Haiti?

Adam Holt holt at laptop.org
Sun Mar 6 20:54:40 EST 2016


On Sun, Mar 6, 2016 at 8:43 PM, Tony Anderson <tony_anderson at usa.net> wrote:

> Hi, Adam
>
> That is surprising. I thought that was the goal of your micro server
> program. Does this mean that you are using the laptops as clients with
> access to
> an sdcard local to that machine only?
>

In some Haiti schools, yes: self-sufficient XO-1's each containing 32GB SD
cards and there is no school server, no network, no food for the kids, etc.

PS Am cc'ing School Server mailing lists so that your
offline-NTP-via-schoolserver contribution below is appreciated!

The backup is performed on the XO. This routine provides the
> 'synchronization'.
>
> import os, re, sys, time
> from urllib2 import URLError, HTTPError, urlopen
> from subprocess import Popen, PIPE, call
> import datetime
>
>
>
> def sync_time_to_xs():
>
>     try:
>         xstime = urlopen('http://schoolserver/kls/time')
>     except:
>         print 'urlopen exception', sys.exc_info()[2]
>            return
>     response = xstime.read().replace('\n','')
>     """
>     cmd = 'su'
>     call(cmd, shell=True)
>     cmd = 'date --set="' + response + '"'
>     call(cmd, shell=True)
>     call('exit ',shell=True)
>     """
>     txtout = 'sudo date --set="' + response + '"'
>     print txtout
>     fout = open('/tmp/xstime','w')
>     fout.write(txtout)
>     fout.close()
>
> kls is a django app so the url gets time 'now' from the server and returns
> it via urllib2. The txtout uses subprocess to execute the date set command.
> The problem is that the date --set command must be done by root from a tty
> (e.g. cli).
>
> So, I don't know if xsce is using django. In any case, a script urllib
> command can be made to retrieve the current time on the school server. A
> script executed from the XO can use this time to set the XO time. All of
> this could be set up as a button in the control panel (cpsection). Such a
> button would meet the tty requirement. Naturally, all of this depends on
> having the xsce server with the correct time (in any case as the master
> whether correct or not). The date command allows for showing the time in
> the local timezone although the master time is kept in UTC.
>
> Tonu
>
>
> On 03/07/2016 08:36 AM, Adam Holt wrote:
>
> On Sun, Mar 6, 2016 at 6:58 PM, Tony Anderson <tony_anderson at usa.net>
> wrote:
>
>> Adam
>>
>> I have a script that attempts to accomplish this through ds_backup. The
>> goal is to have all of the clients with the same time as the school server
>> (may not be internet accurate but at least gives some consistency to time
>> stamps). The problem is that this must be done by a command issued from a
>> tty. In the case
>> of xsce, this could be done at connect-time when the XO1 time is off by
>> more than X.
>>
>
> Cool, please post?
>
> My problem is there are many school in Haiti that do not and will not have
> school servers -- for the forseeable future -- so let's attack this problem
> from both angles -- thanks!
>
> Tony
>>
>>
>> On 03/07/2016 01:19 AM, Adam Holt wrote:
>>
>> (Apologies I forgot to mention that auto-mounting and auto-dismounting
>> the USB stick is likely the hard part -- untrained teachers simply cannot
>> handle mount-point ambiguities, if they can handle the command-line at all
>> -- suggestions on how to solve this elegantly most appreciated!)
>>
>> PS we are happy to mandate that teachers must supply an empty/formatted
>> FAT32 stick or similar if that's the best practice?
>>
>> On Sun, Mar 6, 2016 at 12:08 PM, Adam Holt < <holt at laptop.org>
>> holt at laptop.org> wrote:
>>
>>> In short, <http://NTP.org>http://NTP.org - by - sneakernet, not carrier
>>> pigeon :>
>>>
>>>
>>> On Sun, Mar 6, 2016 at 12:06 PM, Adam Holt < <holt at laptop.org>
>>> holt at laptop.org> wrote:
>>>
>>>> Clarifs below~
>>>>
>>>> On Sun, Mar 6, 2016 at 11:51 AM, Adam Holt < <holt at laptop.org>
>>>> holt at laptop.org> wrote:
>>>>
>>>>> In Haiti many teachers and kids would prefer the time was set
>>>>> correctly on their XO-1 laptops, no matter if the time is off by a couple
>>>>> minutes.  So they could really use a script that creates the following
>>>>> /boot/olpc.fth, writing it out to an attached USB stick:
>>>>>
>>>>> \ Open Firmware
>>>>> select /rtc decimal 0 0 0 1 1 1804 set-time
>>>>> \ Optionally unlock XO
>>>>> disable-security
>>>>>
>>>>> Then the teacher/operator can walk around the room to fix all XO's
>>>>> clocks (refreshing the USB time as often as she/he wants).  Of course not
>>>>> every day can be Haitian Independence Day (Jan 1 1804!) so what the script
>>>>> should really do is create a timestamp 1 minute into the future, filling
>>>>> out those 6 numbers above correctly.
>>>>>
>>>>> The untrained operator (teacher typically) will then move the USB
>>>>> stick to the XO(s) in need, to set their RTC's (real-time-clocks).  Some
>>>>> ambitious teachers will want to do this every month/semester it appears, to
>>>>> sanitize/harmonize all clocks in their classroom/school as much as possible!
>>>>>
>>>>> Any recommended approaches to getting the UX clean, so that such
>>>>> untrained operator have a visual confirmation that the USB stick has been
>>>>> updated with a proper time-stamp, and (perhaps just as important??) the
>>>>> stick mounted+unmounted effortlessly without too much risk, when this USB
>>>>> stick is recreated hundreds of times within 1 day?  A non-confusing command
>>>>> line script can work, that says basically 2 things:
>>>>>
>>>>>    - PLEASE INSERT A USB STICK
>>>>>    - USB STICK READY: REMOVE IT NOW!
>>>>>
>>>>> The less keyboard activity required from the teacher the better.  But
>>>>> I'm tempted by command syntax as follows:
>>>>>
>>>>
>>>> usb-timestamper <minute*s*-into-the-future>
>>>>
>>>>
>>>>> Such that running "/bin/usb-timestamper 5" would create USB sticks
>>>>> timestamped 5 minutes into the future.  The default should be 1 minute into
>>>>> the future, so running "/bin/usb-timestamper" would be equivalent to
>>>>> "/bin/usb-timestamper 1".
>>>>>
>>>>> Conclusion: am just looking for general suggestions from everyone as
>>>>> we cook up something simple!
>>>>>
>>>>
>>>> We do not want to rely on networking or mesh At All.  KISS (key it
>>>> simple/stupid) at the firmware level allows the teacher/operator to move
>>>> thru the classroom quite rapidly, fixing the time on each XO laptop as
>>>> often as s/he wants.  2 examples scenarios, showing how this will be used:
>>>>
>>>>    1. Teacher/operator may choose to run "usb-timestamper 10" once as
>>>>    s/he enters each classroom, if she wants to timestamp the USB stick 10min
>>>>    into the future, and then apply this rapidly to all 50 XO's in a
>>>>    classroom/lab over the coming 20minutes.  Works great ifs/he does not care
>>>>    that the XO's clocks are off by +/- 10min!
>>>>    2. Or if teacher/operator is perfectionist, then usb-timestamper
>>>>    (interactive command-line program) can be left running on hir own XO laptop
>>>>    that s/he carries around the room -- updating the USB stick repeatedly
>>>>    while walking around the classroom -- such that each of that room's 50 XO
>>>>    laptops has an almost-exact clock, accurate within a minute or so.
>>>>
>>>>
>>>>>
>>>>> in this case, as USB sticks are the most reliable and quick approach
>>>>> in this case.
>>>>>
>>>>> Clarif: I will of course train the teacher/operator to set the clock
>>>>> correctly on their own XO-1, which will typically be running OLPC OS 13.2.7
>>>>> -- so that all these "offline-NTP sticks" are created based on a reasonably
>>>>> accurate baseline timestamp :)
>>>>>
>>>>> --
>>>>> Unsung Heroes of OLPC, interviewed live @ <http://unleashkids.org>
>>>>> http://unleashkids.org !
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Unsung Heroes of OLPC, interviewed live @ <http://unleashkids.org>
>>>> http://unleashkids.org !
>>>>
>>>> --
>>>> Unsung Heroes of OLPC, interviewed live @ <http://unleashkids.org>
>>>> http://unleashkids.org !
>>>>
>>>> --
>>>> Unsung Heroes of OLPC, interviewed live @ <http://unleashkids.org>
>>>> http://unleashkids.org !
>>>>
>>> --
>> Unsung Heroes of OLPC, interviewed live @ <http://unleashkids.org>
>> http://unleashkids.org !
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Unleash Kids" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to <unleashkids+unsubscribe at googlegroups.com>
>> unleashkids+unsubscribe at googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> Unsung Heroes of OLPC, interviewed live @ <http://unleashkids.org>
>> http://unleashkids.org !
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Unleash Kids" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to unleashkids+unsubscribe at googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> Unsung Heroes of OLPC, interviewed live @ http://unleashkids.org !
>>
> --
> Unsung Heroes of OLPC, interviewed live @ <http://unleashkids.org>
> http://unleashkids.org !
> ---
> You received this message because you are subscribed to the Google Groups
> "Unleash Kids" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to unleashkids+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> Unsung Heroes of OLPC, interviewed live @ http://unleashkids.org !
> ---
> You received this message because you are subscribed to the Google Groups
> "Unleash Kids" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to unleashkids+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
> --
> Unsung Heroes of OLPC, interviewed live @ http://unleashkids.org !
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.laptop.org/pipermail/server-devel/attachments/20160306/58399945/attachment-0001.html>


More information about the Server-devel mailing list