linux

Western Digital My Book World Edition Licensing and the GPL

Earlier today I purchased a Western Digital My Book World Edition (MBWE) 1Tb NAS as I needed a simple NAS. The MBWE seemed like a good option, it runs GNU/Linux, it is hackable and there is a bit of a community around it. I got the thing home and started setting it up through the web gui so I could enable SSH and NFS on it, until I hit the EULA. Yes I am one of those people who does actually read the EULA of most software before installing it. The EULA didn't strike me as a very free/open source software friendly. It states (emphasis mine):

WESTERN DIGITAL TECHNOLOGIES LICENSE AGREEMENT AND WARRANTY DISCLAIMER

NOTICE: By accepting this License Agreement and/or by installing, using or copying the Licensed Software, You are becoming a party to, indicating Your consent to, and agreeing to be bound by the terms of this License Agreement, without modification. If You do not understand and accept all of the following terms and conditions or You respond "NO" or give any other response that indicates you do not accept this License Agreement, then You must not install, use, or copy the Licensed Software.

1. DEFINITIONS.

(a) "Agreement" and/or "License Agreement" shall mean this License Agreement and any and all documents incorporated by reference; (b) "You" and/or "Your" shall mean the individual or legal entity exercising rights under; (c) "Licensed Software" shall mean computer software owned by Western Digital Technologies and may include associated media, printed materials, and "online" or electronic documentation provided by Western Digital Technologies; and (d) "Western Digital Technologies" shall mean Western Digital Technologies, Inc. and its subsidiaries, affiliates, licensees and agents.

2. LICENSE GRANT.

Subject to the terms of this Agreement, Western Digital Technologies hereby grants You a non-exclusive and non-transferable license to and use for personal or internal purposes the Licensed Software. This license is not a sale of the Licensed Software. Western Digital Technologies has no duty to provide further updates or changes to the Licensed Software.

3. RESTRICTIONS.

You acknowledge and agree that You shall not (a) modify, adapt, translate or create any derivative works of the Licensed Software; (b) attempt to disable the Licensed Software by any means or in any manner; (c) attempt to decompile, disassemble, reverse engineer, or otherwise attempt to derive the source code for the Licensed Software; (d) distribute, encumber, sell, rent, lease, sublicense, or otherwise transfer, publish or disclose the Licensed Software to any third-party; or (e) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in the Licensed Software.

4. TITLE.

Title, ownership and all intellectual property rights in and to the Licensed Software shall remain in Western Digital Technologies and/or its suppliers. The Licensed Software is protected by the copyright laws of the United States and international copyright treaties. Title, ownership rights and intellectual property rights in and to the content accessed through the Licensed Software including any content contained in the Licensed Software media demonstration files is the property of the applicable content owner and may be protected by applicable copyright or other law. This license gives you no rights to such content.

5. DISCLAIMER OF WARRANTY.

THE LICENSED SOFTWARE IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WESTERN DIGITAL TECHNOLOGIES FURTHER DISCLAIMS ALL WARRANTIES INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INTERFERENCE WITH ENJOYMENT OR FROM NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS. WESTERN DIGITAL TECHNOLOGIES DOES NOT WARRANT THAT THE LICENSED SOFTWARE WILL MEET YOUR REQUIREEMNTS OR WILL BE ERROR FREE. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE LICENSED SOFTWARE AND DOCUMENTATION REMAINS WITH YOU. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL WESTERN DIGITAL TECHNOLOGIES OR ITS SUPPLIERS BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, DIRECT, INDIRECT, SPECIAL, PUNITIVE, OR OTHER DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION. DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OUT OF THIS AGREEMENT OR THE USE OF OR INABILITY TO USE THE LICENSED SOFTWARE, EVEN IF WESTERN DIGITAL TECHNOLOGIES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

6. TERMINATION.

This license shall terminate automatically if you fail to comply with the limitations described in this Agreement. No notice shall be required from Western Digital Technologies to effectuate such termination. Upon termination you must destroy all copies of the Licensed Software.

7. U.S. GOVERNMENT RESTRICTED RIGHTS AND EXPORT RESTRICTIONS.

The Licensed Software is provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(I)(ii) of The Rights in Technical Data and Computer Software clause of DFARS 252.227- 7013 or subparagraphs (c)(i) and (2)of the Commercial Computer Software-Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Western Digital Technologies, 20511 Lake Forest Blvd., Lake Forest, CA 92630. You acknowledge that none of the Licensed Software or underlying information or technology may be downloaded or otherwise exported or re-exported into (or to a national or resident of) Angola, Cuba, Iran, Iraq, Libya, North Korea, Sudan, Syria, or any other country to which the U.S. has embargoed goods; or anyone on the U.S. Treasury Department's list of Specially Designated Nationals or the U.S. Commerce Department's Table of Denial Orders. By using the Licensed Software, you are agreeing to the foregoing, and are representing and warranting that you are not located in or under the control of a national or resident of any such country or on any such list.

8. INDEMNITY

You hereby agree to indemnify, defend and hold Senvid and Western Digital Technologies from and against any all liabilities, damages, claims, fines and expenses (including reasonable attorney's fees) arising out of any breach of this End User License Agreement and Warranty Disclaimer.

9. MISCELLANEOUS.

(a) This Agreement constitutes the entire agreement between the parties concerning the subject matter hereof; (b) This Agreement may be amended only by a writing signed by both parties; (c) This License Agreement shall be governed by the laws of the State of California, without regard to conflicts of law provisions, and you consent to the exclusive jurisdiction of the state and federal courts sitting in the State of California; (d) This Agreement shall not be governed by the United Nations Convention on Contracts for the International Sale of Goods; (e) If any provision in this Agreement should be held illegal or unenforceable by a court having jurisdiction, such provision shall be modified to the extent necessary to render it enforceable without losing its intent or severed from this Agreement if no such modification is possible, and other provisions of this Agreement shall remain in full force and effect; (f) A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, shall not waive such term or condition or any subsequent breach thereof; (g) The provisions of this Agreement that require or contemplate performance after the expiration or termination of this Agreement shall be enforceable notwithstanding said expiration or termination; (h) You may not assign or otherwise transfer by operation of law or otherwise this Agreement or any rights or obligations herein except in the case of a merger or the sale of all or substantially all of Your assets to another entity; (i) This Agreement shall be binding upon and shall inure to the benefit of the parties, their successors and assigns; (j) Neither party shall be in default or be liable for any delay, failure in performance (excepting the obligation to pay), or interruption of service resulting directly or indirectly from any cause beyond its reasonable control, and; (k) If any dispute arises under this Agreement, the prevailing party shall be reimbursed by the other party for any and all legal fees and costs associated therewith.

IF YOU ACCEPT the terms of this Agreement: I acknowledge and understand that by ACCEPTING the terms of this Agreement, I am agreeing to be bound by the terms, conditions, and limitations of this Agreement.

IF YOU DO NOT ACCEPT the terms of this Agreement. I acknowledge and understand that by refusing to accept these terms, I have rejected this license agreement and therefore have no legal right to install, use, or copy the Licensed Software.

I should probably preface the rest of this post with IANAL and that this does not constitute legal advice and if you need legal advice pay loads of money to a lawyer (I hope that keeps my lawyer happy).

I took a risk and clicked "I Agree" because I couldn't be bothered driving another 130km round trip to take it back and get something different and also I wanted to start hacking it anyway. I also figured that if WD's lawyers wanted to come after me I had the GPL on my side.

I suspect someone in engineering just copied and pasted the text in, just like they do for all of their software. To their credit WD does make the source code for the firmware for the device available on their website, so it doesn't strike me as an intentional attempt to avoid their obligations under the GPL. This seems like a pretty easy problem to fix, get a couple of people from WD's legal and engineering teams in a room and work out what the new text should be and then have engineering roll a new firmware release.

I have also contacted Western Digital's support department about the problem. Any updates will be posted here.

Update 23-Feb-2010: WDC support have responded apologising for any inconvenience caused and thanking me for bringing this to their attention. They also informed me that the information has been passed onto the relevant person. As yet they haven't responded to my follow up question about being informed when the issue is fixed.

Update 16-Mar-2010: After Western Digital closed the issue as resolved, I queried what the resolution was and received the following response, "Thank you for bringing this to our attention. Your issue has been forwarded to our legal and engineering teams and they are working to get our EULA and the terms of the GPL code in sync with one another. We are striving to get this resolved ASAP". It looks like the issue is now with the legal team at Western Digital.

Goodbye phpGroupWare

I am writing this post with a strong sense of sadness. At the same time I feel that I have no other option. I am walking away from phpGroupWare.

Before I walk out the door, lets go for a trip down memory lane. Insert tacky music wavy lines down the screen and bad hair styles from here on in.

I think the first time I heard Linux mentioned was in 1996/97. In 1999 I had my first experience with Linux, through an anarchist friend, I was very curious, but didn't have much of an opportunity to play with it.

In 2000, over a few months I started to play with Linux and GNOME dual booting my machine. I could never really make it do what I wanted, but I persisted. The first version of Linux I bought was Macmillan Linux 6.5 - I still have it in a cupboard somewhere. I then moved on to Red Hat 6.2.

In 2001 Julie's work was sick of waiting for their shared calendar solution. I was contracted to install it. They had an NT4 box running Lotus Notes, which no one wanted to touch - including me. I found phpGW by searching (probably "yahooing") for "open source groupwise". I would later discover I had embarked on an epic journey. I knew of open source, but I didn't know a lot about it. PHP seemed pretty cool, as did phpGroupWare. I recommned they get a new server - a good one, dual PIII-800s, RAID-1 and Linux, it cost over $3000. I learnt a lot on that box including basic Linux sysadmin, compiling stuff from source and what happens when you forget to update lilo. Today that server lies idle in a cupboard in my office.

Very quickly I became involved in the phpGroupWare commununity. By 2002 I considered myself active and later that year I was promoted to release manager. By 2003 I had landed my first overseas gig indirectly through phpGroupware. By now I felt very strongly that I was a free software developer. 2004 saw the EGroupware.Org fork, or as I still like to refer to it, the EGO fork. This did considerable damage to the project and sucked a lot of life out of it.

Since then the project has done some cool things, but struggled to get a release of trunk for over 5 years. There are some really smart people around the project, but none of us seem focused to shipping a product, and I think we all have different ideas of what that product should be. I have met many awesome people over the years, include the Paris conference in 2006.

It is now late 2009, I have 2 kids and a growing business. PHP 5.3 is out and we are still trying to port to PHP5. There are many solid application frameworks around - my personal favourites are Zend and Drupal. Both of these projects have large developer bases, active communities, clear development processes and documentation, phpGroupWare fails on each count.

The project has exposed me to so many great people and ideas. These things will stay with me for the rest of my life.

If anyone is to take over phpGroupWare, my first suggestion would be to start over. Clearly define a purpose for the project, define a target market, build a product which fits that purpose and appeals to that market. Such an approach will involve a significant investment of resrources. I just can't commit any resources to the project at this time. If things change I may come back one day, but now things feel too far gone.

As much as I hate to say this, I think phpGroupWare is a dead project. I feel that it is time for me to move on. I will make myself available to assist with any handover or shut down of the project.

Thanks to everyone who has contributed to making phpGroupWare such a great project over the years. It was fun while it lasted.

Brotherhood Books Launches - Giving Books a Second Chance

In late 2008 I worked on building an online second hand bookstore for the Brotherhood of St Laurence. Today Brotherhood Books was launched by comedian and writer Corinne Grant, at the Sacred Heart Primary School in Fitzroy. I'm hanging out for Corinne to publish her short story about the snot eating witch.

Brotherhood Books is a really exciting project, it allows people who can't access bricks and mortar second hand book stores to access quality second hand books at good prices. All of the profits from the service flow directly back to Brotherhood programs and services. Before this project I thought the Brotherhood ran a few big Opys and gave out some food vouchers. They do a lot more than that.

I have been to the East Brunswick warehouse a few times to meet with the workers to discuss how the platform is working and what can be done to improve it. Most of the Brotherhood Books workers are volunteers, who are trying to get some experience so they can enter or return to the workforce. They all seem to really love their books.

The identity, webdesign and initial marketing material was done by imageffect.com.au. The platform is built using Zend Framework, where possible we used off the shelf libraries, but there is a large amount of original work. The cataloguing functionality is pretty slick, almost all of the books are catalogued by volunteers scanning a barcode, entering a condition and adjusting the system recommended price and it is done. Yahoo's YUI Toolkit provides most of the AJAX yummy-ness for the volunteers, while most of the data is pulled from Bowker's web services.

Brotherhood Books has over 30,000 items for sale, and growing every day. So far over 45 tonnes of books have been saved from going to landfill!

If you have some spare books to donate to the Brotherhood, they have many ways of accepting donations.

At the launch today there was some media present, and someone from the BSL was interviewed by Red Symonds on 774 ABC Melbourne.

Many of computer books are dated, but they still make for fun reading, These days I have several titles from the Brotherhood on my bookshelf - including a mid 90s guide to cracking.

Go check it out and buy a book so you can claim you were there at the start.

Yes I am doing the hard sell on it, but I have been waiting since the soft launch earlier this year to be able to promote it widely.

Using Gigabyte BIOS Updates on Linux Boxes

Update: Comments suggest that gigabyte are now using 7zip, not rar as their archive format.

Dealing with Gigabyte support can be a frustrating experience. They only offer support via their website. Once they reply to your enquiry which can take several days, you get a response telling you to visit their website to read the response, and you can reply. This process means it can take several weeks to get a clear and final answer.

In my case I was trying to get a fix for what I thought was a flakey BIOS in my Gigabyte GA-M68SM-S2L. Although Gigabyte claim that their QFlash BIOSes can be loaded independently of the OS the box is running, they only supply them as Windows binary self extracting archives. Gigabyte tech support aren't much help, suggesting that users can just extract it on a Windows box. There is an alternative.

The Gigabyte QFlash binaries are simply self extracting rar files. The following steps make it easy to update Gigabyte QFlash BIOSes on a linux box (albeit with non free software).

  • Download the firmware from Gigabyte
  • cd /path/to/gigabyte-fw.exe
  • unrar e gigabyte-fw.exe
  • cp firmware.fw /path/to/usbstick
  • Reboot computer and select flash BIOS from USB

If all goes to plan you should now have a new BIOS and not had to use a Windows machine to do it.

Flakey BIOS in Gigabyte GA-M68SM-S2L Makes MAC Address Change on Reboot

Over the weekend I have been setting my new Mythbuntu pair, a split. back end and front end. Everything has gone pretty smoothly.

One issue I did hit was the onboard NIC on my Gigabyte GA-M68SM-S2L motherboard despite what the specs say it is a "nVidia Corporation Unknown device 054c (rev a2)" which uses the forcedeth driver. Everytime I rebooted the box the NIC would increment its interface number - eth0, eth1 ... eth6 and so on. Changing the "Smart LAN" setting in the BIOS from auto to disabled just disables the NIC, not what I wanted.

After googling I discovered that others had experienced similar problems with ASUS boards with nVidia NICs, changing their MAC addresses. Looks like Gigabyte (and ASUS) have been shipping invalid MAC addresses on some of their boards, and forcedeth isn't happy about it, so it just generates a new (valid yet) random MAC address.

With a little help from sysfs I was able to hack my udev config so it all works now. My /etc/udev/rules.d/70-persistent-net.rules looks like

SUBSYSTEM=="net", DRIVERS=="forcedeth", ATTRS{vendor}=="0x10de", ATTRS{device}=="0x054c", NAME="eth0"

I grabbed the output of "cat /sys/class/net/ethX/device/{device,vendor}" to populate the relevant ATTRS entries above.

I am not sure what you do if you have 2 onboard NICs and they are both broken.

Gigabyte (and ASUS) or nVidia should look at fixing their broken kit to save people from wasting time on this.

Update: It turns out it was a dodgy driver shipped by Ubuntu

My New Toy - The Nokia N95

About 7 weeks ago I bought a Nokia N95 and I love it. I considered the Neo 1973 from openMoko, a completely open phone platform was appealing, but at the end of the day it isn't certified for Australia, it doesn't have WIFI or a camera nor does it do HSDPA/3G, all things on must have list. The iPhone was never in the race.

I picked up phone for just over 800AUD via ebay, they have since dropped a little in price. It is an Australia version with full local warranty support. The only downside is that it a 3 branded version, not a generic, but hey it works.

The phone got a real work out during my trip to Norway and it worked well. The GPS is a little slow to lock, but once it gets a lock it is right to go. The wifi works well. It is handy knowing if wifi is available somewhere before booting your laptop. I took a stack of pictures with the 5M pixel camera, the ones in bad light or inside aren't fantastic, but when taking shots outside it works a treat. The "DVD quality video" is pretty good too. It makes better movies than our old DVD based handycam. I am planning to use the phone at the birth of my second child (due any day now).

As I expected the phone "just works" as a standalone device, but the real test is how well it works with a Linux desktop. I can report that with Ubuntu 7.10 (aka Gutsy Gibbon) the N95 works well for all the stuff you really need. Below is a couple of quick mini howtos for a few things that you might want to with your N95. Some of the instructions are generic enough that they may work with little (or no) change with other handsets.

Disclaimer: I accept no responsibility for any data loss or stress caused by you following these instructions. Also you should carefully check your warranty before trying any of this. That said - "I just worked for me".

Pairing

For the bluetooth related stuff below you will need to pair your phone and PC. The quickest and easiest way to do this is using the bluetooth-applet. Here is how to do it:

  • Install the bluez-gnome deb - sudo apt-get install bluez-gnome
  • Once installed you should have a bluetooth icon in your GNOME system tray, if not just run "bluetooth-applet &" from the console
  • Right click on the icon and click "Browse Devices"
  • Your phone should be in the list, click on it and then click the Connect button
  • On your phone enter a 4 digit PIN when prompted - it can be anything you like
  • The bluetooth icon will then flash, click on it and enter the same PIN
  • Now your phone and PC should be paired
  • To make sure they are paired we will connect via obex-ftp
  • Right click on the icon and click "Browse Devices"
  • Your phone should be in the list, click on it and then click the Connect button
  • When prompted on your phone allow the connection
  • Nautilus should now launch and you you 2 folders "C:" (internal phone memory) and "E:" (microSD card)

Your PC and N95 are now paired and should be able to communicate via bluetooth without any problems.

Exchanging Files

Copying files to/from the N95 can be a little slow. Lets go from slowest to fastest.

Bluetooth

Copying files using bluetooth is very simple with a gnome desktop and the N95 using OBEX-FTP. Just install OBEX-FTP support for nautilus - "sudo apt-get install gnome-vfs-obexftp". Anytime you want to access the files on your phone via obexftp, just fire up nautilus and type "obex:///" and wait for a list of devices to be displayed. Double click on your phone and you are right to go. It can be rather slow copying files from your phone to your PC this way, but if you don't want to find cables or card readers it works. By slow I mean 30mins for a 100Mb video to copy.

There is also the gnome-obex-server package, which allows you to push content from your phone onto your PC, but I found this slow and I had to jump through too many hoops on the phone to send a file.

USB Cable

The N95 comes with a USB cable with a mini USB connector for connecting your N95 to your PC. When you plug the cable in the phone asks you which mode you wish to use. If you select Mass Storage it is treated like a usb mass storage device by and gnome-volume-manager, so it is mounted as soon as you plug it in. You are then able to access your microSD card.

I haven't been able to get the "Media Player" mode to work with the desktop music players I have tried it with - Rhythmbox, Banshee and Amarok. When used in "Mass Storage" mode it is possible to use File > Scan removable media in Rhythmbox.

Card reader

This is the fatstest way to read data from the microSD card. On the N95 press the power button for half a second, scroll down the list of options and select "Remove memory card", then remove your card from your phone. Now just put in into the SD card adaptor that came with the phone and use it like a normal SD card. Transfers speeds are quite good using this method.

Sync

Setting up sync with the N95 and opensync was relatively painless. I am syncing contacts with evolution, I have also tried with calendar events, which seemed to work as well, I haven't tried todos as I don't use them.

Start off by installing the bits we need

$ sudo apt-get install multisync-gui opensync-plugin-evolution opensync-plugin-syncml

This should also install all the dependencies needed to make opensync work.

On the N95 go Menu > Tools > Sync > PC Suite > Edit Sync Profile. First start by editing the settings under Applications. Lifeblog, Text messages and Bookmarks aren't supported by opensync, so disable them but setting "Include in sync" to No. You can also disable Calendar, Notes (really ToDos) if you wish.

As I had already transferred contacts from my old SE v600i to the N95 and I wanted to sync with an existing addressbook I had some issues. Namely 2 contacts didn't want to sync - I never found out which ones. So I found the easiest way to setup the sync was to create a new addressbook in evo.

  • Go into contacts ([ctrl]-2)
  • From the menu select File > New > Addressbook
  • Fill in the information - Type: "On This Computer", Name: "Phone" (or something else that makes sense for you
  • Click OK
In your GNOME menu under accessories, select multisync-gui. Now we need to create the sync pair.
  • Click the Add button
  • Give the group a meaningful name, such as "n95-evo" and click apply
  • Click the edit button for your new group
  • Tick the checkboxes for those sources which you don't want to use - you must disabled note as this isn't supported by the N95, this list should match the config on your phone
  • Click the Add Member button
  • Select Evolution 2.x from the list of options and Click Apply
  • Select which addressbook you want to sync with - in our case "Phone" (or which ever one you created above)
  • Click the Add Member button
  • This time select SyncML over OBEX Client
  • This where your XML hacking skills come into it (or you can just use my config
    <config>
    	<bluetooth_address>AD:DR:OF:MY:FO:NE</bluetooth_address>
    	<bluetooth_channel>10</bluetooth_channel>
    	<interface>0</interface>
    	<identifier>PC Suite</identifier>
    	<version>1</version>
    	<wbxml>1</wbxml>
    	<username></username>
    	<password></password>
    	<type>2</type>
    	<usestringtable>1</usestringtable>
    	<onlyreplace>0</onlyreplace>
    	<recvLimit>0</recvLimit>
    	<maxObjSize>0</maxObjSize>
    	<contact_db>Contacts</contact_db>
    	<calendar_db>Calendar</calendar_db>
    	<note_db>Notes</note_db>
    </config>
    
    		
    Change AD:DR:OF:MY:FO:NE to the address of your phone Note: I have only been able to get the N95 to sync with opensync using bluetooth.
  • Click Close
  • Click the "Refresh" and the sync should start
  • You have now synced your Nokia N95 with your Linux desktop! YAY!
  • All of your contacts from your phone should now be added to your evo addressbook
  • In evolution, copy any contacts from other addressbooks to the "Phone" addressbook
  • In multisync-gui click the "Refresh" button again and wait for the sync to complete

After I make changes to either either my N95 or evolution contacts I sync them. If you are also syncing your calendar you probably want to sync at least daily

Occasionally you may get conflicts. The GUI allows you to choose which one you want to keep. Having merge support in the GUI would be nice, but I can live with one taking precedence over the other on a per record basis.

Firmware Upgrades and Installing Maps

You need a real box Windows XP to upgrade the firmware or install full maps on the phone. I quickly tried using the usb support in qemu to connect the phone to a virtual version of XP, but I couldn't get it to work. It would be nice if Nokia offered firmware upgrades "over the air" so you could just use WIFI to upgrade the phone's firmware.

You can load map data as you move around, using mobile data, but this is an expensive way of doing it. You only need the map loader software installed on the Windows machine and then you can use the phone in mass storage mode of the microSD card to load the map data. I might try loading map data via qemu one day, but I have all the maps loaded that I currently need.

Software

In terms of what extra software you might want to install on the phone, here is a list of what I am using:

  • PuTTY - SSH on the phone, it is handy when I really need SSH and I don't have my laptop with me. Goota love a phone running SSH2 with public key authentication.
  • VNC. There is a Symbian sponsored port of TightVNC now available for the N95 and other S60 handsets. I am yet to get working properly
  • Fring is a free (as in beer) VoIP and IM app for mobile devices. It works pretty well. I have some issues using it with NodePhone, but I probably just have to tweak something there
  • I am also running the Lotus Sametime client, so I can keep in touch with the ReSight team out on the road. Pidgin is still the best Sametime (or general IM) client I have found, but there is no symbian port (hint hint)

Where is opera mini? I removed it, as I found the WebKit based browser on the N95 nicer in the longer run. It might use more bandwidth, but that is fine when using WIFI for most of your browsing anyway.

Overall

The Nokia N95 is certainly one nice handset. The battery life sucks - mine goes on charge every evening. The phone will never win an award from the FSF for freedom, but it never set out to do that. It sets out to be an all in one device and I think it achieves that goal pretty well. It is certainly usable under Linux, even if it does have some distance to go before it can really be considered truly Linux friendly.

About 7 weeks ago I bought a Nokia N95 and I love it. I considered the Neo 1973 from openMoko, a completely open phone platform was appealing, but at the end of the day it isn't certified for Australia, it doesn't have WIFI or a camera nor does it do HSDPA/3G, all things on must have list. The iPhone was never in the race.

I picked up phone for just over 800AUD via ebay, they have since dropped a little in price. It is an Australia version with full local warranty support. The only downside is that it a 3 branded version, not a generic, but hey it works.

The phone got a real work out during my trip to Norway and it worked well. The GPS is a little slow to lock, but once it gets a lock it is right to go. The wifi works well. It is handy knowing if wifi is available somewhere before booting your laptop. I took a stack of pictures with the 5M pixel camera, the ones in bad light or inside aren't fantastic, but when taking shots outside it works a treat. The "DVD quality video" is pretty good too. It makes better movies than our old DVD based handycam. I am planning to use the phone at the birth of my second child (due any day now).

As I expected the phone "just works" as a standalone device, but the real test is how well it works with a Linux desktop. I can report that with Ubuntu 7.10 (aka Gutsy Gibbon) the N95 works well for all the stuff you really need. Below is a couple of quick mini howtos for a few things that you might want to with your N95. Some of the instructions are generic enough that they may work with little (or no) change with other handsets.

Disclaimer: I accept no responsibility for any data loss or stress caused by you following these instructions. Also you should carefully check your warranty before trying any of this. That said - "I just worked for me".

Pairing

For the bluetooth related stuff below you will need to pair your phone and PC. The quickest and easiest way to do this is using the bluetooth-applet. Here is how to do it:

  • Install the bluez-gnome deb - sudo apt-get install bluez-gnome
  • Once installed you should have a bluetooth icon in your GNOME system tray, if not just run "bluetooth-applet &" from the console
  • Right click on the icon and click "Browse Devices"
  • Your phone should be in the list, click on it and then click the Connect button
  • On your phone enter a 4 digit PIN when prompted - it can be anything you like
  • The bluetooth icon will then flash, click on it and enter the same PIN
  • Now your phone and PC should be paired
  • To make sure they are paired we will connect via obex-ftp
  • Right click on the icon and click "Browse Devices"
  • Your phone should be in the list, click on it and then click the Connect button
  • When prompted on your phone allow the connection
  • Nautilus should now launch and you you 2 folders "C:" (internal phone memory) and "E:" (microSD card)

Your PC and N95 are now paired and should be able to communicate via bluetooth without any problems.

Exchanging Files

Copying files to/from the N95 can be a little slow. Lets go from slowest to fastest.

Bluetooth

Copying files using bluetooth is very simple with a gnome desktop and the N95 using OBEX-FTP. Just install OBEX-FTP support for nautilus - "sudo apt-get install gnome-vfs-obexftp". Anytime you want to access the files on your phone via obexftp, just fire up nautilus and type "obex:///" and wait for a list of devices to be displayed. Double click on your phone and you are right to go. It can be rather slow copying files from your phone to your PC this way, but if you don't want to find cables or card readers it works. By slow I mean 30mins for a 100Mb video to copy.

There is also the gnome-obex-server package, which allows you to push content from your phone onto your PC, but I found this slow and I had to jump through too many hoops on the phone to send a file.

USB Cable

The N95 comes with a USB cable with a mini USB connector for connecting your N95 to your PC. When you plug the cable in the phone asks you which mode you wish to use. If you select Mass Storage it is treated like a usb mass storage device by and gnome-volume-manager, so it is mounted as soon as you plug it in. You are then able to access your microSD card.

I haven't been able to get the "Media Player" mode to work with the desktop music players I have tried it with - Rhythmbox, Banshee and Amarok. When used in "Mass Storage" mode it is possible to use File > Scan removable media in Rhythmbox.

Card reader

This is the fatstest way to read data from the microSD card. On the N95 press the power button for half a second, scroll down the list of options and select "Remove memory card", then remove your card from your phone. Now just put in into the SD card adaptor that came with the phone and use it like a normal SD card. Transfers speeds are quite good using this method.

Sync

Update: I am no longer using OpenSync. I am using Funambol's S60 SyncML app, which works a treat for syncing with my Zimbra server.

Setting up sync with the N95 and opensync was relatively painless. I am syncing contacts with evolution, I have also tried with calendar events, which seemed to work as well, I haven't tried todos as I don't use them.

Start off by installing the bits we need

$ sudo apt-get install multisync-gui opensync-plugin-evolution opensync-plugin-syncml

This should also install all the dependencies needed to make opensync work.

On the N95 go Menu > Tools > Sync > PC Suite > Edit Sync Profile. First start by editing the settings under Applications. Lifeblog, Text messages and Bookmarks aren't supported by opensync, so disable them but setting "Include in sync" to No. You can also disable Calendar, Notes (really ToDos) if you wish.

As I had already transferred contacts from my old SE v600i to the N95 and I wanted to sync with an existing addressbook I had some issues. Namely 2 contacts didn't want to sync - I never found out which ones. So I found the easiest way to setup the sync was to create a new addressbook in evo.

  • Go into contacts ([ctrl]-2)
  • From the menu select File > New > Addressbook
  • Fill in the information - Type: "On This Computer", Name: "Phone" (or something else that makes sense for you
  • Click OK

In your GNOME menu under accessories, select multisync-gui. Now we need to create the sync pair.

  • Click the Add button
  • Give the group a meaningful name, such as "n95-evo" and click apply
  • Click the edit button for your new group
  • Tick the checkboxes for those sources which you don't want to use - you must disabled note as this isn't supported by the N95, this list should match the config on your phone
  • Click the Add Member button
  • Select Evolution 2.x from the list of options and Click Apply
  • Select which addressbook you want to sync with - in our case "Phone" (or which ever one you created above)
  • Click the Add Member button
  • This time select SyncML over OBEX Client
  • This where your XML hacking skills come into it (or you can just use my config
    
    <config>
    	<bluetooth_address>AD:DR:OF:MY:FO:NE</bluetooth_address>
    	<bluetooth_channel>10</bluetooth_channel>
    	<interface>0</interface>
    	<identifier>PC Suite</identifier>
    	<version>1</version>
    	<wbxml>1</wbxml>
    	<username></username>
    	<password></password>
    	<type>2</type>
    	<usestringtable>1</usestringtable>
    	<onlyreplace>0</onlyreplace>
    	<recvLimit>0</recvLimit>
    	<maxObjSize>0</maxObjSize>
    	<contact_db>Contacts</contact_db>
    	<calendar_db>Calendar</calendar_db>
    	<note_db>Notes</note_db>
    </config>
    
    		
    Change AD:DR:OF:MY:FO:NE to the address of your phone Note: I have only been able to get the N95 to sync with opensync using bluetooth.
  • Click Close
  • Click the "Refresh" and the sync should start
  • You have now synced your Nokia N95 with your Linux desktop! YAY!
  • All of your contacts from your phone should now be added to your evo addressbook
  • In evolution, copy any contacts from other addressbooks to the "Phone" addressbook
  • In multisync-gui click the "Refresh" button again and wait for the sync to complete

After I make changes to either either my N95 or evolution contacts I sync them. If you are also syncing your calendar you probably want to sync at least daily

Occasionally you may get conflicts. The GUI allows you to choose which one you want to keep. Having merge support in the GUI would be nice, but I can live with one taking precedence over the other on a per record basis.

Firmware Upgrades and Installing Maps

You need a real box Windows XP to upgrade the firmware or install full maps on the phone. I quickly tried using the usb support in qemu to connect the phone to a virtual version of XP, but I couldn't get it to work. It would be nice if Nokia offered firmware upgrades "over the air" so you could just use WIFI to upgrade the phone's firmware.

You can load map data as you move around, using mobile data, but this is an expensive way of doing it. You only need the map loader software installed on the Windows machine and then you can use the phone in mass storage mode of the microSD card to load the map data. I might try loading map data via qemu one day, but I have all the maps loaded that I currently need.

Software

In terms of what extra software you might want to install on the phone, here is a list of what I am using:

  • PuTTY - SSH on the phone, it is handy when I really need SSH and I don't have my laptop with me. Goota love a phone running SSH2 with public key authentication.
  • VNC. There is a Symbian sponsored port of TightVNC now available for the N95 and other S60 handsets. I am yet to get working properly
  • Fring is a free (as in beer) VoIP and IM app for mobile devices. It works pretty well. I have some issues using it with NodePhone, but I probably just have to tweak something there
  • I am also running the Lotus Sametime client, so I can keep in touch with the ReSight team out on the road. Pidgin is still the best Sametime (or general IM) client I have found, but there is no symbian port (hint hint)

Where is opera mini? I removed it, as I found the WebKit based browser on the N95 nicer in the longer run. It might use more bandwidth, but that is fine when using WIFI for most of your browsing anyway.

Overall

The Nokia N95 is certainly one nice handset. The battery life sucks - mine goes on charge every evening. The phone will never win an award from the FSF for freedom, but it never set out to do that. It sets out to be an all in one device and I think it achieves that goal pretty well. It is certainly usable under Linux, even if it does have some distance to go before it can really be considered truly Linux friendly.

Ubuntu Gutsy

For the last few weeks I have been running the upcoming Ubuntu 7.10 release (aka Gutsy Gibbon) on my laptop, which is also my primary PC. I know the ubuntu team don't recommend this, but I find it the best way for me to test stuff. Here is a quick run down of the things I have noticed. This isn't intended to be a comprehensive review, just a stuff I have noticed highlights.

Evolution

One of the best features I have found so far is in evolution. When sending a message which contains keywords, such as "attachment" or "attached" and you don't have an attachment, evo will nag you about it. It has saved me a few times already. Evolution warning about lack of attachment screenshot The other feature I like about evolution is that there is finally a panel notification icon, the annoying thing is that clicking it doesn't give evo focus. The xchat (not the gnome version) panel icon (available since Feisty) gives xchat focus when you click the icon - the same with liferea. I plan to file an RFE for this when I get some time. Evolution panel notification applet Another annoyance bug in evolution has been fixed, now when you copy text from an addressbook entry in view mode it only copies the highlighted text, not a whole vCard. YAY!

Desktop Search

The Tracker desktop search tool seems pretty nice. I got sick of beagle about a year ago and ditched it. Initially tracker made my PC unusable as it tried indexing everything in my home directory - including a few gig of legitimately owned ripped music. Tracker seems quicker than beagle and less resource intensive.

Conduit

Conduit finally works for me! The bug I reported was fixed 0.3 and gutsy ships with 0.3.2. I have played with it a bit and like the idea of it. I still need to find a real world useful task for it.

Liferea

Liferea is one of my top 5 apps. There has been no real changes between Feisty and Gutsy, except there are 2 really annoying bugs, feed names keep on being changed back to default and you can no long use "mark as read" for group level folders - I need to check if that one has been reported yet. Earlier builds had problems with recording which posts had been read, which was driving me crazy - I am glad that it has been fixed.

Printers

The GNOME printer management tool has had a facelift or been replaced. The about dialog box says it is called "sysconfig-config-printer.py" from Red Hat. Although I used to like having a "folder view" of all of my printers, the new layout makes it a lot easier to access everything quickly. GNOME system-config-printer.py screenshot showing new layout

Network Manager

I know there are some people who love Network Manager and those who hate it. I am mostly in the first camp, but there are somethings which annoy me about it. I need to file an RFE so you can use a VPN while using a PPP connection - currently you need to use a wired or wifi connection to use a VPN. PPP in general is a bit buggy, when you tell it create a PPP connection it won't try again until you click disconnect then connect again. It also lacks all the options you need for using PCMCIA/USB mobile data modem cards. It still does 80% of what I need. I will get around to reporting all this on launchpad.

Other Applications

There doesn't seem to be any significant changes to the other applications I use daily. Gutsy currently has pretty recent versions of most apps. Here is a list of some of them.
  • The GIMP - 2.4.0-rc2
  • Pidgin (formerly GAIM) - 2.2.0
  • OpenOffice.org - 2.3.0
  • Rhytmbox - 0.11.2
  • FSpot - 0.4.0

Look

Every new release of Ubuntu/GNOME I find myself in 2 minds about the look of it. I am finding it increasingly difficult to find icons I am happy with. For example I liked the look of GAIM far more than I do Pidgin, and this is now the 3rd release where the icons in evolution have changed. Maybe I am just getting old, but I think I liked it more the old way. Then again some of the other new icons look very slick. I plan to try using the Tango icons for a week to see if they are better than the gnome default. I can't run all the Compiz bling on my laptop - damn buggy proprietary drivers. I have better things to do with my CPU cycles anyway. The new appearance manager takes a little getting used, but I think it is better than having 4 or 5 different menu options. GNOME appearance manager screenshot

Overall

Overall I think the Gibbon is shaping up to be a solid release for Ubuntu. The team still have a couple of weeks before the release is due. Based on how far things have come in the last 3 week or so I have been using Gutsy, I think it will be a fine release. Once it goes final I think it is a worthwhile upgrade, unless you are a LTS only user - then you have to wait another 6 months for 8.04 aka Hardy Heron.

Facebook a $5bil Waste of Time or a Major Cash Cow for Peddlers of FUD?

On Monday Fairfax (and others) were running a story about how employees using Facebook could cost companies a fortune in lost productivity. Facebook labelled a $5b waste of time was a catchy headline. The article quotes some back of the envelope calculations done by SurfControl. Basically they claim each Australian business has 1 employee using Facebook 1 hour per day (costing the company $6200 a year), and as there are around 800,000 businesses in Australia, so it costs the economy over 5bil AUD. I haven't seen the full report only the media coverage, but I can fairly confidently say that the 800,000 figure includes sole trader businesses and other small businesses which do not employ anyone or use computers. I read several blog posts on the issue, most comparing using Facebook to personal phone calls/email etc. I think the comparison is fair. So far I haven't seen anyone pick up the source of this "news". SurfControl clams that they protect
organizations with multiple layers of threat protection that filter inbound, outbound and internal Internet traffic.SurfControl's Enterprise Protection Suite protects multiple threat vulnerability points - Web, E-mail, IM, P2P and Mobile desktops - and is supported by SurfControl's worldwide Adaptive Threat Intelligence Service to provide customers with early detection of emerging threats, real-time updates and continuous protection.
Source SurfControl Mission Statement I am sure SurfControl would happily tell anyone contacting them, as a result of the press coverage, to purchase one of their filtering products. I wonder if SurfControl will be releasing a new report on how to peddle FUD to boost sales. Any sane business will have internet use policies for their staff. Businesses who are concerned about what their staff are accessing on the internet can implement a very simple transparent proxy using squid, SquidGuard and iptables running on low end hardware using Linux. I suspect that Facebook doesn't mind such publicity. Businesses such as Facebook rely on word of mouth and the SMH story helps them raise their profile.

Tux Cake

While waiting to be served at a newsagents today I noticed The Australian Women's Weekly Party Animals: Birthday Cakes for Kids sitting there on the counter. Just about every child growing up in Australia in the last 40 years has had at least 1 cake from one of the many editions of the original The Australian Women's Weekly Kid's Birthday Cakes (formerly Children's Birthday Cakes?).

Enough reminiscing, the reason why Party Animals caught my attention was the front cover.

Australian Women's Weekly Party Animals: Birthday Cakes for Kids Cookbook front page featuring Tux (the Linux mascot

Source: ACP
That penguin looks very familiar to me.

For those of you unfamiliar with Tux - the Linux mascot, here s/he is Tux - the Linux mascot, Created by Larry Ewing using The GIMP

This is not the first time the Linux mascot has been ripped off by a company in Australia looking for a quick buck. Last year the NSW Lotteries used Tux in their Pengwins instant lottery tickets which they later licensed to the SA Lotteries.

ACP should respect the license of the Tux image and acknowledge Larry and the Gimp, and even consider publishing the recipe under a Creative Commons License. ACP's parent company PBL Media is the other half of Microsoft's Australian online joint venture - ninemsn. I am sure MS wouldn't be too happy if someone created a clippy toilet brush without licensing their design.

I quite like the idea of a Tux cake. I can think of several occasions where it would be appropriate to prepare such a creation. As Ia am not that gifted in the kitchen any instructions on how to do so would be a great help to me (and I am sure others). After thinking about it for a minute or so I decided to I pony up the cash (12.95AUD) to buy a copy of the cookbook.

There were enough other recipes which looked like suitable for my son in the coming years to make it a worthwhile purchase. Avoid the other penguin recipe on page 86 is pretty lame.

The cookbook is available from amazon.co.uk (yes that is a referral code in the link) or if you are in Australia direct from ACP (the publisher).

I will be emailing ACP and Larry links to this post and will post any replies I get from them.

While doing some googling to see if any one else has blogged on this topic, I found a post from Bruce Everett about the book.

Update I have received something back from ACP.

Unlocking a Novatel Merlin U530 under Linux

Or another reason why I am glad that I don't use 3 anymore.

I should have posted this some time ago, but forgot and so it has been sitting in my Drivel drafts folder for a bit.

You might want to try these instructions under windows too, if you get a dud unlock. Just use another terminal emulator instead of minicom.

Skip the history and read how to unlock it

I recently switched from 3 mobile to virgin for my UMTS data. I already had a Novatel Merlin U530 card from three. The card isn't fantastic but it works pretty well at upto 384/64Kbps which is good enough for mail and feed reading (my main 2 activities on the train) or ssh.

When trying to get the card unlocked, 3 was less than helpful initially, which is pretty normal for them. Initially the operator told me that my card could not be unlocked, when I asked why I was told it was in my contract. When I read the contract I had signed to the operator I was put on hold. She came back and told me that it couldn't be unlocked, I told her it could as I had read online that it could. Then I hear in the background "just keep telling him it can't be unlocked". When I asked to speak to the person in the background telling her what to say she told me that there was no one telling her what to say. I told her I could hear the guy and that I wanted to either speak to the person or get their name so it could be included in a report to the TIO. I was again put on hold. About 1 minute later I was told that I would be transferred to data services.

After spending a little while on hold I got to speak to someone in data services. First they wanted to know why I wanted my card unlocked, I explained I could get a better deal elsewhere, to which the response was that I could talk to sales to see if there were any new offers available - I declined. Next I had to play 20 questions to make sure I was the account holder and that I was out of contract. After reading the IMEI code off the bottom of the card I was given the unlock code and told that I would be emailed the software - a zip file containing some Windows only application.

I had my content filtering too high so amavis bounced the message the first time. When I rung 3 back, at first 3 told me that I need to talk to my ISP as it was very strange that the message was bounced, I told them I would just use another account - my gmail account. The guy then told me that gmail bounces their messages, so we used my hotmail account.

So now I had the software, so I tried using XP under qemu to talk to the card for the unlocking, no luck. A few days later I borrowed a XP laptop from a friend. By now I had misplaced the unlock code. Back on the 3 merri go round, this time data services was happy to hand over the code. The operator waited on hold while I unlocked the card. I started the application, inserted the card, plugged in the unlock code and got the message confirming that the card was unlocked.

Later that day I tried using a vodafone SIM, no go. Another vodafone SIM no go. My Virgin SIM didn't work either. I tried using the unlock software which kept on erroring.

I thought going to a 3 store might get it fixed quickly. Basically I was told that as the card was out of warranty and I wasn't using a 3 SIM they wouldn't provide any support. The best I could do was pay for a firmware reload from a non authorised service centre.

Back to the 3 call centre merry-go-round. I explained that I was extremely close to lodging a TIO or Consumer Affairs complaint as the card useless and not working as advertised. I spoke to a helpful operator who told me he would escalate the job.

Over the weekend I spent a fair bit of time searching for answers. Eventually I ended up finding a list of AT+C modem commands. In the list was

AT+CLCK

which is for facility lock. I played with it a bit and found that network personalisation was still active, but no other locks were on. This seemed strange to me. I figured this is where my problem was.

This is how I unlocked my card. You must have a 3 (or locking carrier) SIM inserted in the card while attempting this.

I connected to the card using minicom by running the following in a terminal (I didn't need to be root).

minicom /dev/ttyS2
Minicom should then load and output something similar to this
Welcome to minicom 2.2

OPTIONS: I18n 
Compiled on Mar  7 2007, 15:10:03.
Port /dev/ttyS2

               Press CTRL-A Z for help on special keys
                                                     
AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0                     
OK                                                         

I then entered

AT+CLCK=?

which should return

+CLCK: ("AB","AC","AG","AI","AO","IR","OI","OX","PN","SC")

OK

This is a list of locks available on the card.

Enter the following

AT+CLCK="PN",2

Which means, for network personalisation (PN), query the status (2), which should output

+CLCK: 1

OK

The 1 indicates locked.

You will need your unlock code from your carrier - I do not know how to get it other than via your carrier. This is not a "how to unlock your card with the unlock code" howto. So replace <CODE> with your unlock code.

AT+CLCK="PN",0,<CODE>

The 0 is for unlock. If it works should get OK or something, I forget exactly the response, but ERROR means it failed.

Now your card is unlocked and should work with any carrier.

Use [ctrl] x to quit minicom.

Enjoy!

If you need the settings details for using a Merlin U530 with Virgin Mobile in Australia under Linux try the following