Power Log Collector: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
Line 5: Line 5:
'''Note''': will not work on secured laptops without signing.
'''Note''': will not work on secured laptops without signing.


There are two versions provided here. One uses Tiny Core Linux, and the other uses Open Firmware. The Tiny Core Linux version does not work for XO-1.75 yet, see the [[#Open Firmware|Open Firmware]] section for an XO-1.75 version.
There are two versions provided here. One uses Tiny Core Linux, and the other uses Open Firmware.

{| border="1" cellspacing="0" cellpadding="2" width="100%" class="wikitable"
! collector
! supported hardware
! minimum firmware
! time taken
|-
|[[#Tiny Core Linux|Tiny Core Linux based]]
| XO-1 XO-1.5
| none
| a couple of minutes
|-
|[[#Open Firmware|Open Firmware based]]
| XO-1 XO-1.5 XO-1.75
| [[OLPC_Firmware_q2f09|Q2F09]] [[OLPC_Firmware_q3c05|Q3C05]] [[OLPC_Firmware_q4d12|Q4D12]]
| less than a minute
|}


== Tiny Core Linux ==
== Tiny Core Linux ==

Revision as of 07:45, 30 April 2012


The Power Log Collectors boot an XO and copy the power logs to itself before shutting the laptop down.

Note: will not work on secured laptops without signing.

There are two versions provided here. One uses Tiny Core Linux, and the other uses Open Firmware.

collector supported hardware minimum firmware time taken
Tiny Core Linux based XO-1 XO-1.5 none a couple of minutes
Open Firmware based XO-1 XO-1.5 XO-1.75 Q2F09 Q3C05 Q4D12 less than a minute

Tiny Core Linux

How to Use

The XO will collect the power logs, print a message saying has done so and then shut down.

Theory of Operation

  • Based on Tiny Core Linux,
  • An Open Firmware Boot Script selects the XO-1 or XO-1.5 kernel,
  • The initial ramdisk mounts /dev/sda (which should be the first USB drive), and
  • executes rc.local on that drive, which does the collection.

How it was Made

It was made by remastering Tiny Core Linux.

Unpack the initial ramdisk to the current directory:

# gunzip <../initrd.gz | cpio -i

Modify the files as needed, then repack the initial ramdisk:

# find | sudo cpio -o -H newc --quiet | gzip -2 > ../initrd.gz

Then assemble into a .tar.bz2 for download.

rc.local

The script that does the collection:

#!/bin/sh

uname -a | grep _xo1-
if [ $? -eq 0 ]
then
       echo detected xo-1.0
       XO_ROOT=mtdblock0
       XO_FS=jffs2
else
       echo detected xo-1.5
       XO_ROOT=mmcblk0p2
       XO_FS=ext3
fi

mkdir -p /mnt/$XO_ROOT

mount -t $XO_FS -o ro /dev/$XO_ROOT /mnt/$XO_ROOT
mkdir -p /mnt/sda1/power-logs
cp /mnt/$XO_ROOT/home/olpc/power-logs/* /mnt/sda1/power-logs
umount /mnt/$XO_ROOT
mount /dev/sda1 /mnt/sda1 -o remount,ro
sync
echo Power Logs Recovered
echo Shutting down in 10 seconds
echo You may remove the USB now
sleep 10
poweroff

Open Firmware

A bootable filesystem for USB drive which will save the power logs from a set of OLPC laptops for later analysis, for use on XO-1.75, XO-1.5, and XO-1.

Preparing the drive

Select a USB drive with at least 128MB capacity, and preferably nothing important on it.

This will create a boot directory containing the program.

This works with either the common FAT filesystem or ext2.

  • for FAT filesystems, please use dosfsck, scandisk, Disk Utility or other tools to ensure the filesystem is without errors,
  • for ext2 filesystems, please use Open Firmware Q4D12 or later.

Using the drive

  • ensure the laptop is off,
  • insert the drive,
  • press the power button,
  • wait for the green screen,
  • remove the drive,
  • move to the next laptop.

The data will be placed in a pwr.tar file on the USB drive.

Theory of operation

The first time it is booted, the program creates a pwr.tar file on the USB drive containing the power logs.

The second and subsequent boots append new entries to the pwr.tar file.

Running the collector twice on a laptop is harmless, in that the duplicate entries added to the file supersede the previous entries.