Monthly Archive for December, 2011

CyanogenMod and a Telstra Samsung Galaxy S (GT-I9000T)

My brother has been complaining about his slow phone since.. well the day he bought it, so I’ve been recommending CyanogenMod since, well, the day he bought it.

Finally yesterday I had a chance to go over for lunch and a Linux hacking afternoon, but in the end I spent the whole time trying to get CyanogenMod (CM) on his phone. Finally, some 8 hour later, I got it working.

It was meant to be straight forward:

  • turn on USB debugging
  • root his phone
  • install ClockworkMod
  • backup
  • flash CM via recovery

Rooting the phone

CM has some great instructions on their wiki, but they don’t cover how to root the phone. I did some research and found z4root which is supposed to root his Froyo 2.2 based phone, but it just didn’t work no matter which version we tried. His slow phone was running anti-virus which caused all sorts of “problems” and was quite frustrating, but we were still full of hope when we moved on.

Then I came across SuperOneClick, a .NET application that is supposed to run under Mono, but ends with a windows.forms crash when you click a button. So, we found a dualbooting laptop and went to Windows.

That was a whole other level of pain.

Windows frustrations aside, SuperOneClick turned out to be SuperOneMillionClick, but it did root the phone, yay!

3 hours had passed and we had a rooted phone – that was meant to take 3 minutes.

Installing recovery
So now we had a rooted phone, time to install ClockworkModRecovery (CWM). This installed just fine, but we could never get it to flash the recovery to do a backup. Gosh darn it. This also meant I couldn’t flash CM either.

My plan of doing everything nicely, as safely as possible, with backups, goes out the window at this point. Time to flash a kernel (with CWM) directly onto the device, another method to get recovery on there (so that we can flash CM).

Needed to get Heimdall, but there’s no RPM for it. Could compile it, but I’ll just grab the deb. Where’s alien? No package for alien and it’s a deb package, too. OK. Just extract the deb, good, now do I have the dynamic libraries installed for it? Yes.

So, I flashed the kernel which completed successfully and rebooted the phone… into an infinite loop. Great, broke the phone. Fortunately, I could still get to the “Download” mode, which AFAIK is like a dumb serial mode that lets you flash stuff (no adb here).

So I hit #cyanogenmod telling them what I was doing and was told:

so then you *didn’t* follow the instructions
they clearly state to start from from stock 2.3

Which isn’t actually true, but fair enough. So I had a rooted (as in root access) rooted (as in broken) phone.. what to do next? I knew the Download mode still worked, because I could re-flash the kernel. Advice was to find a stock ROM and flash that.. but for the life of me I couldn’t find the right stock kernel. Apparently it doesn’t really matter, but 6 hours had now passed and I didn’t want to make things worse (like break the radio or something).

Then I had an epiphany. If I flashed a Gingerbread kernel (with CWM) and it broke, maybe I can find an earlier kernel that was for Froyo and flash that to unbreak it. I did some more digging and found one! I flashed this onto the device and…. and… infinite loop again. This time however I somehow managed to get into recovery, which was progress!

Flashing CM
Right, now that I had recovery I could try and flash CM7 to see if I could boot. First problem was, getting into recovery only worked 3/4 of the time. Second problem was, getting CM zip onto the phone. Fortunately I now had adb access (phew) so I pushed the zip onto the phone.

There were more issues with permissions and writing to the right card, browsing to the card under recovery, su that didn’t work, but I won’t bore you further with all that. In the end, flashing CM was successful and I was able to boot into it. Almost happy. The flash was a bit weird (it rebooted the phone halfway through, then continued flashing) and some things weren’t quite working like the SIM card (probably important in a phone) and the screen wouldn’t wake up from sleep, blah blah.

Fortunately, flashing CM7 put on a new kernel and new version of recovery. So I booted to recovery and re-flashed CM. This time it worked as expected and I booted up to a working CM7 – it prompted for the SIM pin and everything seemed to be running well.

So, after some 8 hours it was almost midnight, but I finally had CM7 on the phone. I went to bed.

More problems
I woke up pretty happy and couldn’t wait to tell my brother, so I SMS’d his wife but never got a reply. Called later and he checked the phone. No SMS! D’oh 🙁

SMS wasn’t working, but 3G and voice were. Time to re-hit Google.

Turns out some other people have the same problem and I need to enter the SMS Messaging Centre number into the phone. You do that by dialing:

Which brings up the Testing program, where you can browse to Phone Info, scroll down and enter the SMCS number.

For Telstra it’s supposedly +61418706700 but that didn’t work. Fortunately, I was able to get the number from my sister-in-law’s phone via the same method, which worked.

So, how to do it next time


Kororaa 16 reviews

ZDNet has published a review of Kororaa 16, if anyone’s interested. There’s also a nice video review on YouTube.

Kororaa 16 (Chum) released

It was a little while in coming, but it was worth the wait! It is my pleasure to announce the release of Kororaa 16 (codename “Chum”) which is now available for download.

Derived from Fedora 161, this updated release comes with the usual Kororaa extras out of the box, such as:

  • Tweaked KDE 4.7, GNOME 3.2 and base systems
  • Third party repositories (Adobe, Chrome, RPMFusion, VirtualBox)
  • Firefox 8 as the default web browser (with integration theme for KDE)
  • Firefox extensions included (Adblock Plus, DownThemAll, Flashblock, Xclear)
  • Microblogging client (Choqok for KDE, Empathy for GNOME)
  • Full multimedia support (excluding Flash, see next)
  • Installer for Adobe Flash plugin
  • Jockey device manager to handle drivers such as AMD/ATI and NVIDIA
  • Video editor (Kdenlive for KDE, OpenShot for GNOME)
  • VLC as the default media player
  • SELinux enabled (particularly worthwhile for Flash)
  • English (Australian/British) support & dictionaries
  • and more..

The GNOME 3 desktop has several custom themes available, as well as numerous extensions to provide an enhanced user experience (and help ease the transition from GNOME 2.x). It also comes with the GNOME Tweak Tool to allow further customisation.
Kororaa 16 desktop - GNOME

The KDE desktop has a custom layout with specific default applications, such as Firefox for the web and VLC for media, etc.
Kororaa 16 desktop - KDE

It is still recommended that existing Kororaa users perform a fresh install, however we are working on experimental support for in-place upgrade and hope to post more information soon.

Users still on Kororaa 14 should upgrade to 16 as the older version is no longer supported upstream. Unfortunately for users who wish to stay with GNOME 2.x, this means you will need to upgrade to GNOME 3. Do not despair however, Kororaa includes a desktop switcher for GNOME 3, so that users can switch between the new Shell interface and the 2.x style Fallback mode. Just run the “Switch between Shell and Fallback desktops” link on the desktop (see screenshot above).

Word of thanks
We are starting to get a nice little community around Kororaa and I’d to thank everyone for their help and support, which is greatly appreciated. I’d like to especially thank the following people (in alphabetical order), who have helped make this release possible:

  • Alan Gindlesperger (almigi)
  • Hedayat Vatankhah (Parsidora Fedora Remix)
  • Ian Firns (firnsy)
  • Jason Nielsen
  • Jim Dean (ozjd)
  • Liam Campbell (lijcam)
  • Matthew Oliver

We’d love to hear your feedback on the forums, so download it today and let us know! 🙂


Note: Kororaa is not provided or supported by the Fedora Project. Official, unmodified Fedora software is available through the Fedora Project website.

Recovering from 3rd party drivers, with Jockey

What happens if you enable a 3rd party driver (like ATI) with Jockey, but after a reboot your graphics is broken and you can’t log in to revert?

Answer: Use the command line version of Jockey!

Here’s how you can revert any installed 3rd party driver using Jockey from the command line:

  • At log in (perhaps with a broken X screen), switch to another terminal using the key combination:
  • Ctrl + Alt + F2

  • Log in as root
  • Get a list of enabled drivers from Jockey:
  • jockey --list

  • Disable the driver (such as the ATI driver):
  • jockey --disable=kmod:fglrx

  • Once it has finished, reboot!

When using Jockey, you should ensure that you have the latest updates applied, in particular the latest running kernel. This is because you might otherwise get a driver for a newer kernel, which might break your system upon reboot, or fail to activate.

You can also try using akmods with Jockey, which will build a new driver for you on reboot, if one does not exist for your running kernel (no matter what that is!).


Using akmods with Jockey in Fedora

By default, 3rd party drivers (such as NVIDIA and ATI) are pre-compiled against a specific kernel version and delivered in a kmod package. However when there’s a kernel update, it might block because there is no updated driver package yet available. This can also break a system if you update the kernel and reboot.

Wouldn’t it be great if the system could automatically build a new driver if required? Yes, and this is where akmods come into play.

With akmods, when your system boots it will check to see if a registered driver needs to be built. If you have an updated kernel, then akmods will build a fresh driver for that kernel and install it – no need to wait for a kmod to be updated upstream. This avoids the broken system scenario above.

While akmods are nothing new, you can now use them with Jockey under Fedora 16 (rather than just kmod packages). Simply download the RPMS from a Kororaa mirror and install (or you could build your own from SRPM).

You will need:

  • jockey
  • jockey-selinux
  • jockey-modaliases
  • jockey-gtk or jockey-kde

Post install, edit the /etc/jockey.conf and set “akmods=true”. Then, you can run Jockey and install the driver you want.

Jockey driver manager

You will also need build tools like gcc, make and kernel-headers (and of course, akmods), however these should be pulled in as dependencies of the akmod package.

This is still an experimental feature and any feedback is welcome!

Kororaa Facebook page

For anyone who’s interested in Facebook, I’ve created a page for Kororaa. I’m new to all this Facebook stuff, so if you have any suggestions, please let me know!