Blogs

Installing Cyanogen 5.0.4 onto my Nexus One

Here is my account on how I installed the latest Cyanogen ROM with the Google apps installed over the top. Anything you do to your phone as a result of following any of these instructions is completely your own responsibility, not mine!

After 2 months of owning a Nexus One  I decided it was time to try something other than the stock HTC/Google Android 2.1 that it was shipped with. I OEM unlocked and rooted my phone not long after it arrived. I just could not do without some of the conveniences I was used to like wifi tethering and speed!

A few things to note here before I get started on the detail. I did all of these things from a Linux installation and I had already OEM unlocked my phone and gained root access before. At the time of upgrade I was running Amon_RA recovery image and the MoDaCo version of the first OTA update.

To complete all of this, OEM unlock, install the Amon_RA recovery and subsequently install a custom ROM you will need to first grab the Android SDK which includes the "adb" command and a few others. You will also need to grab the "fastboot" command as well.

You can find good instructions on how to OEM unlock here and then installing the Amon_RA recovery image here.

Once you have performed both these operations the flashing of Cyanogen's ROM is a breeze.

I pretty much followed the instructions on the Cyanogen wiki page for install. Before you begin you will need to download the Cyanogen ROM and the Google AddOn ROM and copy them to the root directory (top level) of your Nexus One SD card. Once downloaded, the easiest way to get them there is via the Nexus USB connecting cable and drag'n'drop them there.

Disclaimer: Completing this install process will wipe your phone. This means you will lose all installed applications and settings, so I would suggest you find a good backup utility and back up anything that matters to you.

You will not lose anything from the SD card, so all your photos, videos, music and anything you have stored on there will be there when you are finished. I use "My Backup Pro" (the paid version) to back up all SMS messages, phone calls, home screen shortcuts and system settings. You can go without a backup and just install everything from scratch again, the choice is yours.

Flashing the Cyanogen ROM

The rest of the process is all done from your phone. So here goes.....

  1. Boot into Fastboot mode on your phone.
    1. Power off.
    2. Hold down the trackball and press the power button at the same time. Do not let go of the trackball until you see the bootloader screen
  2. Using the Vol/Up/Down button navigate down to the "Bootloader" option and press the Power Button on your phone to select.
  3. You will see the Amon recovery bootloader now.
  4. Navigate down to the "Backup/Restore" menu and take a nandroid backup. I cannot stress this strongly enough. Just do it - it could save your bacon!
  5. Next step is to "Wipe" the phone. This is a must do step...weird things will happen if you do not do this. This is where all apps and settings get erased! This is the one and only warning!
  6. Now select the "Flash zip from sdcard" menu option.
    1. Navigate to the Cyanogen ROM which you copied there previously and select it by pressing the trackball.  Confirm with a second trackball click.
  7. Once this is complete navigate back to the "Flash zip from sdcard".
    1. This time select the Google Add on ROM with the trackball. Confirm with a second trackball click.
  8. When this is finished, select the "Reboot system now" option.

All done! You will be presented with the original sign in steps to your Nexus One (you wiped it remember). Complete the process and be Wowed by the speed and extras features!

One cool option to enable is under the "Settings -> Sound and Display -> Display settings then find and select the "180 degree orientation". Spin your phone the full 360 and watch all the apps rotate with you!

Let me know what you think and if I have missed anything too :-)

Random thought on the Google Chrome OS

I just had a random thought on Google's Chrome OS announcement, in particular the paragraph on the simple architecture which they are planning on using:

"The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel"

Now if that is the case, where the hell is the Linux Chrome browser launch! I mean they are planning on releasing a full blown Linux based OS running the Chrome browser and we have yet to see an easy to install version of the browser for Linux based distros?

If I am wrong and there is a way to get Chrome working on a Linux distro (preferreably a 64bit version, as this is the way of the future right?) then please let me know where I can get my hands on it.

 

UPDATE:

Might have to take some of that back... I have just found and installed Chromium for Linux via this Fedora repo - http://spot.fedorapeople.org/chromium/

Also thanks to @jdub for the link to the Ubuntu PPA launchpad site for the Ubuntu nightly builds - https://launchpad.net/~chromium-daily/+archive/ppa

So now I am running Chromium on Linux under Fedora at the moment and will be installing it later tonight/tomorrow under Jaunty too :-)

Fast playback in Kino on a Pulseaudio system

I have only just found out that the default Fedora 11 install of Kino (when I say "default", it comes from the RPM Fusion repo) has a big problem with audo and hence the playback speed of DV files.

Everything is fine until you hit the platy button. There is no sound and the video plays back at around 10x. I found that the problem is, if Kino has an issue with the audio output device and cannot connect properly then it will try and auto determine the audio sample rate and up the speed of playback to match.

The solution is simple (although not obvious until you find it), you just run Kino through the "padsp" command. This emulates the old /dev/dsp sound device used in ALSA sound systems for the application which it invokes. So running Kino from the command line like this:

padsp kino &

works a treat. Under preferences you can leave the audio device enabled and listed as /dev/dsp and the problem is solved.

As usual with Linux there are a miriade of ways to automated this for launching in the future. You could add this as an alias to your ~/.bashrc file or create a script which launches the command and place it in your ~/bin/ directory. You can come up with your own ways, but I thought the simple way was to just add an alias to my ~/.bashrc file.

alias kino=`padsp kino`

You will have to log out and back in again for this to take effect before you run it.

I hope this helps anyone else out there who is banging their head trying to solve this problem.

Mobile email and which way do you go?

I am looking at the alternatives to running an enterprise BlackBerry server for about 15 staff. A relatively small group when I think about it and wonder how others deal with "enterprise" mobile email solutions. It is important that the mobile email solution is reliable and easy to use, but I would like to move forward and *open* the communications platform.

By open I mean that the solution needs to be able to lend itself to mulitple client scenarios. Staff need the same access on the desktop in the office, mobile device when in transit/meetings and just generally on the Internet with access to a web browser (mothers, brothers, sisters houses) when needed and available. Using an open standards and open source solution would be a real benefit and bonus as well!

So to this end it would be great if you could provide a quick pick answer to this question via this poll

Australian Optus HTC Dream update to Cupcake

This is my account of how I got the official US version as released via OTA updates to T-Moble HTC Dream handsets installed on my Optus HTC Dream. Most of the credit goes to the XDA Developer site and I will reference those pages below. ( The XDA developer site is currently down for me??, so I will update those when I can get access again)

I performed all of this process from a Linux system. If you do not have a Linux machine to do this from then I have seen many people do the same thing from Windows and Mac machines, but my instructions will be farily Linux specific. You can download and use almost any of the modern Linux distros in live preview mode to perform the same steps and use the same commands that I have here.

The whole process takes about 20 mins if you just run straight through ;-)

Disclaimer : I take no responsibility for any damage you may inflict on your device or anything else in close proximity while performing the update.

There are a few files you will need on hand before you get started. I have made the ones I used available here, using the file names I used on the process. There are links to the originals as well if you feel safer getting them from there.

OK then, in brief here are the steps I performed to get Cupcake installed

  • Back up all the files on the SD card - cause you may want to keep some of your music and photos etc. for later restore, I know I did!
  • Format the SD as a FAT32 filesystem - this will erase everything on it!
  • Find the CID number from the SD card
  • Reverse and zero  this CID 
  • Visit the goldcard website and submite the altered CID - you will receive an email with the image file attached
  • Write the image file to the boot sector of the SD card
  • Copy the RC29 image to the root of the SD card
  • Power off the phone
  • Power on pressing the Camera and Power buttons together
  • Press home to continue with the update
  • Once installed and rebooted, copy the US Cupcake image to the root of the SD card
  • Power off the phone
  • Power on pressing the Home and Power buttons together
  • Slide open the keyboard and press the ALT + L to view the logging process
  • Press the ALT + S to start the update.
  • Two reboots later you will be presented with your new Cupcake'ed HTC Dream
  • Enjoy!

Now to the detail....

1. Connection and backup

Plug the phone into your PC. Mount the device and just copy all the files from the SD into a directory on your PC. The first ROM update will erase all your installed applications from the phone (you have been warned - this is the first warning) and the next step involves formatting (erasing) all content from the SD card - hence this backup.

2. Formatting the SD card

This is the second warning - THIS STEP WILL ERASE ALL CONTENT ON YOUR SD CARD!!!!

On my system the SD card was mounted at the /dev/sdb1 mount point. Your mount point may differ. You can use the "mount" command to find out the correct mount point for this step.

mount | grep -i vfat
/dev/sdb1 on /media/C1B4-7B87 type vfat (rw,nosuid,nodev,uhelper=devkit,uid=603,gid=603,shortname=lower,dmask=0077,utf8=1,flush)

This will show you all mounted filesystems of type "vfat". You may have more than one on your system, but it should be listed as mount "on /media/Cxxx-xxxx" or something similar.
You will need to unmount this drive, but not disconnect the device. To ensure that when you unmount the device but leave it accessible by the operating system it is best done from the command line

sudo umount /dev/sdb1

You should now still be able to access the device to be able to change the format of the partition and format the device.

sudo fdisk /dev/sdb
p  (this prints the existing partition table)
t   (this selects the change partition id command)
b  (this sets the only and therefore selected partition to type VFAT32)
w  (this writes out the changes to the partition table and exits the program)

This will change the system id of the only partition on the SD card. Now you will need to format this partition as a FAT32 filesystem

sudo mkfs.vfat -F /dev/sdb1

Now as a test, unplug the phone USB cable and re-attach. You should be presented with a freshly formatted external drive. There may already be some files on the drive, but they will be as a result of installed applications which automatically create these as needed.

3. Finding and submitting the CID number

You will need a terminal emulator to get this information. The basic, free and easy to use terminal emulator I used was "Terminal Emulator" from "helloandroid.com". You may use any that you wish, they all function essentially the same and prove fine for the following use. You are after a 32 character string, which needs to be reversed and have the final reversed versions first 2 characters replaced with zeros. Here is an example:

03534453553031458331aca6f70091a6 -> when reversed becomes....
a69100f7a6ac31834531305553445303 -> take each 2digits as a pair and copy them all over in reverse
009100f7a6ac31834531305553445303 -> just alter the first 2 digits to zero

To obtain your own CID from the SD card in your G1 you will need to start up the Terminal app and 1st find the directory containing the file. This is slightly different for each of us. So execute the following commands to find and export yours.

cd /sys/class/mmc_host/
ls -> this will show a directory listing and there will be a directory labelled mmc1:xxxx
cd mmc1:xxxx -> as listed in the above command output
cat cid > /sdcard/mycid.txt -> outputs the CID to the root of your SD card.

Now you will need to submit the reversed and zeroed content of the this file (as demonstrated above) to the GoldImage creation website. Save the attached file which is sent to you from this submission.

4. Writing the images to the SD card

Copy the first image to the root of the SD card. I used the US RC29 image for this step. My guess is that you can also use the EU RC7 image, but as I was aiming towards having the US CRB43 as the final I went with the US here. You can download the file I used from my web site here, or the original where I downloaded it from here.

Once you have this file extract the contents to the root of the SD card. Leaving the name unchanged. The name I had was "DREAIMG.nbh".

Now comes the more difficult part. You will again need to unmount the SD connected drive, but leave the device accessible and write out the goldimage file which you have saved to your PC and called "goldimage.cid" (in my instance). So in line with the above instructions, open a terminal on your PC and enter the following commands:

umount /dev/sdb1 -> remember that your mount point may be listed differently
dd -if=~/download/goldcardimage.cd -of=/dev/sdb -> writes the file attached to the goldimage email to the boot sector of your G1

Now you can disconnect the G1 from the PC and are ready to perform the first ROM flash and changes!

5. Flashing and update - phase 1

FINAL WARNING - This will erase all applications (which you can re-install from the Android Market place) and all other phone settings.

Now you can power off the phone. To start the phone hold down together the Camera button and Power button to boot the phone. After a few seconds you should be presented with a screen saying something like "Press home key to update phone" (not sure on the wording, but.....)

You will need to wait while the phone updates and and reboots. You will then be looking at an early release of Android.

To log into your flashed device you will need to add an APN to the phone. For Optus I used the following (only changed settings are listed):

APN : yesInternet
Username : *
Password : *
MCC : 505
MNC : 02
APN type : default

6. Installing Cupcake

You will need to get the latest Cupcake build from the official site here or I have the one used located here from my site.

Once your phone is back up and running. Connect the USB cable and mount the SD card to your PC again. This time you need to copy over the latest version of the Cupcake ROM to the root of the SD card. Really importantly you need to ensure that the file name is correct. It needs to be listed as "update.zip". Here is the command I executed to ensure that I got this right.

cp ~/Download/android/signed-kila-ota-148830.de6a94ca.zip /media/C1B4-7B87/update.zip

Once that is complete, unmount the device from your PC and you are ready for the final install step.

Power off the phone and this time boot by holding down the Home + Power keys. You should boot to a screen with an exclamation mark in a triangle over a ROM. Open the keyboard and press ALT+L to enter the log view mode. Then (following the onscreen instructions) press the ALT+S to run the update.

When this completes, there will be 2 reboots to flash the firmware for radio and system and you will be up and running with Cupcake, as released OTA by T-Mobile in the US.

I am really looking into flashing my phone with a JF release and will apparantly need to "root" the device to do this, so stay tuned for a possible further update.

Let me know if you have success or otherwise and of course if there are any bleeding errors in this post.

Linux on the desktop...

A recent study of Linux on the desktop suggests that cost is not always the motivating factor in migrating, although it was the most common. Other factors included increased security and decreased ongoing maintenance and support costs.

"The new report “Linux on the Desktop: Lessons from Mainstream Business Adoption,” conducted by Freeform Dynamics and sponsored by IBM, showed that Linux desktops were easier to implement than IT staff expected if they targeted the right groups of users, such as general professional users, who have moderate and predictable use of e-mail and office tools."

The report suggests that deployments should be performed based on objective targetting. Rolling out Linux desktops to transaction workers and general professional users is going to create less back lash and resistance to the change in operating software than it would to the more creative, power and mobile professionals.

The report suggests running two operating system platforms (Windows and Linux) would provide the best mix of cost savings and end users acceptance and satisfaction.

I agree with the overall outcomes of the report and have been thinking really hard on a business case which would gain approval and motivate the CEO.....time will tell on that one :-/

Australian NSW computer in schools program

After reading the recent article on the AustralianIT website, I had some thoughts and questions on the decisions which have been made.

Now I know there would many reasons why the decision to go wtih Microsoft and Adobe have been made for the NSW school laptop program (hopefully not for Govt kickback $$). But I would like to pose a question. Why not Linux and open source software in general?

The obvious first point is cost $27 million in licensing vs $0. That has to bare some weight right? To move on to some other technical points though...

Wouldn't any forward thinking body, and hopefuly that is what we have as a government in general, be aware of emering technologies and techniques and that the software delivery model (talking cloud and SaaS) is almost at a "Tipping Point". The software community/business model is changing and even the largest internation companies including Sun, Oracle, IBM and Novell are all leaning towards using Linux and open source as the platform and methodology of choice.

While these corporations still continue to charge for enterprise support and maintenance (usually an option is to also run with the unsupported and more *bleeding edge* versions) they are basing their business models on open source software technologies and solutions.

So to put a 6 year old operating system with a completely proprietary graphics suite and office suite together in a bundle to the fastest adopting and quickest learning minds in the country is a bit, dare I say it backwards, to say the least?

Why not position the schools and students in a position to learn with and use the latest technologies in an open arena (which has to be better for educational methodologies) and provide a set of open and standards compliant graphics and office suites which are going to move into more mainstream use in the very near future.

WIth the latest Linux distributions on offer there are a vast array of security and management tools available which provide more than adequate facilities for mass deployment on this scale. The bundled software is of such high standard and quality that is rivals and oftern surpasses that of the few proprietary applications which will be preinstalled and shipped with the selected laptops. There is also the added advantage of the huge repository of other open source applications and developers which can be installed/deployed easily.

So my question is to the powers that be and solutions providers who have made this decision, why, and can you please justify (and I will accept a logical answer to this question) why you have not gone with a predominantly open source solution for the NSW schools laptop program?

New Arrival...

Little bit off topic from my normal post and I am going to adjust the categories to reflect a change in postings this year, but first things first.

We are very happy to welcome Andrew Jai Manning to the world. Weighing in at 4.21 kgs (9lb 4oz), 52cm long and 36cm head diameter - he is little bundle of joy number 3 for us!

Cathy and he are doing well after a natural birth (albeit long painful and drawn out) and his 2 elder siblings are besotted with their new little brother.

Some photos are up on our Flickr stream.

Short and sweet - that is all for now.

 

PS - this is a repost after moving the site :(

Mobile phones and mobile web interfaces

Lately I have been playing a bit with various fat client applications for my Nokia e61i. I have been comparing the features and ease of use offered by the default Symbian S60 clients (and other vendor supplied "thick client" applications) with those offered by the service providers mobile web interface (if they have one?!).

I am talking about applications which use the web as a main focus and resource E.g. - email, IM, Twitter, Internet search and RSS to name a few.

I am trying to figure which approach is the best for me. I am also concerned with how easy it is to go between using my mobile and a laptop or desktop computer. I realise the experience is always greater on the laptop/desktop but I was out to test whether the fat client mobile approach is better than the web mobile interface/client.

I am basing my thoughts, not on any one application/website in particular, but more on the ease of use for me on my humble mobile device. I am looking for the best solution between the mobile client and the web interface on a mobile device.

Things that are against the fat client approach include:

  • The time it takes to fire up one of these applications.
  • The resources chewed up on the phone.
  • How easy/fast it is to flick between applications.

Things for the fat client approach include:

  • Integrated into the phone so you know it will be there and *just* work.
  • Provides an integrated approach between applications and information portability. E.g. Taking photos and sending them directly via email all works easily as the pre-installed apps all talk to each other.


Things that are against the web interface:

  • You need to be connected to make it work at all
  • The current cost in being connected and using data can be expensive if you are not careful.
  • The speed is sometimes a little slow depending on the connection you have.

Things that are for the web interface:

  • Everything you do is live and replicated to every source every time you use it - instantly
  • Sites which are designed to cater for mobile web are fast and easy to use
  • All performed in the one place on the phone - no need to have multiple applications running at the same time (although I can if I want too, iPhone users :-p)

So what if I access them all through the built in web browser and the WiFi connection. I can quickly flick between "bookmarks" for the services which I am interested in and these days as the service providers are becoming savvy enough they are providing mobile specific web interfaces which are cut down graphically. This provides a fast load time and zero load on the phone web browser.

So I think I have a tendency to leaning towards the web interface and access (on a 3G/NextG device). If this is the case then I would stick to the *cloud* for all my mobile web interface. Although I am still struggling internally (in my head) with the *fat client's* doing everything you need (albeit not as attractively - to look at) as the web interface and there being a some vendors who are failing in the mobile web market.

Looks like I will be using both methods for a while to come.....or maybe the Google phone will change all this???

PS - This is a repost after my hosting provider had a server crash and lost the last one

CentOS 5.2 as my desktop

Just for kicks (and to see where it is at) I downloaded the latest CentOS 5.2 final and installed it onto my laptop. The idea was to see where the latest offering from RedHat was at in terms of the laptop/desktop world.

Right off the bat during the install the whole process brought back some memories of good 'ole RedHat days. The installer looks the same as it has done for the past 3-4 years and went very smoothly. Nothing unexpected in the whole process and all my hardware was detected and configured correctly, even the sound card produced - wait for it - sound which has given all other ditros grief in the previous 6 months. This had me with a good gut feeling right out of the gate.

As expected none of the packages were of the latest breed, they were all a couple of points behind the bleeding edge. That is what you would expect from an "enterprise" desktop, stability not state of the art. That being said, I had no problem adding the RPMForge repo and installing a few other packages which I needed to have my laptop up and running as a usable and productive machine. I am referring to things like ndiswrapper (because I have a new and unsupported wireless card) and all the gstreamer (because I need to listen to audio for work) add-ons which enable playback of all the bad codecs commonly seen.

Compiz was part of the default install and I needed to grab the NVidia proprietary drivers and install from command line to get it all working. Not that bad or hard to do and understandable coming from an "enterprise" distro who pride themselves on including no proprietary software.

So I have used it for a day (it really only took about 1.5 hrs last night to install and setup) and I am impressed enough to say that this install would be complete and stable enough for my Mother and Mother-in-law for that matter. For me I would like to have access to the bleeding edge installs for things like Banshee-1, Twitux and F-Spot just to name a few.

So for the last couple of months I have been trying out all manner of distros including Fedora9, Fedora 10alpha, Suse Linux Enterprise Desktop (SLED10 SP2), openSUSE 11.0, Ubuntu 8.04 and now CentOS 5.2. I still keep coming back to the Ubuntu install??? It has all the packages I need available via the multiverse repos and is stable enough that I can suspend my laptop (which works out of the box even when using the proprietary Nvidia drivers) for over a week of work and home computing without rebooting.

In conclusion I would highly recommend the latest CentOS release as a stable, easy to install and up to date distro which "just works" on the latest hardware. That being said I will be switching back to Ubuntu tomorrow mainly because I like to stay closer to the latest software versions, but no close enough for it to break regularly, ie Fedora10alpha (it is alpha though!!)

Syndicate content