Guide to iPhone Jailbreaking
My guide to iPhone jailbreaking has been belatedly published on AusGamers. With firmware 3.0 out in the next few days interest will likely be pretty low, but it was still fun to do some writing in English for a change.
My guide to iPhone jailbreaking has been belatedly published on AusGamers. With firmware 3.0 out in the next few days interest will likely be pretty low, but it was still fun to do some writing in English for a change.
I guess this is a somewhat unusual setup, but I wanted my desktop to be usable as a Xen dom0 for testing and I need the nvidia driver for Xorg.
There’s two core problems here:
I’m using the x64 version of Ubuntu, I dont see why i386 wouldn’t work either. This text assumes you already have a working Ubuntu 9.04 desktop with the proprietry Nvidia driver installed from Ubuntu repository.
Step 1: Install Xen using Debian kernel. The easiest way to get a suitable kernel is to use the Debian Lenny kernel. This blog post neatly summarises the steps required: download linux-image and linux-modules from Debian and install, add ubuntu-xen-desktop package, remove network-manager package, and configure /etc/network/interfaces to use DHCP. I found that GRUB was setup correctly without needing any effort on my behalf.
Step 2: Remove repository-provided Nvidia module and install Kernel headers. The Nvidia kernel module as supplied by Ubuntu does not function correctly under a Xen dom0, if used a black screen is simply displayed and /var/log/X0rg.0.log will show that Xorg has frozen during startup. If you simply reboot into the new Debian kernel, you will not even get that far though, as the DKMS build step of the nvidia module will fail due to the missing headers. To get around the black screen problem you need to install Nvidia driver straight from their website, using a few flags to configure it to work on Xen.
Before getting that far though, you need to remove the Ubuntu-supplied NVidia driver and install Debian’s kernel header packages. I was using the “nvidia-glx-180″ package, so execute “apt-get remove nvidia-glx-180 nvidia-180-kernel-source”. Next, find the header packages from Debian corresponding to the linux image you downloaded in Step 1. In my case I am using “linux-image-2.6.26-2-xen-amd64″ and I needed three .deb’s: “linux-headers-2.6.26-2-common-xen”, “linux-headers-2.6.26-2-xen-amd64″ and “linux-kbuild-2.6.26″. You also need gcc-4.1 installed to build the module.
Step 3: Install the NVidia driver from their website. I downloaded NVIDIA-Linux-x86_64-180.60-pkg2.run , since that is basically the same version that Ubuntu supplies. This page on NVnews.net has the magic incantation required: as root, you need to run
IGNORE_XEN_PRESENCE=y CC="gcc -DNV_VMAP_4_PRESENT -DNV_SIGNAL_STRUCT_RLIM" ./NVIDIA-Linux-x86_64-###.##-pkg2.run
Now reboot into the Xen kernel and the Ubuntu desktop should appear as per normal.
The good news is everything “just works” from the install, but there is one minor configuration issue that the installer misses. The eee has a feature called ‘Boot Booster’, which requires a small partition (8MB seems fine) on the SSD with a specific partition type (OxEF, which is EFI partition).
I normally would just install with the “Use entire disk” option, but to get this 8mb partition left over you need to choose the option to partition manually. Assuming you have a 16GB SSD:
The rest of the installation can then be completed normally. After rebooting into Ubuntu, open a Terminal and run “sudo cfdisk /dev/sda”. From here, you can change the type of the 8MB partition to EF, then write the changes to disk and reboot. You will see the Asus boot screen one more time, then Grub appears. To make sure the change worked, hit CTRL-ALT-DELETE at the Grub screen to restart. This time the BIOS screen should be skipped and Grub will re-appear.
Stefan passed on this handy blog post discussing the IIS connection limit in Windows XP. The default is 10 connections which I had always presumed could not be changed, but it can actually be increased to 40 connections – which is a bit more useful if you need to do any performance testing.
At work I intermittently talk about “complexity spirals”: the phenomenon where someone makes the wrong – usually over complicated – choice in software design, but for time constraints or some other reason the development group is unable to go back and make the right choice.
Sooner or later, users want a new feature. That feature is complicated to implement on top of the wrong solution. If you go ahead and implement it, you’ve now got two complicated bits of code instead of two simple ones. Soon you spiral out of control, as the complexity piles up and it becomes very time consuming to add functionality.
All this can be avoided if you recognise the original design was wrong. This article on Raymond’s Windows blog interested me today, as its a well known example of where the “wrong” decision (.lnk files instead of symbolic links as first-class members of the file system) are so incongruous with the rest of the operating system that implementing what seems like a simple behaviour that users will want, is essentially impossible.
Back in 2005 I bought a large tower case and stuffed it full of hard drives to use as my home storage solution. I’ve been running Ubuntu 6.06 on it since it was released, but figure its time to upgrade to 8.04 so I can use some of the newer packages that have come out in the last few years.
Ubuntu have a page describing the procedure:
- Enable the “dapper-updates” repository.
- Install the new “update-manager-core” package – dependencies include python-apt, python-gnupginterface and python2.4-apt.
- Run “sudo do-release-upgrade” in a terminal window.
- Follow the steps on the terminal window.
And that’s pretty much it. The only real flaw in the system is that any software configuration files that you have changed and Ubuntu have also changed, result in a prompt being shown asking how to resolve the conflict. This works pretty well with two minor flaws:
Fortunately though the upgrade has gone without a hitch and I can now have some fun trying out iSCSI.
I’ve had to do this a few times, and always forget how so I’m noting it down here. With most linux applications, its simple to move to a new system: you copy the “dot” file or directory from the old system to the new home directory.
However, Evolution stores the account data in GConf which is slightly trickier to copy. This article explains the process, but it can boiled down to this:
Australian IT is running a story (found via AusGamers forum) covering another chapter in Australian censorship. This time we have a web site threatened with fines of $11,000 a day for posting a link to an anti-abortion website. And what is wrong with this website? Apparently it shows “disturbing” images of dead foetuses.
Is it illegal to possess such photos? No? Then what is going on? It’s amazing to me is how quickly the super-secret-censorship-list has been bent to suit special interests; the scheme isnt implemented yet and they are already beyond “protecting the children”.
trog has written about the lack of open standards in video. To be honest I would be happy enough if everyone switched to h264 and browsers had native support for that format.
The Ogg suite is a nice idea, but unfortunately I think is dead in the water – this field is so encumbered by patents its very hard to make a competitive product. Funnily enough with essentially all pirated HD material distributed in h264, the standard is starting to take hold in many hardware players too.
The only tricky bit for h264 is mobile devices; iPhone will play such video (though only at very specific encoding settings) and most other phones can’t decode it at all. Still, if we can’t solve this issue on the desktop what hope do we have of an industry wide standard?
Ted Tso has written an in-depth blog entry about the recent “ext4″ defect which he (and many other people) see as defects in the user software, not the kernel.
The core of the issue is applications that have been coded to an implementation, not to the API. This is an issue that hs been discussed a few times on Raymond Chen’s Windows blog, and has no easy solution. The kernel developers are wont to completely ignore backwards compatibility though, so I suspect the most popular “broken” software will be fixed pretty quickly.