Amazon’s Windows Refund Helps the Earth

On the 21st July 2009 I reported how Amazon had made it really easy for me to reclaim the cost of the Windows XP license on a new Asus netbook. This was a very popular post for my humble blog; especially after appearing on Slashdot thanks to reader and Digital Tipping Point producer Christian Einfeldt.

As a quick digression, I decided to install the 3rd Alpha release of the forthcoming Ubuntu Karmic Koala (what will be 9.10) on my netbook and it is working very nicely. I have discovered one problem with my 3G modem (an Option iCON 225), but this is alpha software and helping to test and find bugs is what it’s all about. I’ve confirmed the bug on Launchpad and will hopefully be able to help diagnose and rectify the issue as the Karmic release progresses.

Back to the topic.

What perhaps wasn’t as clear as it could have been (apparent by some of the dodgy reporting elsewhere) was that the netbook was a prize I’d won for helping to get testers to a Beta trial of the Micromiser energy saving software, specifically written for Linux, by a company called Miserware. As I hadn’t bought it the first place the refund was sent back to Miserware, not to me. That was absolutely fine. It was the principle I was interested in, not really so much about the money. I had thought that should the refund come to me, I would donate it to a deserving (IMHO) FOSS project. I hadn’t decided on any one particular project though as I was doubtful I would get the cash anyway. But that was my basic idea.

When the refund went off to Miserware, I mailed them to let them know it was coming and why. I also mentioned that I had intended to donate the refund and that it might be an idea for them to consider too. A couple of days later they emailed me back to ask if I’d mind them donating it to something a bit different. Not a free software project but something more in keeping with their “green” credentials. Hey! It’s their money; who am I to dictate what they do with it?

I thought it would be good to show you where the Microsoft Tax has gone:

Dear Melissa,

Thank you.

Your support will help the Sierra Club continue its efforts to protect wild places and endangered species, confront global environmental challenges, and keep the pressure on politicians and corporations.

By supporting the Sierra Club online, you also become a member of the Club’s Online Community — helping to save paper and postage and enabling you to get the latest environmental news and information quickly. As a member of our Online Community you can help protect the environment by visiting the Sierra Club Action Center and sending personalized emails to key decision makers on important conservation issues. And, at our Online Member Center, you can subscribe to one of the Club’s email newsletters and electronic publications.

The Sierra Club has been devoted to protecting our natural heritage for over 100 years. And thanks to your support, we can continue to fight and protect our natural resources.

Thanks again.

Sincerely,

Carl Pope
Executive Director
Sierra Club

Please print or save this message for your personal records.

Name: Melissa Cameron
Amount: $67.58
Designation: Donation to the Sierra Club

The Sierra Club is:

America’s oldest, largest, and most influential grassroots environmental organization. Inspired by nature, we are 1.3 million of your friends and neighbors, working together to protect our communities and the planet.

I think that’s really cool. From over here in Europe, the USA isn’t exactly perceived as having a strong track record on green issues, although I’m sure that is going to change with the Bush era finally behind us. But nevertheless, it is great to see that there are organisations in the US that exist and promote the environmental agenda. If you’re a concerned American please go and stop by The Sierra Club and say hi… For all of us.

Ubuntu One

Our friends at Canonical have been busy working on a new software as a service offering called Ubuntu One. This news was broken today by the VAR guy, but we thought we would dig a little deeper into what it is all about. Ubuntu One is in short a utility for synchronising stuff between desktop computers running the favourite operating system of you and me. The home URL of the service is https://ubuntuone.com/ and if you go there it will add your launchpad account to the list of people who want to join the beta. The Installation page guides you through downloading a little .deb file which adds a private PPA (yes if you expand the acronym that is a double private – it is at private-ppa.launchpad.net) to your sources.list, from then on you can install ubuntuone-client with apt or synaptic. This installs the application, but as it is a web service you need to be in the beta to get much further.

Digging about in the PPA reveals the source tar.gz in which we can learn a bit more. Firstly it is a GPL3 licensed python application. In the doc area is a very nice little schematic describing the connect and sync process:

action_queue_states

The rest is just lots of code and it is probably best to wait for it to run to see what it does. I will leave you with this fragment from a main.py deep in the tree because it made me smile:

  self.logger.debug("I can't attain Nirvana yet."
    " [state: %s; queues:"
    " metadata: %d; content: %d; hash: %d]"
    % (self.state.name,
      len(self.action_q.meta_queue),
      len(self.action_q.content_queue),
      len(self.hash_q)))
  return
self.logger.debug("Nirvana reached!! I'm a Buddha")

We are looking forward to playing with this one in more detail.

Asterisk, Zaptel, Oslec and Ubuntu Server [Updated]

I have recently migrated my server at home from a custom Linux build to Ubuntu Server (8.10 Intrepid). The main migration went very smoothly and I learned a few new tricks on the way too.

One function the server performs is as my telephone system for work and home. It runs Asterisk. I have a couple of IAX2 trunks from our VOIP provider for mine and my wife’s businesses and I also have a cheap x100p clone analogue card for PSTN backup purposes. On my old system software, I had compiled the device drivers (zaptel) and kernel modules for the card manually and used a, frankly fantastic, echo canceller called Oslec (the Open Source Line Echo Canceller). You can read the couple of posts I made about when I first tried it out here.

On my new server OS, I installed the Asterisk server via Ubuntu’s package management system sudo apt-get install asterisk. After some digging around on the ‘net (and it wasn’t obvious) I discovered that the zaptel drivers (for the PSTN hardware) need to be installed slightly differently:

sudo m-a -t build zaptel Which retrieves the zaptel package and builds it for your running kernel. You might have to run m-a prepare in advance of this to retrieve your Linux kernel headers.

The m-a (Module Assistant) command will compile and create a .deb package in the /usr/src directory. On my system the package was called zaptel-modules-2.6.27-11-server_1.4.11~dfsg-2+2.6.27-11.27_i386.deb.

It can then be installed using dpkg: sudo dpkg -i zaptel-modules-2.6.27-11-server_1.4.11~dfsg-2+2.6.27-11.27_i386.deb.

This went fine and I had read on launchpad that as of an earlier version of the zaptel package the Oslec echo canceller was now the default. Unfortunately this didn’t quite work as I expected. The zaptel module was in fact using the standard MG2 EC which is not very good with my x100p card at all.

After a bit more digging around in the source code, there is a file in the zaptel package called zconfig.h which is where the chosen EC is defined. It is specified as MG2 in the package. What I did to fix it was as follows.

  • Unpack the zaptel.tar.bz2 package that was in /usr/src.
  • Edit the kernel/zconfig.h file so the line #define ECHO_CAN_MG2 is commented out
  • and added in a line that reads #define ECHO_CAN_OSLEC instead.
  • Re-assemble the zaptel package: sudo tar jcvf zaptel.tar.bz2 modules (“modules” is the directory name where the zaptel package extracts to).
  • Delete the existing zaptel-blah-blah.deb file and the modules directory too.
  • Re-run the m-a -t build zaptel command.

Thanks to Tzafir Cohen on the asterisk mailing list for this. There is a far simpler method to use for the time being although this is a known bug and is now fixed in the development tree so I guess it will be unnecessary once the package has been updated. Do please check first if you are following this in the months to come. Anyway, instead of the commands above, these commands work for me and are far simpler:

sudo m-a -f get zaptel-source This simply gets the source package and saves it in /usr/src.
sudo ECHO_CAN_NAME=OSLEC m-a -t a-i zaptel And this builds and installs the modules and tells the build scripts to choose the Oslec EC by default. The -t switch puts the command into text mode so you actually see what is going on. I find the process rather opaque and uninformative without this switch.

After rebuilding, the zaptel module now requires, and loads the Oslec EC by default. The command modinfo zaptel is a good test. The output of it should be something like this:


filename: /lib/modules/2.6.27-11-server/misc/zaptel.ko
version: 1.4.11
license: GPL
description: Zapata Telephony Interface
author: Mark Spencer
srcversion: 4433ADDE0493C798A455677
depends: oslec,crc-ccitt
vermagic: 2.6.27-11-server SMP mod_unload modversions 686
parm: debug:int
parm: deftaps:int

Note the “depends” line.

You could also type lsmod | grep 'zaptel' once you have reloaded your server:


zaptel 199844 5 wcfxo
oslec 16668 1 zaptel
crc_ccitt 10112 1 zaptel

This command shows the oslec ec module installed along with the the zaptel and wcfxo drivers.

One final point to note. If you just want to load a particular telephony hardware driver and not all of them, I think you need a file /etc/default/zaptel like this with the relevant driver(s) uncommented:


TELEPHONY=yes
DEBUG=yes

# Un-comment as per your requirements; modules to load/unload
#Module Name Hardware

#MODULES="$MODULES tor2" # T400P - Quad Span T1 Card
#E400P - Quad Span E1 Card

#MODULES="$MODULES wct4xxp" # TE405P - Quad Span T1/E1 Card (5v version)
# TE410P - Quad Span T1/E1 Card (3.3v version)
#wct4xxp_ARGS="t1e1override=15" # Additional parameters for TE4xxP driver

#MODULES="$MODULES wct1xxp" # T100P - Single Span T1 Card
# E100P - Single Span E1 Card

#MODULES="$MODULES wcte11xp" # TE110P - Single Span T1/E1 Card

#MODULES="$MODULES wctdm24xxp" # TDM2400P - Modular FXS/FXO interface (1-24 ports)

MODULES="$MODULES wcfxo" # X100P - Single port FXO interface
# X101P - Single port FXO interface

#MODULES="$MODULES wctdm" # TDM400P - Modular FXS/FXO interface (1-4 ports)

I can’t recall the exact origins of this file and whether or not it is really necessary, but I had it on my old system and the Ubuntu provided zaptel init script checks for it’s presence; although it doesn’t look like it does much with its contents though…

Hopefully this will help others and also act as a bit of an aide memoir for me when I next build an Ubuntu server with Asterisk.