Wednesday, July 18, 2012

Manaiakalani Shininess Part 1 - KttC

Whenever I'm doing a job I'm doing my best to try and make myself redundant. This is a combination of opportunity (if you give people the opportunity to step up, they may just do so), education AND technical development (we're now into the software realm here).

KttC (Keys to the Castle) is a little of all of those things.

So my first mandate was to be able to give the kids a usb stick (drive, pendrive etc.) to be able to image machines with. If they couldn't solve a problem within 5 minutes, re-image.

After a bit of time, I found myself hating the idea of reimaging everything when a simple file system check (almost a joke within the Linux world - fsck) would solve what ailed their machines or a password, if you know how, isn't all that hard to change (though there are a bunch of horribly manual steps to it). Removing a users settings (this is normally only really done within the first few weeks of a 1st year netbook teacher's rein within the classroom) is really simple to do. In fact, this probably constituted the majourity of the things I was having to do.

So I conceived of this idea - to put the administration into a single stick that could not only reimage a machine, but do all of those things described above. Keys to the Castle was born (although the suggestion was made that I call it "Nev on a Stick". NoaS doesn't have the same ring as KttC.

So, to achieve imaging, I was already using Clonezilla Live - a USB Debian based (the same distribution that Ubuntu is based off) live (i.e. the entire system exists on the USB stick thus not needing to touch the hard drive) system with the goal of simply taking images of a machine and putting them back on the same or other machines. It turns out that Clonezilla is actually pretty convenient in terms of customizing it. I won't lie - there are some serious problems there i.e. scripts that don't get maintained between releases, but, for the most part, not too bad.

You can find the documentation that I did up for the teachers here (it's out of sync with the current release of KttC but covers off the important bits. Also, for all of you FLOSS people out there, this is probably one of the biggest mentions of Open Source Software in the project - most of the teachers get that document - it's on every KttC). The comic is just because someone had asked me if there was a way of doing comics on the netbooks. That lead to this post. This is another part of my job - enabling or facilitating whatever the teachers want to be able to do.

I realised today that this is probably the only bits of code that aren't online ANYWHERE except for bits of it on an rsync server that isn't publicised anywhere (I'm thinking I'll probably throw it into my public folder on Dropbox although I probably need a little more space if I'm to throw the image up there as well. I guess I'm going to have to do the whole "if you sign up, please use me as your 'referrer'" bit. Please don't take that as a suggestion to sign up to dropbox. My main reason for using it is the same reason I was using HotMail - backing up and transfer of files online). I'll post a link to the file once I've got it up there.

Nowadays, due to how powerful KttC is, teachers take custody of them. They can then give kids the stick and get them to do their own admin tasks. So, they've got the opportunity to do a lot of their own administration. They do need to either read the documentation or the menu and I usually go through a few tasks with them - education. And of course, the development of the stick (I can't describe my frustration while do this - I was using a live Ubuntu build and then found that the "magic" live scripts were trying to read things off the hard drive which made the sticks useless if there was file system corruption - one of the things that the sticks set out to solve. I then realised I could adapt Clonezilla Live to my needs but then discovered that they don't have a python interpreter. In which case I had to convert everything to bash. I'm really not a perl programmer) is ongoing.

The hope is that I can come up with a simple GUI for it. Something that can display a barcode for the serial number (so that it can be scanned straight off the screen) and do all of the things that it can currently do. In the immediate future I'd like to reduce the boot time (around 60 seconds at the moment).

It's the same stick and image no matter the school or entity but supplements and customizations for the school/entity can be applied when the user is setting up their netbook for the first time. This involves things like bookmarks, wireless network connections (after setting up, the user is normally already connected by the time they go to log in), applications applicable to that school (one school has Geogebra. Another has KdenLive). I'll talk about that particular piece of shininess in another post.

No comments:

Post a Comment