So TF2 works with ATI on Steam for Linux after all…

I figured there has to be a way to get things working, and there was! After some diligent googling, I was able to find this page, which lists the steps to get TF2 working through the native Steam for Linux client. I tried it out, and had it working within 15 minutes. Trying the game out in an online game, I had an fps (and an otherwise smooth experience too) of between 60 and 140 as reported by the game itself, using the developer console, and the command cl_showfps 1. In short, you enable the ppa:xorg-edgers/ppa repository, apt-get update/upgrade, and reboot. You should get a fresh set of drivers and a newer version of xorg and related libraries. If you are using a Radeon card like I am, you will get a “Testing Only” watermark, or something similar, in the lower right corner of your screen. This can be removed by editing /etc/ati/signature (though i had another file by this name as well, under a different path, I edited that as well), and replace the string found in the file with (all in one line):

9777c589791007f4aeef06c922ad54a2:ae59f5b9572136d99fdd36f0109d358f
a643f2bd4a2644d9efbb4fe91a9f6590a145:f612f0b01f2565cd9bd834f8119b
309bae11a1ed4a2661c49fdf3fad11986cc4f641f1ba1f2265909a8e34ff1699
309bf211a7eb4d7662cd9f8e3faf14986d92f646f1bc

In all the game went from unplayable to an enjoyable (and fast!) regular game! On Linux! The setup I have is: Xubuntu 12.10, using propietary fglrx drivers from the xorg-edgers repository, Radeon 6850 card, on an Intel i5 build (Asus Z68 motherboard). I also am running in dual-screen mode, and the game still worked fine (on the one screen, as I wanted).

Just a short post here, nothing more to report as of yet. Waiting for Left 4 Dead and those other games that I like a bit more than TF2…

Thanks to ‘iamoverrated’ (you are shirley not overrated!) on reddit. For the console command in TF2 i used this page.

Adventures in Windows-land – The mystery of the disappearing system partition

goes without saying that if you brick your installation, blame yourself.

This weekend I had some issues with Windows 7 that I have not seen before. This is rather rare. I sit at my computer pretty much 12-18 hours every day. The thing I was seeing was the 100 MB “System Reserved” partition (containing the Windows bootloader) popping in and out of explorer. What I mean with that, is that the normally hidden system partition was randomly getting a drive letter! I noticed it while i was transfering some files to my media pc, and i saw the “my computer”-view uhm.. vibrate up and down. This was because the drive was getting the F: drive letter, and then losing it the same second. Over, and over again.

Some background: This drive is created if you install Windows 7 on an entirely empty disk. You *do* *not* need it. You can have your bootloader on your C: drive, and skip the 100 meg drive entirely if you so want. The way to get Windows to install without it, is to partition the drive ahead of time, use some tricks, or remove it after the fact (like I ended up doing). The contents can be moved to the C: drive and after rebuilding the bootloader, you will be fine. I am living proof.

But so back to the weird-ass bug. I tried diskpart to see if I could remove the drive letter assigned to the system partition. I could not. I would get one of two errors, probably because it didn’t really have a drive letter (for longer than a fraction of a second). I tried assigning a letter to it, and then removing it using:

list disk
list vol
sel vol n
assign letter=x
remove letter=x

No dice. After a reboot or so, the problem would randomly return. Note: It did not always do this. There is something that triggers it, but I was unable to find, or replicate the issue. Randomly it would just start getting a drive letter assigned to it, and then having it removed instantly.

Ok so next, I decided to remove the drive. Here’s how I did it:

First, I went into disk manager (this can be done from diskpart as well), and right clicked my C: drive, and then “Make this drive active”. This makes it so that you can even begin to try and boot from C: without the 100 MB System drive. Next, I assigned a drive letter to the 100 MB partition, so that I could browse it’s contents. I set it to K:, and went into explorer. You need to enable “show hidden files”, and “show protected operating system files”. Copy over everything to the root of C:. Skip any files that you can’t touch (there were two for me).

Next, you need to recreate the boot configuration on C:. First, unload the running conf by running this in an administrative command prompt: reg unload HKLM\BCD00000000. Then, rebuild the boot config with: bcdedit /store c:\boot\bcd /set {bootmgr} device partition=C:

Now go back and remove the drive letter assigned to the system reserved partition, and double-check to make sure the C: drive (or whatever your Windows drive is) is set to active. You should only have one active drive, the C: drive. Your computer might now reboot correctly. Did not for me.

I rebooted and it said partition not found or something similar, so I booted from the Windows 7 USB stick I made, and then chose system repair. It suggested a repair, and i went with it. I was able to boot into windows now, after some modifications to GRUB, since I dual-boot. But that is not a Windows 7 issue per se, I’ll still go through that.

I removed the system reserved partition from Linux and resized the C: drive to fill the 100 MB preceding it. You could do this from Windows disk management too.

After doing this, I had some issues with Windows. It would boot into a “no profile”-mode, and say that it is not genuine. This was because there were some left over registry settings that had to be changed, because I had messed up with the drive letters; namely left a drive letter to the system reserved partition. So I now had some moved-around drive letters, and a drive that didn’t exist anymore, that were still referenced in the registry. I was in the “Windows is not genuine!” mode, which only shows a desktop and the watermark in the lower right corner. How to proceed?

Do a ctrl+shift+esc to open task manager. File -> Run -> regedit. Now, to to HKEY_LOCAL_MACHINE -> SYSTEM -> MountedDevices and look for the different drive letter assignments. You’ll see various drives, named \DosDevices\C: etc. What you want to do is, flip them around so that your C drive is really your C drive. For me, it had flipped around with the F: drive, so i renamed the C: drive in the registry to \DosDevices\Z:, and then renamed the former F: (really the C:) to \DosDevices\C:. You can get help by doing File -> Import, which will show you explorer, so you can look around at how your drive letter assignments look like. Close regedit, do ctrl+alt+del and logout, and then reboot from there.

After the reboot, remember to activate Windows, which should be no issue. Or just run the Genuine Validation tool/website.

The GRUB issues

GRUB as I said, had some issues with all this. Firstly because the boot drive was no longer /dev/sda1 (which was the 100MB system drive), but sda2, which is my C: drive. That had to change. Also, GRUB 2 (I’m running Mint 13 at the moment) has an entry with the UUID for the boot drive, which also pointed to the now-nonexisting sda1. Both of those had to change in order for GRUB to correctly boot. I did this by installing boot repair in Mint. You can also download the ISO and boot into a live-cd environment and do the fix from there. It’s pretty self explanatory. Google for boot repair or check this site. Any live-cd will do though, since you can really fix this by hand too. Look at /boot/grub and /etc/grub.d.

Sources: http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_install/blue-screen-this-copy-of-windows-is-not-genuine/1d8dfdad-2ea4-43be-a049-360429cc2d57
http://www.terabyteunlimited.com/kb/article.php?id=409
http://technet.microsoft.com/en-us/library/cc757491%28v=ws.10%29.aspx

The SSD, Slipstreaming Windows 7 and installing from USB

Ok so the SSD is now installed. It’s a Samsung MZ-7PC128B/WW, that is, a Samsung 830-series 128 GB drive and the final B stands for “bulk”, i.e. does not come with any mounting brackets, cables or doohickeys. On second thought, the mounting brackets would have been cool, but since the drive weighs 61 grams and doesn’t contain any moving parts, i think you can essentially put it anywhere. I have it tied down with some velcro at the moment. Though, my case needs replacing anyway, so I’ll just do properly when i get the new case in September or October. The case I’m getting is a Fractal Design’Define’ R4, in the black pearl color. Retails for about 100 euromoneys.

The SSD then. It had the latest firmware (that came out sometime in January), so an upgrade was unnecessary. The software used to update the drive is called ‘Samsung SSD Magician’, and can be downloaded from here. It’s also on the CD that came with even the bulk drive. The latest firmware is CXM03B1Q, and you can get it from that same page. Click “See All Downloads” and then either the software or firmware page. But if you buy your drive now, chances are it’ll already come with the latest firmware. The Magician software does other things too, such as suggests performance enhancing options and you can benchmark the drive, so i figure it’s pretty much a good thing to have around.

I did a complete re-install of Windows 7 since I wanted a completely clean start. Before starting, I made sure i had AHCI turned on in the BIOS, which I did, by default. AHCI is something you really want when you have an SSD since it offers some optimizations (hotplug capability, and Native Command Queueing for instance) with newer SATA-drives versus the standard PATA emulation and other modes. Changing it while having Windows installed is not something I’d try, but maybe it can be done. It’s a small registry change, which involves changing the dword value of “start” in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci to 0 (zero). This means AHCI is enabled. If you have AHCI enabled in BIOS and do a clean install, AHCI should be installed (It was in my Win 7 SP 1 x64 at least). I had also integrated the AHCI drivers for my motherboard into the Windows 7 install media using RT Seven Lite.  That’s also how i integrated SP1 into my non-SP1 media. Finally I used these instructions to get the installer on a USB stick since I tend to avoid optical media if I can these days. You could also use RT Seven Lite to make the .iso and use this tool to get the job done.

Ok so Windows 7 installed, time for some other settings. I used the recommendations in SSD Magician to do these, but you could do them by hand too. For SSD drives, it is recommended to disable scheduled defrag, since it puts unnecessary strain on an already fast drive. Also, you should disable disk indexing, since searches are fast anyway, and again you don’t want unnecessary reads on the drive. Make sure you have TRIM enabled, using the command  fsutil behavior query DisableDeleteNotify  in an administrative command prompt. If the value returned is 0 (zero), you have trim enabled. If it returns 1 (one), then you don’t have trim enabled. In that case you can use fsutil behavior set DisableNotify 0 to enable it. Reboot required.

A note on Windows 7. The slipstreamed SP1 install worked fine, and changing the drive from mechanical to SSD did not require a re-activation by phone. The online activation worked just fine.

Samsung also recommends that you disabled “Super Fetch”, which can be done using the Magician tool or manually.

Boots are not as blazingly fast as I’ve heard, but there is a difference in how snappy things feel. The Windows Experience Score, whatever that stands for, is now 7.5 determined by the lowest sub-score, which is no-longer the Hard Drive, but the CPU (amazingly enough!), the i5 2500.

I’ve partitioned the drive so that i have 90 gigs for Windows, and the rest for my Linux operating system partitions. I haven’t yet installed linux, so I’ll tell you more if there was anything special about that. All the relevant SSD features should be supported as of kernel 2.6.19+ and OS X (should you be stuck on that..). So any modern Linux will basically have all the features you want.

Sources: SSD stuff primarily adapted from this, http://muropaketti.com/artikkelit/ssd-asemat/opas-nain-otat-ssd-aseman-kayttoon (on 10.08.2012) and from Samsung’s sites as well as some comments and forum posts.

The i5 build notes

The i5 build is now complete and in production. The final specs are as follows:

  • Asus P8Z68-V GEN3 – 129€
  • Intel Core i5 2500 – 196€
  • Kingston Hyper-X (blue) 8GB – 55€
  • Sapphire Radeon 6850 1GB – 161€

For a grand total of.. 541 bucks. Prices were from the day I ordered, that is monday 30th of July.

Things I maybe would have changed, but decided not to: Get some higher perfoming memory, get a Core i5 2500k (unlocked, but then, i don’t really do overclocking), and get a Z77 motherboard. Though! The Z68 from Asus has all the features that Z77 promises. Support for Ivy Bridge (the new 3rd generation Core processors), support for PCI Express 3.0, and support for USB 3.0. Of course, I haven’t tested any of these yet. An Ivy Bridge processor would have been cool, but they are still slightly overpriced in my opinion. The new 22nm process would perhaps allow for even lower operating temperatures, though Muropaketti had an article describing the crappy heat-conductive paste used between the actual CPU core and the heatspreader, which leads to higher temps. In the article, they replaced the paste with higher quality stuff, and reseated the HS, and got much lower temperatures. Of course, this voids the warranty…

I could also have paid more for a graphics card, such as the 6870 or even something from the 69xx series, which would have come with higher clocks and more stream processors. But this seems to work just fine for what I’m currently playing. And remember, there is no such thing as futureproof, no matter what the guy behind the counter says.

All components were bought from Verkkokauppa.com, because they were the only ones that had the parts right now. Not a fan of waiting personally.

Some noteworthy things.  Using the stock cooler on the CPU i get down to 25 degrees idle (the CPU does clock down when idle, so that explains it). During heavy load-testing, using the Intel Burn Test, i can get it up to 79 degrees while using all four cores @ 3.7 GHz (the ‘Turbo’ mode). Nothing to worry about, since full load on all cores is not something you see in production use. Also, the processor can take the temperature quite well, and did not crash even when running multiple iterations of the burn test. According to various internet resources, the CPU can go up to around 100C before clocking down and eventually forcing a shutdown.

The memories are specced to CL9 1600 MHz. The CPU will only do 1066 or 1333 MHz, but using something called XMP (i’ve yet to go through what actually changes when you go this route), you can get the memories to run at 1600 MHz. There are varying resources of this on the internet, but based on the output from CPU-Z and the BIOS, the memory should really be running at that speed.

The motherboard gets high marks. The BIOS is something way too fancy for an “old” bastard like me. You can use a mouse. A mouse. You can also update the BIOS from within the BIOS using Asus EZ flash, which has access to say, a USB drive that you plug in that contains the BIOS image file, or even your normal hard drives. So you can just download the file on your desktop, and then boot to BIOS and point to the file on your drive. Handy. There also seems to be more settings in there than I really have use for. I updated to the latest BIOS, version 3402, which is what I am using now.

Windows had to be re-installed and re-activated of course, when switching from the previous AMD to the current Intel platform, but there were no issues with that, except for one human error, which i’ll get to later.

I still get a 5.9 score from Windows Experience, but this is due to the hard drives being the bottle neck (and lowest score). All other scores are above seven, but the 7200 rpm SATA drives are what is keeping everything on the down-low. So they are next to be replaced. I’m getting, probably, a 128GB SSD drive next month. This will be split into two partitions, for Windows 7 and for Linux. It should set me back around 130 bucks. I’ve been looking at the Intel 330 series drives, as well as the OCZ Vertex 4, both of which have performed well in tests. E recently got a 330, so I’m waiting on her experience on that one. Also, I read quite an extensive review on Anandtech about both drives.

There was only one thing that was messed up during the install, and that was my fault entirely. Currently, this machine has two 500GB drives. One has the operating systems, and the other has various stuff on it, including a truecrypt partition. When re-installing windows the drives were reversed, so that the OS drive was drive 1 and the ‘misc’ drive was drive 0. Being me, and being windows, i selected the OS drive and the partition for it to use. Only, I hadn’t counted on Windows overwriting the MBR of the ‘misc’ drive with it’s own crap. Normally, this would not be an issue. But since truecrypt has some stuff on there to identify the partition as a truecrypt volume, it messed up the TC volume. Rather, the data was still there at some point, I think, but TC wouldn’t recognize it because the MBR was fucked. TC has a feature where you can use a backup header, which is stored inside the actual volume, but this didn’t for some reason work.

Now, here comes the saving grace: Backups. I have backups of everything, so I decided, being in the middle of Assembly 2012 (the subject of an entirely different post), that I wouldn’t waste time trying to rescue the volume. Instead, I ended up reinstalling windows one..last…time..This time switching the drives over correctly. Then i completely wiped the ‘misc’ drive and wrote over some random data using dban, so I could start over from a clean slate. Learnings from this episode? Maybe i’ll use containers instead of entire drives or partitions. And if I *do* decide to use partitions, i’ll make it an entire drive, and remember to disconnect it when doing reinstalls.

Some words on performance. While I haven’t really run any extensive benchmarks, the ones I did run show that the system is performing as intended. Futuremark’s 3DMark 2011 shows my system is at the top of the bell curve for similar systems, scoring something like 3500 points. My favorite FPS, Battlefield Bad Company 2, showed a great increase in FPS (not so surprisingly….), and I can now pretty much max out the settings and still get an average of 60 fps. There is one instance where FPS goes down, that is, when I am inside a tank, when the tank fires and produces smoke from the muzzle, fps goes down to like 30. Oddly enough, standing outside the tank, viewing the same smoke does not have the same effect. Oh well, I can live with that. Most of the time, when not in action, I get 80-90 fps which is much more than I need or even can use (having a 60Hz screen). The old setup would go down to 15 fps in action, and max out at about 40, using lower settings. I’m now running with 1920×1080 resolution, High for all the graphics settings. 2xmsaa, and 16xanisotropic, no vsync to blank, no hbao, and no bloom.

I have some pictures, but i’ll post them later.

Mac Museum – Cubic

It was time to tackle the Apple G4 Cube. This was something I knew I wanted to have, at least ever since I read “Pattern Recognition” by William Gibson. In the book, the protagonist stays at a friend’s London flat, and uses his G4 Cube. The cube plays a small role, but i was fascinated by the vivid descriptions of the thing. In the book, Gibson describes the cube “breathing”, as it was in sleep mode. By this he meant the power-light and how it pulses in and out if the machine is in sleep mode.

I was lucky enough to get one through a friend (thanks). Buying one is rather hard, and if you’re able to find one, it’s usually far away or reaaaal expensive. I’m talking hundreds of bucks for a 10 year old machine. And if you’re lucky enough to find one, the chance of it being in mint condition such as this one, are slim to none. Okay, mint may be too strong a word. There are two USB ports on this baby, and one of them is broken. Actually, I think i fried a mouse (yes, a mouse), by hooking it up to one of the broken ports. It got really hot, and stopped working eventually. I opened it up, and the main chip was all black and smelly.

Anyway! On to the install. As for this one, I had to do the same tricks as for the Power Mac G4 described in the previous article. I had to open it up and replace the DVD drive in order for it to properly read the Leopard disk. It would start the install, but go no further than the Apple on the grey background, and the spinning loader thing. I jumpered the replacement drive as slave, as i assumed (without looking further), that the HD was master. This machine has one IDE bus, with place for two devices, where as the Power Mac has two buses.

I also had to do the same frequency hack in order for Leopard to install. Look at the previous article for the howto.

Partition the included 80 GB drive with the Apple Partition Map and hit install. Time remaining? 2 and some odd hours. It’s still installing.

Here are some pics.(will post after install is done)

G4 opened up with an alternate DVD drive hooked in. Note the cool Iron Man:ish light.
Cube, Alternate angle.
Cube with outer shell visible on the left.
Screenshot of the installed and upgraded system.

Mac Museum – Installing Mac OS X 10.5 on below spec hardware

So as I mentioned in the previous post, I came in to posession of an old Apple Power Macintosh G4. Now, I already own a Mac Classic from ..what, the late 80’s? A-aand the G4 Cube. I like Mac design, and I’m not ashamed to admit it. I wouldn’t work with one (tried it, didn’t work for me), but they are crazy nice to look at. My plan is to have all of these installed with some version of Mac OS, and then shelve them/put them on display at home.

Yesterday i started with the Power Macintosh. I had a retail 10.5 DVD, so this was what i was going to try to install. There were some issues right off the bat. The 10.5 (Leopard) version of Mac OS X will only install on a 867 MHz (or more) processor, with 512MB RAM. RAM wasn’t an issue, the box came maxed out (?) with 1.5GB of it. But the CPU was going to be an issue.  I tried to install OS X as is, and it informed me pretty soon that my hardware was below the minimum specification. I would either have to go with 10.4, which i do not have, or…. figure something out.

After a bit of googling, I found that you could apparently boot into Open-Firmware (either by holding down cmd+opt+f+o and then powering on, or pressing the power button for a long time when booting until you get a tone), and then change an integer value that has the clock frequency of the cpu(s) in hertz. Don’t put in the install DVD before you’ve successfully booted into Open Firmware. Now, the relevant value was 450000000, which had to be changed to 867000000 (867 MHz, the minimum requirement of OS X 10.5 Leopard) with the following commands:

dev /cpus/PowerPC,G4@0 
d# 867000000 encode-int " clock-frequency" property 
boot cd:,\\:tbxi 

With dual CPU’s you’d rinse and repeat for G4@1. After typing each line, you should get an ok if the command was successfull. The last line tries to boot from the DVD. Next issue!

The drive included with the Power Mac would not boot the disk, so i had to change that out. Any standard IDE DVD drive would apparently work, i just picked one out from some spares i had. Hooked it up, jumpered it as master.

Ok, now, remember that the commands in Open Firmware are not persistent. They have to be input each time you boot, until you have the operating system installed. Once it’s installed, there are no more checks for clock frequency.

The next problem came with the hard drive. The Power Mac G4 that i have would not recognize certain drives, and apparently the limit is 128GB. I had a drive from an old DVR set-top box that i used, which had jumpers for “Capacity Cap”, which caps it at 128 GB at the drive level. That seemed to work fine, and the disk was recognized. I was able to continue installing…

..until the installer crashed. It gave me a page-long dump, and i was just about ready to give up. But, I decided to check all connections one more time, repartitioned the hard drive through the disk utility on the Leopard disk, input the Open Firmware magic one more time and this time it worked! The install took over an hour, but it worked. I was able to patch all the way to 10.5.8, and everything works, though it’s a bit slow of course.

The only thing i didn’t get working right off the bat was the wireless card in the G4. It saw the networks, and asked for the WPA passphrase, but after entering it, it would always turn up with “Connect Failed”. A colleague of mine suggested 10.5 might not have the correct drivers for that specific model of wlan card, which might be true. Also, i didn’t try it (yet) after the 10.5.8 update, so it might have been fixed. Other than that, it is working great.

Additional notes: Installing all the latest patches did not fix the WLAN issue. I’m unable to connect to my home network, which uses WPA2.

Power Macintosh G4 ripped open. Note the handy and modular design. Every part is accessible. Which can’t be said for modern Macs..

 

Next up? The G4 Cube, which, due to its William Gibson (Pattern Recognition) fame, and due to its unique futuristic/minimalistic look is my favorite out of all mac hardware! More on that tonight!

Sources:

http://www.thetechbuzz.net/2008/12/22/open-firmware-install-of-mac-os-x-105-leopard-on-unsupported-machines/

http://mac.linux.be/content/guide-open-firmware-apple-bios-0

http://en.wikipedia.org/wiki/Mac_OS_X_Leopard

Voiding Warranties..again

– Disclaimer – I won’t be responsible for anything you do to your phone, voiding waranties, setting small cats on fire, or causing your local subway system to stop working -Disclaimer-

I recently got the HTC Desire Z. Slightly older, but it has the qwerty slider, which i wanted. Anyway, the HTC Sense UI default “shell” put on top of Android is great. By far better than the Samsung uh.. Touch Wiz thing. Smoother, and smarter. But i won’t get into that. What comes with Sense UI on this phone (and i’ll bet a lot of other HTC phones), is a bunch of applications. Applications that i didn’t need. So obivously i tried to remove some of those applications. Turns out, to remove apps like Facebook or Twitter (that i do not want on my phone), you have to have root. I didn’t find any smart way of getting rid of the apps without root, because it requires modification or removal of files that are in directories that are not world or group-writable.

So, after some internal debate between me and myself, i decided to root the phone. I quickly realized that the operation would not be as easy as on the Samsung, which has a fairly established and easy-to-use toolset for doing both rooting and rom management. Samsungs can also be exploited on pretty much any version of the OS.

However, on the HTC, i found that i had to first downgrade the firmware, so that i could use an exploit to gain root. And to make matters worse, this didn’t work on it’s own. I had to turn my microSD card into a “goldcard”, then do the downgrade, then the exploit to gain root, and then flash the new firmware on top. In this case, i ended up with Cyanogen Mod 7.1. again, since i had good experiences with it.

So, let’s go through the process that i had to go through. Reading a bunch of forums, i quickly got the picture that your mileage will vary. First of all, let’s start with what i had. I had the HTC Desire Z (known as the HTC Vision G2, i think, in the US). I had the latest firmware, which in this case meant uh.. Android 2.3.4 (or 2.3.5), called the HTC Sense version 2.1. Anyway, the latest version available through the HTC OTA update. The phone was bought October of this year.

I started out with the Cyanogen Mod instructions for downgrading the phone to an exploitable firmware version on this page. Or actually, i started out by installing the android sdk, but on arch linux it was as easy as installing android-sdk from the AUR. I use yaourt as a frontend, so i did a yaourt android-sdk. On a 64-bit system, i had to enable the multilibs repository, to get the necessary lib32 libraries.

I ran through the steps of  pushing fre3vo and misc_version on the phone, which went fine. I then did the chmods and the debug, which then got me a root shell on the phone temporarily. The next step has me setting the version for a misc_version, and then pushing the actual downgrade onto the phone. All good so far. Next step is to reboot the phone bootloader using adb (the android debugger). This also worked…. until i got a dreadful message. “CID incorrect! Upgrade fail!”. CID? Wtf? Okay. Step back for a moment and google this fucker.

Turns out certain phones need some finetuning to be able to downgrade, due to either..carrier lockin, or some branding put on the phone, or perhaps an unknown reason (maybe hardware or software revisions?). I found this thread on the Cyanogenmod forums, which helped me onwards. The thread describes my exact issue, though with a slightly different downgrade firmware than mine. In any case, i decided to give it a try. The process involves the creation of a “goldcard”, which is then used as a place to store the downgrade firmware. The goldcard is simply a microSD card, with the first few bytes overwritten with some new data.

The steps were basically:

  • Download the goldcard helper application from the Android market. The phone was still bootable and fully operational, as no downgrade had taken place, so i was able to download and install this.
  • Using the goldcard helper, get the reverse CID for your MMC2 card. That’s your microSD card. MMC0 is your internal memory and can’t be used for this, as far as i’ve read.
  • Taking the reverse CID for your microSD card from the program, input it into the goldcard page (a link is also in the application).
  • The site generates an image, which you will download
  • Download also a hex-editor, such as HxD
  • Take your microSD card out of your phone and put it into a memory card reader (i also read you can use your phone as the reader, but i used a Kingston reader instead), and open up the card from the HxD editor using the extra tab, then the open disk menu and under physical disk selected the removable disk which was the microSD card. Make sure that read-only is not checked when opening the microSD card.
  • Open up another tab by opening from the extra tab “open disk image”, and load the .img file that you got from the goldcard site. Also uncheck the read-only checkbox here. Use the default 512 byte sector size. You should now have two tabs open.
  • From the goldcard.img tab, do a select all, then copy. Go to the microSD tab, and select offsets 00000000 to 00000170 and from the edit menu do a “paste write”. This will paste the content of the goldcard.img, to the first offsets of the microSD card.
  • From the file menu, save what you’ve done. Accept / ignore all warnings.
  • Ok, now you have a gold card.

Proceed by copying over the downgrade image to the newly created goldcard. Continue with the CyanogenMod instructions.Following the instructions for the downgrade, you can safely redo all the steps to make sure. Once you are ready, reboot the bootloader again. You should now have great success, in the words of Borat. Navigate with the volume up and down keys, and select using the power or the navigation-touchpad thing-button. Select bootloader, then select fastboot. Confirm that you want to go ahead if necessary.

This will take a moment. You’ll then be downgraded to an earlier version of the firmware, which has a known exploit, allowing us to root the phone. The phone will (i think) reboot on it’s own, and give you an older looking Sense UI.

Continue with the rooting instructions here. Basically you are downloading and pushing onto the phone a bunch of packages that are needed. Then, you’re running the actual exploit which should find a register in the memory, which we will use to sneak in (i think this is a correct analysis of what goes on, though i’m no programmer). Remember to match those md5 sums listed in the instructions before going on.

After this you have a rooted phone, hopefully with clockwork recovery mod installed. You can now keep using the Sense UI thing (i’m not sure that it’ll OTA upgrade anymore?), or install Cyanogenmod, using these instructions. For some reason, i either failed some part, or something failed, but i didn’t have clockwork recovery mod installed after this process. No sign of CWM anywhere. So, i headed on to the market, and downloaded the thing from there. I was now ready to install Cyanogen, which went without incident.

Note, that if you can’t get into recovery mode using the restart into recovery (from the normal shutdown menu, after installing CWM), shut down the phone, and use Power, volume down and the navigation thing pressed all together.

Ok, so now i have Cyanogenmod 7.1.0 on my HTC Desire Z, with Android 2.3.7 on the bottom. Nice! Quadrant scores (yes yes, synthetic benchmarks..) went from 900 to about 1900 compared to the latest Sense UI. Phone feels snappy.

One thing to note was that market kept crashing! I was getting worried for a moment, but then i remembered the internet, found that thread, and fixed the problem. After downgrading, rooting and installing Cyanogen, i had the phone set to a language called English HD. I selected English US, and my problem was gone. So note this.

Winamp keeps crashing now, but it did that on the Sense UI side, so i doubt it has anything to do with Cyanogen. Version 1.2.6 is the latest as i’m writing this, and there is no later version available. The default media player, though, is pretty usable in any case, so i’m just using that for now.

Now, if i could just install this Cyanogen Nightly build… 🙂

Random Friday Ubuntu Tip

I was trying to customize Ubuntu just a bit, in regards to the “special folders”, that is, ~/Public, ~/Videos etc. These are special, in that they are recreated and/or renamed every time you log in, back to their defaults. Where are these defaults you ask? So did i, and the answer is pretty simple, and easy to fix.

The main reason, not that anyone gives two shits, is that i wanted the directories to be lowercase only, because i hate hitting shift all the time to refer to the directories. Also, i don’t like directories that i can’t rename, remove or do whatever i like to. Kills the linux ethos in my humble opinion. Anyways, to the fix:

To rename the folders:

Edit a file in your home directory called .config/user-dirs.dirs. Syntax should be obvious.

To remove one or more folders and stop them from being recreated:

Edit a file called /etc/xdg/user-dirs.conf. Change the enabled=True, to enabled=False

Any renames or removes of the directories will keep after this.

Note that you have to atleast log out and then back in for the settings to be applied.

Thanks for this tip goes to http://superuser.com

 

Saving Google Video and other assorted gimmicks

Google Video is shutting down as of the end of this month. Video’s will be available for download for some time after that, but then it gets the big shift+delete over at the Goog. The Archive Team sprung into action once again to save this potential treasure trove of digital information that would bite the binary bullet if not saved in time. Currently, there is an effort to save all the material at Google Video before they pull the plug. I decided to join in on the fun, since i have a metric shitload of bandwidth and storage to the point of sheer irrelevance. The amount of material is estimated to be between 100 and 200 TB (or more if some sources are to be believed) There are some guestimates, but i’m not sure we can accurately say yet.

To help out, first read this page: http://archiveteam.org/index.php?title=Google_Video, and then decide how to help out. You can use almost any operating system imaginable, and there are people working on improved instructions and scripts all the time. Personally i’ve used both ubuntu and windows to do some downloading.

You can:

  • Help index videos (if you have lower bandwidth and/or storage
  • Help download videos and later upload them to archive.org
  • Help people out on IRC (#googlegargle #archiveteam and #boincgoogle on the EFNET network)
  • Help improve or test scripts and methods

It has been awesome watching the community at work. Within a matter of hours, multiple people were downloading videos, and we have hundreds of gigabytes down already. People were working day and night (thanks to timezones)  developing scripts and helping people out. Jason Scott of textfiles.com fame is also an active with Archive Team, and is on IRC helping out as well and organizing things on different levels. There are people buying time and storage from the Amazon cloud to help with the effort. The dedication and friendliness of the people is simply amazing. People just show up and help with the effort without any personal gain. On the contrary, people are willing to offer their own personal time, storage and bandwidth for such an altruistic cause. Sure, most of those videos are probably irrelevant, but then, who can say what is going to be interesting to see in 10, 20, 30 years? Local news from Malaysia? “Real life Mortal Combat” ? Who knows. That’s kind of the point behind all this. Saving stuff that would otherwise be lost forever.

The Archive Team have so far dished out like 140TB of storage, with more promised as we start filling that up.

So anyway, if you feel like this is something you could get into, go read the page and see how you can help out. Personally i’m downloading videos and putting them on my fileserver that has a (mostly) empty 1TB drive. And what the hell else would i use my 200/10 Mbit bandwidth for if not this? Sheesh.

In other more generic news, we think we may have found an apartment. A three room place, not far from here. It should be fully renovated, and the rent is cheaper than in our current (too large) apartment. We’re going to go look at it tomorrow, but it’s already reserved for us, if we choose to take it. I have a good feeling about this.

I’m still trying to get rid of the aquarium, and i’m also in the process of selling my 2003 Nissan Primera stationwagon. I need to clean it out a bit first, and get it checked out so it’s street-legal.

Work is busy as ever, and i am very thankful to all Christians who have kindly provided us with the four-day weekend this week. And all this because of the death of an imaginary jewish carpenter zombie. Imagine that.

HTPC Ubuntu 10.10 Upgrade

 

Yesterday i started upgrading the HTPC to Ubuntu 10.10. I was having some problems with audio (no doubt related to pulseaudio….) and i had a bunch of updates waiting to be installed that i didn’t dare install. I have this nagging feeling that every time i do an apt-get upgrade, something breaks in XBMC. Might just be a feeling. Might not. Anyway. I started with a clean install of 10.10, installing propietary codecs and updates from the web during the install. After the installation, i tried to remove pulseaudio. I did an apt-get remove –purge pulseaudio, which still left some libraries like libpulse0 and others. I tried removing them by hand, but that resulted in some dependency-errors. Further trying to remove that resulted in me not having a stable gnome desktop to log into. It started GDM, but after that i just got returned to the login window. I did an apt-get install ubuntu-desktop, and a reboot, which fixed the problem. Then again apt-get remove pulseaudio, and left it at that.

After that i added a few PPA’s to keep my Nvidia and ALSA-drivers current. Alsa works better with XBMC, handling both Dolby Digital, DTS, as well as MP3 and other stereo audio. The latest Nvidia drivers have not always been problem-free, but i decided to give them a try. The PPA’s i added were from this, and this site, and the complete commands were:

/ some dependencies first /
sudo apt-get install dkms python-software-properties

sudo reboot 

/ after the reboot install the nvidia drivers /

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current nvidia-settings

/installing the audio drivers/

sudo add-apt-repository ppa:ubuntu-audio-dev/ppa
sudo apt-get update
sudo apt-get install linux-alsa-driver-modules-$(uname -r)

sudo add-apt-repository ppa:ricotz/unstable
sudo apt-get update
sudo apt-get install linux-sound-base alsa-base alsa-utils

After this, i rebooted, and ran sudo alsamixer. This starts a console-based mixer-application, that you can use to un-mute required outputs. Sometimes tihs is needed to get audio out at all, if you’re using for instance HDMI (i haven’t tried this), or say some analog output.

Then i added the XBMC ppa, which allows me to install the latest version.

/ some dependencies /
sudo apt-get install python-software-properties pkg-config
sudo add-apt-repository ppa:team-xbmc
sudo apt-get update
/ and the actual xbmc packages /
sudo apt-get install xbmc xbmc-standalone

Finally, starting XBMC produced an error that i didn’t have the required packages for hardware acceleration installed. I downloaded the libvdpau package, which cleared the problem.

XBMC seemed really well configured at this point already, because sound worked out of the box (thank you and goodbye pulse, and thank you alsa). Also, video acceleration was configured correctly out of the box. This is a stark difference to some of the old old versions of XBMC i had once installed.

I tried some playback already, but not in the living room with the amplifier and TV, so that’s up for later today. The current setup i have is:

  • Samsung 40B535 40″ LCD television
  • Harman/Kardon AVR-235 amplifier
  • HTPC
    • Silverstone HTPC-case, incl. 120W power supply (model Lascala SST-LC19S-R) – Current price 173€
    • ASUS AT3N7A-I motherboard with an Intel Atom processor (dual core 1,6 GHz), Nvidia ION chipset/graphics – Current price 155€
    • 2GB DDR2 memory – Current price 28€
    • 1 TB Western Digital Green hard drive – Current price 58€
    • Totally 414€ with current prices
  • Connectivity
    • HTPC -> TV with HDMI
    • HTPC -> Amplifier with SPDIF (optical cable)
    • Wireless Logitech mouse with the Universal Nano Receiver (model M215, red)
    • Wireless Logitech keyboard (an older Logitech Comfort)
    • Network: 1Gbit through an HP Procurve 1400-series switch

Things to note here. The price of the entire thing hasn’t gone down much in a year or so, which is pretty curious. You can get better ION motherboards now, so that’s probably something i’d change. Maybe with WLAN or more i/o ports? Perhaps. The case i am pleased with, though it could be entirely passive. The ION/Atom combo, plus the mechanical hard drive create a lot of heat,  and i think that this set couldn’t run without the CPU fan.

I would also switch to a bigger HD, since the amount of media has exploded. A 2TB drive is like 10 bucks more, or so. 3TB drives have just been released, though they are still rather expensive.

A remote control would be nice, but i’ve yet to spend any time researching that. I’m pretty good with just the mouse so far. I don’t need that far of an integration to the living room. It’s still a computer to me, and not an appliance.

The final afterthought goes toward a Blu-ray drive. The case fits a slim Blu-ray drive. The price of such a device is like 100-200€ depending on the model (i’m not sure they all fit?). I’ve read many positive reports that say Blu-Rays work just fine with Ubuntu + XBMC, but i have no first-hand experience. I may go this route, or i may just stick with the PS3, which seems like a great player.