HTPC 2010 – The Conclusion

The Conclusion

So time has come to get down to brass tacks. How much for the ape? I kid. I’ve now been using the HTPC for a little over a week, and i’m liking it. I’m gonna try to be as non-hyping and calm as possible, and list some of the challenges and victories with this build in this, the last post in the HTPC2010 series.

The Cons

First of all, the case is really cramped in a vertical sense. The fat ATX power cable has to be forced down, which feels really dangerous, as the fragile little motherboard starts to almost bend under the force. And all this just to get the top cover on. Some of the cables are also quite short, and the 4pin 12V extra power cable that goes to the motherboard only barely makes it to where it’s going. Cable management becomes a bit hard, when you have maybe a few millimeters of breathing room.

The 55×55mm fan in the rear of the case is also a bit annoying. It is quite loud, and causes some resonance with the metal of the case, and has to be tapped once in a while to shut it up. I could remove it altogether,  but i’m pretty sure it needs at least some cooling. The Asus motherboard has a similarly sized CPU fan, which isn’t quiet either. Would a passively cooled one have been a better alternative? Not if you ask Anteuz, as his Point of View-motherboard came with a passive CPU heatsink. He said it got so hot, he actually took the fan from the rear of the lascala and put it on the cpu heatsink to cool it off. So maybe a small tradeoff here.

There is no space for bigger fans without modification of the case.

The Asus motherboard doesn’t receive high marks from me in another area as well. The onboard connectors are quite limited. There is only one internal USB, no firewire, no esata, no anything. There is actually an esata solder-point on the motherboard, but alas, no connector. This would have been nice for hooking up an external drive, either through firewire or esata, but neither is present. This presents another problem with this case: the front panel. The frontpanel of the Lascala has a memorycard reader, which needs internal usb to work. It also has 2xUSB, firewire and audio. So i have to chose either the usb ports, or the memory card reader, and make due with no firewire.

Oh yeah, and there is no cover-panel for the optical drive slot (which is above the memorycard reader. This makes for a rather ugly front panel, if you open the little flip-down hatch, and find that there is a gap there. I chose to have the front panel usb’s hooked up, and left out the memory card reader. This means there’s a huge hole where the optical drive and card reader should be. Rather ugly. They could have included a damn cover for 160 euro……

I had problems with the sound, but this was to be expected. Using the optical out isn’t always simple in Linux, but once the correct configuration was entered, everything worked fine. Basically it was like 10 rows in my .asoundrc that solved the problem. It was mysterious. Video files with high-quality audio like DTS or other fancy Dolby standards worked fine. But then simple mp3 or other audio didn’t. One would expect it to be the other way around.

I also had problems with the video drivers. I went with the ubuntu recommended 185 drivers, and they had no problems. However, upgrading to the latest 195 drivers from nvidia resulted in XBMC crashing to the desktop immediately upon trying to play an .mkv file. Frustrating.

HDMI also didn’t work with the correct resolution from the getgo, and while VGA did, it has problems placing the image correctly on my Samsung 32R86 tv. I have to run the “automatic placement” menu item on the TV to position the picture correctly. And what’s worse, the placement is different for XBMC and the desktop. So to have a perfect image, i’d have to run that thing every time.. This is probably just a TV issue, so i’ll wait for my new 40 incher until i start spending time on this.

Setting folder content in XBMC is a bit tricky. I found that working on the default Confluence skin was the surest way to go, as many of the custom skins had some kind of reverse polish logic in them. Take this use case: I add a new folder to the library, and press the folder with the right mouse button and select “Set Content”. Here, i select the scraper (which website it uses to get the metadata for the content), and start indexing the content. If i made a mistake, i can’t return to that same folder view, all i have is the contents of that folder. When i manage to get back to that view through some dark magics, i find that the Set content menu-item is no longer there, and i am unable to “re-set” the content, if something went wrong, which it did.Through some voodoo, every media file in the folder got scraped as “Home movies”, by Ridley Scott, 1986. So every media file had the same metadata (which is incorrect, i don’t even have such a file!), and re-trying was not possible. Removing the library and re-setting the content seemed like the best way to go. And even then, some content had to be set manually, because it was not detected or processed correctly. A lot of manual work, that only has to be done once, note.

The Pros

The relatively cheap ION platform, while low powered, can decode media like a motherfucker. There is no chopping or other problems while playing even super high quality full-hd content, with hd class sound. It just works. And CPU load hardly ever goes over 50%.

All things said,  the build is still very quiet, and aesthetically pleasing, with it’s Set-top-box type black case. All that’s missing is a remote. It doesn’t take up much  power when playing media. It’s compatible with most forms of video and audio. Adding spotify through wine, you can even have that functionality all in the same box (though not integrated to XBMC..yet…).

The machine can be used to do pretty much anything except like.. graphics or encoding of media, or playing games. It doubles as a general internet pc in the living room, that you can use from the comfort of your own couch. With a 150 bucks more, you can add a bluray player, and save having to buy yet another box to your already cramped equipment racks.

I’m also pleased with how little tuning XBMC took in the end (save for the partial audio problems). Installing it was easier than i thought. My wife quickly learned to use XBMC as well, though she isn’t what you’d call a total newbie. I’m just waiting to teach it to my 2.5 year old son.. :)

HTPC 2010 – The Install

The Install

Time for the install. Nothing spectacular here. I booted the thing off a USB-drive i created using unetbootin 3.93, with a Ubuntu 9.10 (32-bit) iso slapped on there.  There was some issues booting from the stick, because i couldn’t get to any kind of boot menu (F12 didn’t take me anywhere), so i had to take a look at the BIOS. The setup was a bit different from what i’m  used to, namely, the usb drive is detected as a hard drive, and not as a removable or separate device. So, to start off, i had to set the hard-disk to boot as the first device, and then set the order of the hard disks, so that the “primary” hard disk was the USB-drive, and the secondary drive was the internal 250 GB drive. After this, the boot worked just fine. After the installation was done, removing the USB drive bumped the 250GB to the primary drive.

Other things that need to be noted in the BIOS are: Setting your graphics memory to 512 (or whatever your max is). This will ensure flawless HD playback. Default is usually 64 or 128 or something, which isn’t enough. Also make sure you have all the necessary audio and video ports enabled.

The Ubuntu installation was quick and painless. I chose to use the entire 250GB drive, and let Ubuntu do it’s magic on it. Nothing special during the install.

After the installation, only a few packages are needed. The commands that i ran, in order:

apt-get upate && upgrade

apt-get install nvidia-glx-185

This updates the repositories, upgrades existing packages, and installs the nvidia hardware driver. You can also use the Administration -> Hardware Drivers, which at the time of this writing, installs the 185 driver.

Note! I had some problems with the latest 195 driver. After installing it, there were some dpkg errors that prevented the installation from finishing properly. After this, graphics were fucked, and i couldn’t start x. When i did get the driver installed, and everything seemed to work, i was completely unable to play any HD quality .mkv files. XBMC would crash to the desktop. Also, trying to play them in VLC for instanec, resulted in equally disasterous problems. So unless you are having problems with your ION and the default 185 drivers, don’t upgrade.

After this i pretty much followed the linux installation guide of XBMC in their wiki. Roughly the installation is:

  • add the correct repositories
  • run apt-get update
  • run apt-get install xbmc
  • configure sound
  • configure xbmc
  • done.

The setup i had was: Run video through VGA (i have only one HDMI in my current TV), and audio through spdif to my amplifier. This was a fairly easy thing to set up, though the audio was a bit problematic, as i will describe a bit later.

Connecting the VGA got me a good picture right away with native resolution (1366×768), whereas through the HDMI it got detected as 1280×720, which is incorrect. And the picture wasn’t scaling correctly either, so i figure i would have needed to add some modelines to my xorg.conf. More about this later when i get my new Tv and hook up using HDMI.

About the audio

Getting audio to work was a bit problematic. In XBMC go to System -> Settings -> System, and then to the audio output tab. There, you need to check that you have your amplifier or TV set to support DTS and AC3 audio (if it does), and that you are outputting digital audio. For me, i had to set the audio output device to custom, and the device to plug:dmixer, and the passthrough device to IEC958 to get everything working. Changes to your .asoundrc in your profile root was also necessary, to make it understand the plug:dmixer device.

If you don’t make the above changes, you will find that only surround movies (DTS and the likes) will work. The rest, say shittier mp3 audio movies will not play anything, or even display a “incorrect audio device” message. Which is odd, because you kind of expect it to be the other way around, that the complicated DTS and other encoded sound would not work.

First off, find out which device you want to be using, by running the command aplay -l in your terminal. Look at the card number, and the device number, and see which output you want. In my case, it was the spdif, which was card 0, device 1. In alsa speak, this equals hw0,1

The contents of my .asoundrc file, which is placed in the root of my profile is as follows:

pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,1"
        period_time 0
        period_size 1024
        buffer_size 8192
        #periods 128
        #rate 44100
        rate 48000
     }
     bindings {
        0 0
        1 1
     }
}

The bold line over there is the important one, and the only one you possibly need to change. Save the file, reboot the computer to be sure.

Now sound should work in any media files, regardless of the encoding.

Customizations i used in XBMC was the Rapier skin, basically. I stream media from my other machine through gbit lan, which works fine with any type of media.  I used a standard samba share for this, and no issues have cropped up so far.

I could write a bunch on scraping and other XBMC stuff, but they are so well documented in their wiki that i won’t bother. Just remember, the backspace key takes you back one level, and the c-key gives you the “right-click” context menu on any item (like a movie or folder). That is all.

References:

http://wiki.xbmc.org/?title=XBMC_for_Linux_specific_FAQ#S.2FPDIF_out_for_both_analog_and_digital_audio

http://wiki.xbmc.org/index.php?title=Installing_XBMC_for_Linux

http://wiki.xbmc.org/index.php?title=HOW-TO_install_and_switch_between_skins_in_XBMC

http://xbmc.org/skins/

HTPC 2010 – The Build

The build

I got word from Jimm’s Pc-Store that half of my parts had arived. The rest i would buy from Verkkokauppa.com because they had it in stock. I ended up getting a 250 gig hard drive for 39 bucks, simply because the cf solution was not immediately available (not in stock), and it would have cost nearly three times as much. Otherwise the parts list in the first post holds true.

I started by skimming the manuals of the case and the motherboard, and then started taking the case apart to prepare for installation. I had to remove the top cover, obviously, and also add and remove some of the internal cables according to my needs.

All the parts in one pile!

This is what the case looks like on the inside. Note the power supply, or actually just the distribution-point. The powersupply is actually that transformer-brick next to the case there. There is a 24-pin atx, 4pin 12v extra power, cables for floppy, molex, and sata, which are fairly modular, i.e. you can chose not to connect the molex cables if you don’t need them, like me. The case has a rubber-padded spot for the hard drive, on the bottom left in the picture. This should (and did) eliminate most of the vibration caused by the movement. The case also has front panel audio, usb and firewire, as well as a memory card reader. Sadly, the motherboard i got only had one internal usb, so it was a choice between the two front panel usb ports, or the memory card reader. I chose the usb ports, because it’s a handy way to hook up external hard drives and media players. Ofcourse, one can just switch the cable, and use one of the external usb ports to hook up the memory-card reader.

Cables for power and hdd led, as well as the power-switch are also included. Cable management turned out to be a bit hard: the 24-pin atx power cable is very very thick and stiff and needs to be forced down quite a lot to get the top cover back on.

The case, opened

power supply

The "Power Supply"

After this, it was time to put in the Asus motherboard, the hard drive, and hook up all the necessary cables. I forgot to take a pic of the innards with all the parts connected, but i’ll do that today. Here’s a picture of the motherboard, pretty handy-looking huh?

motherboard

The Asus Motherboard

So when everything was connected, it was time to put the case back together, and prepare for installation. The plan is to install Ubuntu 9.10, with XBMC 9.11.  A few more pics of the ready build. Note the fucking awesome blue led, without which, this build would be like, less cool.

Done!

Done!

A view from the top

HTPC 2010

I finally got off my lazy ass and ordered the parts for my HTPC. The build itself, is inspired by Anteuz’ build, which i had the pleasure of fiddling with last weekend. The build was very convincing visually, as well as performance-wise.

I’ll document the entire process of building, installing and configuring on this blog. The first part: The Buy

The Buy

The first task in any computer project is deciding what you want the build to do. I set some goals for this build:

  • Has to be visually appealing, and suitable for my livingroom (that means, slim, silent and black)
  • Has to be able to play 1080p media (and anything below that of course)
  • Has to be usable with a cordless keyboard & mouse and/or remote control
  • Has to be able to run Linux
  • Has to not cost me an arm and a leg!
  • Hast to have some form of expandability, say if i want a Bluray drive later!

Setting out with these goals in mind, the only reasonably priced hardware that does all this is based on the Nvidia ION chipset. The build Anteuz has is a:

  • Asus AT3N7A-I Motherboard
    • Atom 330 dual core processor
    • Nvidia ION chipset
    • Gbit Ethernet
    • 8GB RAM (DDR2) max.
    • DVI/VGA/HDMI/SPDIF etc. outputs
  • 2 x 1GB DDR2 RAM
  • Hard drive
  • Silverstone Lascala SST-LC19S-R with 120W passively cooled powersupply

I ended up ordering pretty much the same set:

  • Asus AT3N7A-I Motherboard (126€ @ Jimm’s Pc-Store)
  • 2 x 1GB DDR2 (800MHZ) (44€ @ Verkkokauppa)
  • Silverstone Lascala SST-LC19S-R (160€ @ Jimm’s Pc-Store)

But as for storage i ended up with a slightly different solution:

  • SATA -> Compact Flash adapter (22€ @ Verkkokauppa)
  • 4 or 8 GB Compact Flash card from Sandisk, the Extreme III model (with ~30MB/s read and write) (34 – 51 € @ Verkkokauppa and elsewhere)

What i’m going to be doing is, putting Ubuntu on the Compact Flash card (which is completely quiet, low power, and physically small). I don’t need a lot of space for Ubuntu, since it’ll be a barebones install, with the XBMC media center application on top, it’ll hardly take more than 2 GB.

I’m not going to store any media on the HTPC, but instead, stream it over the network from my fileserver. With Gbit Ethernet, i’ll be able to stream 1080p content with no problems. The network “backbone” is an HP Procurve 1400-8G, which has more than enough throughput and oomph for my small network.

The total price for the build is 386€ with the 4GB Sandisk Extreme III (add 20 bucks for the 8GB version). For less than 400€, i will therefore have a build that can stream HD media from my network.

A future expansion will be a slim blu-ray drive, which runs at around 150€ right now, which is not a bad price. The hardware is more than capable of playing blu-ray discs in their full 1080p,  surround sound glory. And that’s cheaper than a Playstation 3, which has no games anyway :)

Next up, when i get the parts: Pictures and The Build. After that, it’s time for The Install and then The Conclusion.

ATI Stream & Pyrit update!

You might remember a while back, i posted some entries about using your ATI GPU to do some number-crunching for you. Specifically, Pyrit can be used to break the PMK or Pairwise Master Key of a WPA protected WLAN. Pyrit can use both ATI and NVIDIA cards (plus some others); this entry will deal only with ATI, since i have an ATI Radeon 4850.

Prerequisites

Let’s get started. The platform that i have for doing all this is as follows:

  • ATI Radeon HD4850 graphics card (Asus brand, 512 MB memory)
  • Gigabyte motherboard with AMD790 chipset
  • AMD Phenom II X4 processor
  • 4 GB DDR2 memory
  • Ubuntu 9.10 64-bit clean installation
  • Latest fglrx drivers from ATI, installed using the System -> Administration -> Hardware Drivers
  • Kernel is 2.6.31-16

To start out, i installed the following packages (packages are in the ubuntu repositories):

  • binutils, build-essential, libssl-dev, python-dev, zlib1g-dev, libzlcore-dev

There shouldn’t be other dependencies, but do download anything that apt suggests with the aforementioned packages. After this, you need to install the ATI-stream packages, which is split into two parts: Atical and Atibrook. The files can be downloaded from ATI’s site, but installation may be tricky. I used alien to convert the .rpm packages to .deb packages, which worked somewhat well. I’m not brave enough to distribute the .deb’s i made on this site, as i never heard anything from ATI when i asked about this. Sufficed to say it can be done and wasn’t too hard, since i managed.

After this you can go two ways. Either install the stable 0.2.4 packages of Pyrit, or go the SVN route, and get the very latest builds (revision 193 or 0.2.5-dev at the time of writing). In either case, the process is the same, but the SVN is always the “latest”, which doesn’t necessarily translate to “most stable” or even “working”. I tried SVN, because i had an issue (which later turned out not to be Pyrit’s fault, more on this later).

The SVN-way:

Install a svn client by doing:

sudo apt-get install subversion

Go to your home directory, or other location where you have write privileges. Run the following command:

svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit_svn

It will create a directory called pyrit_svn where you are, and download the latest source-code. To update this later, run:

svn update

You will end up with a directory-tree that contains everything in the pyrit project. The ones we are interested in now are the directories called pyrit and cpyrit_stream.

From here on the instructions continue the same way, whether you got the SVN or the stable code.

Compiling Pyrit

If you downloaded the packages, open them up and place them for instance in your home directory. First, enter the directory called pyrit and run the following command:

python setup.py build

If that succeeds, and you don’t see any errors (it should be pretty quick), type in the following command:

sudo python setup.py install

You should also get no errors from this before moving on.

Compiling cpyrit_stream

Now we’re compiling the ATI Stream component of Pyrit (as opposed to CUDA for Nvidia cards). Go back to the directory you unpacked the stream files (or the pyrit_svn directory if you downloaded that), and enter the cpyrit_stream directory. Run the same commands as you did with Pyrit main, i.e python setup.py build and then sudo python setup.py install.

Note! You will probably hit a glitch here, as i have done every single time i’ve compiled Pyrit. These are known issues, which are adressed in the following way:

You’ll get an error that says something about:

/usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp:190: explicit template specialization cannot have a storage class

There’s an error in two files (with the latest version of Linux Kernel/ATI drivers, i’m not a developer so i can’t say what changed, but these changes were necessary) that need to be corrected before you can compile cpyrit_stream.

You need to locate and open the following file: /usr/local/atibrook/sdk/include/brook/CPU/brtvector.hpp

Inside this file, find the following line: #define SPECIALGETAT(TYP) template <> static TYP GetAt (const TYP& in,int i) {return in;}

From this line, remove the word static. Save and close the file. Do this as sudo, because atistram is installed somewhere where you probably don’t have write permission.

From the same directory, open as sudo the file brtarray.hpp, and in the beginning of the file, find the line or lines that start with include, and add the following there:

#include cstdio (with cstdio inside < these > characters)

Save and close the file. cpyrit_stream should now compile perfectly. If you have doubts, replace the word build with clean, and then start the compilation again.

After this, add the following lines to your .bashrc .bash_profile .profile file (s). I frankly don’t know which of them is the effective one, but the idea is to load this when you load your profile. We want to add a few variables so that Pyrit can execute the ATI stream code successfully.

export LD_LIBRARY_PATH=/usr/local/atibrook/sdk/lib:/usr/local/atical/utilities/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/atibrook/sdk/bin:$PATH

Additional problems & Testing

You should now have a working Pyrit that can utilize ATI Stream. I ran in to some more problems at this point, but i was able to solve them with the help of the internets.

Next, try seeing of you can locate the GPU using the FindNumDevices which should tell you that you have one device ready, or the number equal to the amount of GPU’s you have. The bin is inside /usr/local/atical/bin/lnx64 in my case, and you can run it with ./FindNumDevices.

Note! At this point i ran in to a segfault, which is caused by the fglrx driver and the PAT option being enabled in the kernel. You can try the command, and see what you get, but if you get a segfault, see the next chapter.

Your output should be like this:

Supported CAL Runtime Version: 1.3.185
Found CAL Runtime Version: 1.4.427
Use -? for help
CAL initialized.
Finding out number of devices :-
Device Count = 1
CAL shutdown successful.

Press enter to exit…

Where the device count is .. what i said before.

If you get this, you are ready to try out Pyrit. Type in pyrit list_cores to see the devices available for calculation use in Pyrit. You should get your processor cores minus one, and your gpu(s).  My output looks like this:

Pyrit 0.2.5-dev (svn r193) (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

Connecting to storage… connected

The following cores seem available…
#1:  ‘ATI-Stream device 1′
#2:  ‘CPU-Core (SSE2)’
#3:  ‘CPU-Core (SSE2)’
#4:  ‘CPU-Core (SSE2)’

You can now run pyrit benchmark to see what kind of processing power you are looking at. Refer to the pyrit site for a more complete howto of the program. The benchmark command will give you the amount of PMKs per second that the different cores can do. In my case, the output was something like, 8400 PMKs/s for my Radeon, and around 700 PMKs/s for each of my Phenom cores.

Troubleshooting the Segfault

Starting out according to the instructions on various sites (mainly the Pyrit site), i ran into a segfault with both pyrit list_cores and ./FindNumDevices. It wouldn’t execute at all. Running list_cores as sudo, i didn’t get the segfault, i got my four Phenom Cores  (and no Radeon cores anywhere).

I found exactly one (1) result with google, but that got me in the right direction. It has something to do with a problem between PAT and fglrx, PAT being Page Attribute Table (yeah, i googled that..). To get rid of the problem, pass the nopat option to the kernel at boot. If you haven’t done this before, boot your machine, and when you get to to grub, hit e to edit the commands being run.

Locate the line which has the boot command, and at the end of my line (my line ended with the options quiet nosplash) so i made it quiet nosplash nopat and hit ctrl-x to boot with those commands. You can edit your grub to always start with nopat, but i will not get in to that here.

After this, both ./FindNumDevices and pyrit list_cores ran like a charm and produced the end-result i was looking for, that is, using your GPU to chip away at some pesky PMK.

This is just an expansion and update on the great instruction in Pyrit’s wiki, but other sources were used as well!

ATI Fglrx and Ubuntu 9.10 Beta

So, i got the recently (1.10.09) released Beta of Ubuntu 9.10, and i’m happy to report that the propietary drivers for ATI work fine now, so you can get 3D acceleration. Screenshot below.


If i read this correctly, it works.

If i read this correctly, it works.

Firefox and Scrolling in Ubuntu

So okay, you have a problem with there being no utility for configuring how many lines you scroll at once in ubuntu? Shit, i mean, how can this still be missing? There’s no gui for configuring it, and doing it by hand in xorg.conf is a pain too.

So in Firefox, the default becomes one line per scroll. This isn’t satisfactory when you want to surf porn effectively, or scroll 4chan without having your eyes burned out. So to fix this you’ll do the following:

  1. Type about:config in the address bar in Firefox
  2. Accept the yabber about being careful (if you haven’t used this before)
  3. In the search-field (at the top), type mousewheel.withnokey.sysnumlines and set that to False (double click the value field)
  4. Again in the search-field, type mousewheel.withnokey.numlines, and set the value (default is 1, for one line at a time), to whatever you want. Personally, i use 5.
  5. Close the tab with about:config. Changes take place immediately.

A story about car dealerships

So it’s time for another story time with uncle grelbar. This time, i’m going to deal with.. well, car dealerships. This is a story on how they’ll try to fuck you over, but how you can, at least in my case, walk out as a winner.

My story begins with a standard annual service for my 2003 Nissan Primera station wagon. I bought it from Autokeskus Konala (Finnish Nissan/Dodge/BMW/Mini dealer) a few years ago, and i’ve been servicing it there as well, to maintain a good service record. So far, i’ve gotten excellent service, from the very start of our relationship. But this time was different.

I paid for my service on the 14th of September, got my keys, and went out to get my car from the lot. I was rather surprised that the key (which had been working flawlessly for two years), now suddenly would not open the doors. I went a bit closer, and the same thing: the doors wouldn’t unlock. So, i open the door with the actual physical key (shit, i can’t remember when i’ve last done that with a car!), and got in. Put the key in to the ignition. No start. Not even a peep out of the engine or ignition. No blinking red light in the dash (to indicate car is not running, etc.). Notice the lights are on, and that the battery is dead due to this.

At this point i’m starting to realize that i’ve been fucked over. I’ve just paid several hundred for my service, and my car is dead in the dealership parking lot. Not nice. I walk back in to the place, and ask what the hell is up. The guy, one guy, looks a bit tired, it’s probably the end of his shift. He asks for my license place and checks for what was done with my car. He instantly says “Nope, nothing in here explains a broken key. We don’t really have anyone working here who can help you at this hour (a bit before closing). Maybe the battery is dead?”. So, i mutter some obscure Norwegian curses, and head for the spare-parts section.

I buy a new battery, of the typ 2025, for 1,80€. Pay for the battery. Go out. At this point it starts to rain. Car still does not open with the remote control. I’m getting increasingly pissed off. I call my dad, who comes and helps me with starter-cables (since nobody at the fucking dealership offered their help), and the car starts right up. Key is still dead. I walk back in to notify the service guy that i’d be contacting them about this fuckup later).

Drive home. Try our spare key, which works fine. Call the dealership the following day, telling them that i had some problems with my previous service, and that i needed to talk to someone. Nobody was apparently available, so i left a message, with a request to call me. Three days pass, nobody calls me.

I send email to the head of the service department. Wait 10 days for a reply. Guy says that the coding of my key might have gotten scrambled when the battery was drained by some incompetent fuck who left the lights on. Seemed like a good explanation, except, why would my spare key work? The dead battery in the car somehow remotely broke the other key? Okay. He told me to bring it in on the first of October, to have it looked at.

Bring the car over in the morning of the 1st. Get a call in a few hours by some asshat who tells me “The key is broken”. No fucking shit. Also he tells me, that my spare key, which works fine, “also is working a bit badly”. Horse shit. Okay, next he throws the bomb. “A new key is 111 euro. Would you like to order it?”. I told him that this isn’t the way it goes, and that i’d contact his superiors.

I e-mail the same head of the service department who tells me that “The re-encoding which we promised, did not work, so the key is otherwise broken, and we are not liable.”. I complain, and he graciously offers to take the price down to 75 euro for a new key. I tell him that i won’t pay them a dime, since the key broke in their custody.

At this point, i also e-mail the head of customer relations at Autokeskus Konala, and the head of customer relations for the entire company, with the head of service as CC. A day passes. I get a new e-mail stating that the key would be replaced for no cost.

Lessons learned

So, when things fail, complain, and keep complaining up the ladder until you get what you want. But be sure you are right, and that they are wrong.

A car dealership can’t be like the coat-check, where they take no responsibility for anything left with them. When i bring in a car for service, i expect that it comes back in the same, err.. improved condition from the original. What i do not expect, is that my car is dead in the lot, and that my key has been broken by some asshat. Or that management gives me the fucking dick when i ask to fix what they broke.

Autokeskus Konala was on the Kuningaskuluttaja (“King Consumer”, a program about consumer rights) program, about ripping off some other consumer. I guess the fault in this one lay with Nissan, but in any case, this isn’t something we should just swallow and complement the taste. Consumers are being fucked over everywhere, by unscrupulous businessmen who know that if they push a consumer far enough, they’ll give up, because litigation, in many countries, is too expensive, or not an option.

But what we can do, is talk about it. Write a few blog posts, maybe e-mail your correspondence to a few news outlets. Talk to your friends. Sure, a blogpost, in the big scheme of things, is meaningless, unless you run a huge site. But at least you can raise some awareness. If two people learn something out of this, it’s been a good day.

Just don’t give in to unreasonable demands, and keep your eyes open when people are slapping you around with a wet cock. Too many people can just be intimidated, by an authoritative voice, to doing whatever they want you to.

Arrrrrr Trend Micro Office Scan

Okay, so this piece of shit program is pissing me off. It blocks sites like www.2600.com, which has *no* harmful content on it. When inquired on the reasons, they have not yet replied (I sent mail from my company account a few months ago). I guess it’s kind of like the government blocklist for “child porn” sites, which can’t be viewed, can’t be challenged, and can only be changed for the worse.

So how to defeat this stupid piece of shit software: Ping the address you want to visit, and type in the ip address instead of the DNS name. Presto. It’ll still complain if the site links to images or other stuff using the DNS name, but you’ll be able to view the content. Office Scan 0, Me 1.

Karmic Koala & ATI Radeon

This post will deal with the Alpha4 release of Ubuntu 9.10 “Karmic Koala”, and it’s new features, particularly the functionality of ATI Radeon cards.

I did a clean install yesterday, and this is what i’m liking so far:

  • Empathy, the new default IM client is awesome. I didn’t find plugin support yet, but it’s light, and clean. Just the way i like it.
  • The boot time is less than 20 seconds on my machine. It’s nearly not enough to go do anything else while i’m waiting, which is a great feature for someone that has to deal with windows vista at work every day…
  • Firefox 3.5 ubuntu branded by default. Thanks. That package is missing from 9.04 right now, and while you can still install it, it takes some work to go from the Beta name of “Shiretoko” to Firefox, with icons and everything. It works, but it’s not perfect.

What i don’t like:

  • The new default login screen sucks ass.
  • While the new 2.6.31 series kernel is a great improvement in many areas, AMD has not yet supported it in it’s binary fglrx drivers (which offer 3d acceleration and the works on ATI cards)

So this will be the topic of discussion today. ATI cards have traditionally been much worse than those of Nvidia on any Linux distro. AMD (ex. ATI) offers drivers called fglrx which provide full 3D acceleration in Linux, and when they are working, the cards can offer great performance. However. When they don’t work, disaster ensues.

When you install Karmic, you’ll get the traditional “Hardware Drivers” dialog, which will say you have a device that requires propietary drivers that weren’t installed by default. Yeah no shit they weren’t. You select your device, you hit install. It downloads the drivers, installs them, makes modifications to xorg.conf, and asks you to reboot. With Karmic Alpha4, i got no download dialog, even if it seemed to do something. The selection of my card remained inactive and grey, instead of the green “activated” button that appears when drivers have been installed. So i thought that the drivers somehow failed (didn’t look at debug or anything). I went about my business, doing an apt-get update && apt-get upgrade, and then rebooting.

To my great dismay, it wouldn’t load gdm at all, but instead displayed an esoteric graphical pattern in the top section of my screen. So, switch to a shell, check out /etc/X11/xorg.conf, and sure enough, fglrx was jotted down as the driver. So clearly, this didn’t work.

To get past this problem, uninstall and clean the fglrx drivers. They are not supported in the 2.6.31 kernel yet, so we need to wait for AMD’s 9.9 series drivers for this. Usually they’ll be out in time for the Beta’s or at least the release, so i’m not fretting.

Run:

aptitude purge xorg-driver-fglrx && dpkg-reconfigure -phigh xserver-xorg && exit

This removes the driver, deletes anything related to it, and runs a reconfigure on xorg.

You should now have a clean xorg.conf. Install the xorg-driver-radeon if you don’t have them (i’m not sure, i think they were installed by default), and then edit xorg.conf and in the device section, set the driver option to “radeon”, if it isn’t.

You should now be able to boot in to a graphical user interface.

Okay dual screens. To make these work, as a “big desktop”, make your xorg.conf look like this. I tried different options, and fiddling around with the “System -> Preferences -> Display” dealio, but that didn’t get me anywhere. It’ll ask you to “automatically set the virtual resolution to match your screens”, but the end result was 2048 x 2048, in xorg.conf, which obviously didn’t work.

Here’s my xorg.conf:

Section “Screen”
Identifier      “Default Screen”
DefaultDepth    24
SubSection “Display”
Virtual 3360 1050
EndSubSection
EndSection

Section “Module”
Load    “glx”
EndSection

Section “Device”
Identifier      “Default Device”
Driver  “radeon”
EndSection

In all it’s simplicity, i made the virtual resolution match the maximum resolutions of my screens set next to each other. I have two 22″ Samsungs, each with a 1680×1050 resolution. So i added up the width resolution and that was it. I restarted X (why does ctrl-alt-bkspace not work anymore?), and went to Display, and then unchecked “mirror displays”, and dragged the screens next to each other. Apply, Ok, restart X. Dual screen.

UPDATE! Video playback works *much* better with the radeon drivers than the fglrx drivers ever did in Jaunty 9.04! I’m playing a FullHD video, in full screen with no tearing (which was evident in 9.04 with fglrx drivers), and no problems. 40 CPU load on one core. 500 megs ram used with a bunch of other stuff on as well.

So conclusions: If you don’t need 3d performance (i.e. compiz, gaming whathaveyou), don’t install the propietary drivers. Stick with the open-source ones!