Archive for the ‘linux’ Category

Swfdec: Flash on linux the opensource way

In linux, opensuse on November 4, 2008 at 1:38 am

As webmasters increasingly pollute the web with their poorly thought out nightmarish flash creations, having a flash plugin has become a necessity to get the full web experience. Indeed, flash is so ubiquitous nowadays that it’s practically impossible to browse the web for more than 5 minutes without running into a website where it is utilized… and over-utilized at that. The flash monopoly had gotten so bad that microsoft came out with silverlight in an attempt to cash into some of that market, but that’s a story for another day and time.

As far back as I can remember, the only viable method for viewing flash content on the web has been the proprietary adobe flash plugin. Adobe has been kind enough to release working versions for linux distributions over the years. I’ve seen many complaints about the linux versions being buggy, but I’ve never really had any issues with them. The biggest downside in my experience has been that adobe has been so stuck in 2003 that they have never gotten around to releasing a 64 bit version of their flash player. Sure, as of last year, nsplugin wrapper had matured enough that native 64 plugins were no longer needed for many of the popular browser plugins that only come in 32 bit versions and opensuse’s implementation of the wrapper made using those plugins as easy as simply installing the 32 bit version of the package to be wrapped. However, opensource is all about choice and nowadays, a couple of open flash players are giving adobe a good run for their money.

The GNU swf player, gnash, is one such contender. The app improves in leaps and bounds each time I try it, but in my most recent trial, gnash’s performance lagged behind swfdec (pronounced swiffdec). As a result, I’ll be discussing swfdec today. I was so impressed by the plugin that I’ve been using it ever since I installed opensuse 11.1 beta 1 over a month ago.

The latest release of swfdec is version 0.82. It appears to support all flash 8 and prior features. Don’t dismiss it yet, it also supports some flash 9 and 10 features, though as far as I can tell, not all. It does include the embedded links implemented in flash 10, for those that like to clicky when getting their daily dose of googtube.


I’ve tested it with reuters, youtube (naturally), megavideo, google video, blip…. can’t think of any other video sites at the moment, but suffice it to say that more often than not, I have no problems with viewing embedded flash content. I have had issues with some youtube videos. I suspect the videos were encoded with h263, but I didn’t bother checking. Of course, not all flash sites display, but the sites I had the biggest problem with are sites that search for the installed flash version and display an error message when either flash 9 or 10 is not found. Veoh, for example, is a pain in the ass to use. I can play linked veoh videos, but go to the site directly and the videos don’t play. Silliness. Same thing happens on my phone, so I’m not too surprised.

Swfdec uses the gstreamer codecs, so to get the best functionality, gstreamer bad and ugly codecs must be installed. Swfdec’s signature calling card has always been the giant grey play image superimposed over all flash content.


The user has to click on the image to play the embedded content. Total control is nice and all, but it gets a bit cumbersome after a while. Thankfully, with the more recent versions of swfdec, the user only needs to right click to select the option to have flash content either play automatically, play based on the last selected option for the site or never play without manual input. (If you were wondering, it plays last fm videos, but is unable to connect to the last fm player).

My only complaint about swfdec is that it sucks up my cpu each time a page that uses the plugin is active. Doesn’t matter if the video or whatever is actually playing or stopped – cpu usage stays at or near 100% as long as the window is up (it drops to about 40% if a flash video is paused, but is around 80% when the video is stopped). It’s pretty much as bad as adobe’s flash player in that respect. I can live with that though.

So dear readers, go forth and enjoy your embedded pr0n with the full power of open source.


A look at opensuse 11.1 Beta 3

In linux, opensuse on October 28, 2008 at 1:54 am

Having had the extremely thrilling experience of spending the better part of a Saturday trying to get opensuse 11.1 beta 1 up and running, I gotta say, one month later, I’m pretty excited at how well the next opensuse release is shaping up. I happen to be one of those people that believe the best way to test software is to use it on a production system, which is precisely what I do. It’s hard to be bored with your system when you’re using beta software day in day out. It really is rewarding to be able to follow a fledgling project, watch it develop, morph and mature (growing pains and all) right before your very eyes. Read on to find out what the opensuse team has been doing these past few months.

The install media I used for my laptop was the 64 bit full dvd. Due to virtualbox’s lack of 64 bit virtualization and my reluctance to download another 3 gig iso image over bittorrent, I’ll be showing images of the live cd instead. Really, other than the partitioner, the install process on the full dvd hasn’t changed much over opensuse 11.0. For the sake of thoroughness, it took about 18 minutes to install 2.5 GB worth of packages on my laptop when I used the full dvd.

Moving on!

I hope 11.1 doesn’t ship with this boot screen. It nearly drove me insane in 11.0. The splash screen on the other hand looks pretty good, although it could also use a change.

Not much to say about the startup really. Everything was detected with no problems. Infact, I’d have been more surprised if any of my hardware was not detected. I mean, let’s face it, linux has gone beyond the point where hardware detection and installation were the biggest stumbling blocks.

I’m using the kde 4 live cd here. A lot of work has gone into improving basic user functionality in kde 4.1.2. For example, there are now three desktop views to choose from in the desktop settings dialog. The first view is the one we all know and love, with the peanut on the top right. A second option allows the user to get rid of the peanut. The third view is the basic icons-on-desktop look, also containing the peanut which can be used to pull up the desktop settings window. The folder view widget can of course be used with all three options.

I went ahead and themed my desktop, so some of the following images will not have the default wallpaper or settings.

Even though I’ve been using kde 4 since 4.0, I was always irritated by the fact that no matter what, I couldn’t get rid of the panel. I’m happy to say the panel can be auto hidden in 4.1.2. It’s still not perfect, but it accomplishes the intended purpose.

Installation from the live cd is pretty much straightforward. Clicking the install icon pulls up the standard novell license agreement, followed by locale setup and the partitioner.

The partitioner is the biggest thing that changed within the installation. I’ll let the pictures speak for themselves.

Some people will love iit. Others will hate it with a passion. I’d have to say I’m in the latter group. I think the partitioner should be more graphical, not text oriented. I appreciate the effort to simplify it, but in the end, it tosses in too many unnecessary steps, while leaving the old partitioner intact. Anyway, opensuse is composed of a lot more than just the partitioner, so let’s move along.

As with the 11.0 install, the option to use the default user’s password as the root password is enabled by default, but can be disabled as well. The user setup is followed by the summary screen and of course the install.

One of the many reasons why I love opensuse. Even on the live cd, you have a choice of desktop environments.

Other changes in kde 4.1.2. Power management is finally being implemented. A new icon was added to the advanced tab under system settings. Only thing that’s left is to add all this functionality to a systray icon, the way kpowersave does.

Networkmanager 7 is also being integrated into the system settings menu, but I didn’t grab any snapshots of it. There’s still quite a bit of work remaining on that front before it gets anywhere near the functionality of knetworkmanager (ie not needing to type in all your info manually).

Seriously, this is turning into a kde 4.1.2 review, but I do have one more kde related news to add. The built in desktop effects in kde now include desktop cubes, cylinders and spheres. I know, I know, it’s been available for over a month now. I just haven’t really seen any posts about it.

Another major overhaul in opensuse 11.1 has been the printer wizard. I like what they’ve done with it, but I’m sad to say that my brother mfc printer no longer works.

Other little things worth noting. Pulseaudio is included by default, as it was in 11.0. The last few months have seen pulseaudio really come into its own. It was one of the buggiest apps in 11.0, but now, it just works. I hardly even remember I’m using pulseaudio nowadays, which is a good thing.

Amarok 2.0 beta and openoffice 3.0 RC1 are also included. They both look awesome.

I’m sure there’s a lot of things I’m skipping over here, but this is really all the major things I can think of at the moment.

Open or closed source drivers for ATi cards: Which is better?

In linux, opensuse on July 17, 2008 at 9:22 pm

Man, it’s been 7 months since I wrote on this blog. Well, not really. I had a few posts that were started but never got completed. Did I mention how lazy I can be sometimes?

Anyway, let’s get back to the point of the post. As we all (or should all) know, AMD purchased ATi sometime back. On the linux front, thanks to an agreement with novell, ati has been steadily releasing documentation to opensource devs containing specifications for ati cards. A wise man once said, why continue with your shoddy coding when you can get people to support your crap for free?

Radeonhd, which is the brainchild of this whole documentation releasement, is coming along quite nicely. Owners of the x1000 and newer ati cards running linux can now rejoice and download the driver from their nearest distro repository. You can check out the website here.

Now, what about the tried and true radeon driver? The driver that has been chugging along since time immemorial? Since before such things as manufacturer provided documentation existed? How does it compare to the proprietary driver nowadays? It is slowly incorporating some stuff gleaned from ati’s documentation.

I haven’t had the luxury to test out the radeonhd driver since I happen to own a laptop containing the x700 mobility radeon. As any linux user with an ati card knows, the past few years have brought nothing but disappointments with each new fglrx release. Yes, ati was pulling itself together. Yes, the fglrx driver was able to achieve decent frames per second. However, each new release fixed one or two things and broke 5 more. The important bugs, such as, oh I don’t know, problems with compiz/beryl, corruptions on certain cards, incompatibility with 3D rendering, etc, took several releases cycles before they got fixed, if they ever got fixed. Some people are still using drivers released over a year ago because everything after that breaks their system terribly. Check out the forums at phoronix for discussions/complaints on each new fglrx release. Such things make one wonder if the ati linux dev team is really just one person. I mean, if a group of people are getting paid to improve the linux driver, only major incompetence would explain how little gets done every month.

I admit it, I got pretty frustrated with fglrx for the reasons listed above. I couldn’t play videos with some driver releases, compiz would slow to a crawl with others. Several just never compiled because ati was often very late on supporting newer kernels and patches weren’t always available. Seriously, the kernel major release cycles takes months. That’s plenty of time to add support. If you still don’t support a major release kernel 3 months after it was released, WTH?

While doing beta testing for opensuse 11.0 + kde 4.0, I had removed the fglrx driver sometime before and never bothered to reinstall it. I spent three or so months using a video driver that just worked. Glxgears was returning ~2800 FPS. I didn’t play many games during that time, but the ones I played worked perfectly. Compiz was disabled, as I wanted to get more acquainted with kde 4’s desktop effects. When I finally installed the opensuse 11.0 GM, I decided it was time to install fglrx for compizness.

The install went smoothly, with zero xorg.conf tweaking on my part, thanks to opensuse 11.0 enabling AIGLX whenever fglrx is installed. I just added the ati community repo in yast and off I went. The most configuration I had to do was run sax which I did more out of habit than anything else.

With the smooth install, I foresaw sunny skies ahead. The laptop ran well for most of the first day after the new install, but the X server froze later in the evening. I assumed this was a minor glitch on the somewhat buggy .0 release. I restarted and all was well with the world. Until the next day that is. X froze multiple times in a row. Since I had been running factory up until the previous day without any glitches, I figured I may need to update the default kde 4 to factory. I did. Sunny skies returned. For one more day at least. Every day after that, I had to update kde 4, otherwise my X would freeze. Strange isn’t it? On the days when kde 4 factory didn’t get an update, I experienced random freezes, which occured every few minutes until I updated kde 4. Oh yeah, all 3D stuff had terrible flickering. After a couple kde 4 upgrades, games like tremulous, glest, planeshift and sauerbraten which had been just barely tolerable initially, became completely unplayable.

I started pondering what else was different between my beta system and my current system. Well, I certainly wasn’t updating my system to factory (been there, done that when I needed to, got the tshirt). The only other difference was the video driver. For the life of me, I couldn’t figure out what driver I had been using on the beta install. The opensource radeon driver has given me a black screen ever since opensuse 10.3. I tried it anyway, with the same result. The radeonhd driver didn’t support my card. I tried it anyway, but no luck either. I then tried vesa…. yes, vesa. No surprise, the rendering was slow as molasses.

I even tried installing fglrx, but without configuring it with sax, and on a kernel that it couldn’t compile on. That gave me some pretty interesting results. 2D stuff worked fine, but 3D and compiz died a horrible death. Xorg logs showed parts of the fglrx driver were used for certain things, but glxinfo showed SGI as the glx vendor. Hmm.

So what the hell had I been using during those months of zero hassle? I stumbled on the answer by mistake. While futzing around with dependencies for fglrx in yast, I accidentally enabled both ati-fglrxG01-kmp-default as well as x11-video-fglrxG01 for removal. I also blocked the other fglrx related drivers, which naturally kept wanting to install. Surprise surprise, my laptop booted fine. Glxinfo gave me about 2600 FPS and damn, 3D games looked great. When I checked my xorg.conf, lo and behold, I was using the radeon driver. Just to be sure I was seeing things right, I installed x11-video-fglrxG01. The next X start gave me a black screen.

It’s been a longish post. Good thing I’m winding down. The point of this post was simply to put it out there that the radeon driver is now more usable than the fglrx driver. The fglrx driver only trumps the radeon driver in FPS under glxgears (~4400 vs 2800 on my system). However, none of my 3D applications showed a drop in FPS and none of them flicker (note that on planeshift, fullscreen is required to avoid some flickering  when using the radeon driver). The only problem I have encountered with the radeon driver is that if I load a game after resuming from suspend or after the laptop has been on for several hours, X is highly likely to freeze at some point. This doesn’t happen after a clean boot. Oh yeah, did I mention compiz works? It does, and with no hits to speed.

Goodbye cruel fglrx world. You treated me and mine as an afterthought, so here I return the favor. I’ll keep an eye on that front, but I’m done using the driver, unless a revolutionary release appears.

For those that feel they need the fglrx driver to get usable 3D or whatever, it’s about time to check out the radeon driver if your card is supported. Of course, as with anything, performance is system dependent, so your mileage may vary. Just don’t forget to remove everything related to fglrx before you switch to radeon, especially if using a mobility radeon card.

N95 PTP Opensuse

In linux, opensuse, phones, tech on December 13, 2007 at 8:48 pm

I was playing around with the USB mode options on my N95 today  when I stumbled across something I find pretty nifty. I had selected Image Print mode just for the hell of it. To my surprise, my opensuse OS popped the hardware detection window. Intriguing. The possible options included using Digicam to open the albums on the phone and opening them with konqueror. I chose konqueror. Next thing I know, I am looking at a folder containing pictures from my N95. Erp.

Why am I surprised? You see, I have always transferred pictures off of my digital camera using this method. The last thing I expected was to see this on my phone. I knew the N95 supported PictBridge, so when I selected Image Print mode, I though the phone would look for a printer and time out or something when it couldn’t find one. Anyway, yes, I am quite happy to see the picture transfer protocol (PTP) is supported by the phone.

I went ahead and fired up digicam because it is such a great program. Screenies below.


Digicam autodetected the N95 as a camera. Cool!


My phone’s gallery with some night shots I took the other day.

digicam2.png digicam1.png

Even the metadata info is populated when using PTP.

I thought I knew everything about the phone by now. I’m glad to see I was wrong.

Printers not accepting address in suse

In linux, opensuse on November 29, 2007 at 7:40 pm

I had the most ridiculous problem which I struggled with for weeks (off and on) and finally fixed today. This would be for myself or anyone that runs into a similar issue.


I tried to install a Brother MFC240C printer. I’d had this printer since it was released and it had been working fine with my laptop before. I hadn’t installed it since I upgraded to opensuse 10.3, so there I was trying to get this thing installed and it absolutely refused to be detected.

Normally, suse detects devices when I plug them in, so when I didn’t get a popup window, I figured something was up.

One dmesg later:

[  546.064870] usb 2-3: new full speed USB device using ohci_hcd and address 2
[  546.112780] usb 2-3: device descriptor read/64, error -62
[  546.198440] usb 2-3: device descriptor read/64, error -62
[  546.282649] usb 2-3: new full speed USB device using ohci_hcd and address 3
[  546.330559] usb 2-3: device descriptor read/64, error -62
[  546.416219] usb 2-3: device descriptor read/64, error -62
[  546.500427] usb 2-3: new full speed USB device using ohci_hcd and address 4
[  546.648514] usb 2-3: device not accepting address 4, error -62
[  546.694977] usb 2-3: new full speed USB device using ohci_hcd and address 5
[  546.843064] usb 2-3: device not accepting address 5, error -62

I desperately needed to print something for the next day and therefore switched over to a windows laptop. On said laptop, I had an untraceable error and spent the longest time trying to troubleshoot. Anyhow, several hours later, it took an install of the Brother printing and scanning package to inform me the printer had been slightly open the entire time. Closed it and off we went.

I got back home and tried to use the HP OfficeJet 4215v printer that had been working fine before the MFC hoopla. Same error right after I plugged it in. Damn. Nothing I did seemed to change this. For several weeks, I let this slide. For several weeks I was without a printer.

Today, I decided: No More.


Restart the printer.

Yep, kind of sad, I know. I did everything from upgrading my kernel to reinstalling cups and associated packages. Well… it’s kind of a crapshoot between whether the restart or the cups/cups-drivers/cups-devel reinstall fixed it.

So… there you go. Yea, I do feel like a complete tard. Here’s hoping it doesn’t take you weeks to figure it out.

OpenMoko gradually getting there

In linux, phones, tech on September 26, 2007 at 7:06 pm

Openmoko is still in alpha mode. Going by the recent images tested on the wiki, most of the features on the Neo now work, but remain flaky.

Phone calls can be made, but require some workarounds with the more recent images.

Calls can be received. Noise cancellation still needs implementation.

GPRS can be started manually (sometimes).

Bluetooth can be started and used manually.

Icons are still missing.

GPS works, but devs are still trying to put together an app.

Media player works, but creating a playlist crashes the app.

I know the openmoko team is doing their damndest to get this software finished ASAP, but I really wonder whether October will see a release, dev targeted or not. A few peeps with the phase 1 release have lambasted the phone’s inability to make phone calls. With October this close and the phone still terrible at simple phone capabilities, I find myself agreeing with them. Although qtopia has been ported to the Neo, it is doubtful that the phone will be released running anything other than openmoko. Tech geeks will have to install the new OS or setup dual boot in the whole spirit of opensource thing.

Qtopia might be more mature than openmoko, but it still requires a bit of work. Come October, I suppose the only issue that will prevent a developer release will be hardware shortage. Despite all the previous enthusiasm, many have come to realize that a consumer ready version will not be released until 2008. By then, I truly hope the phone has been upgraded to EDGE, otherwise, who knows.

I know I can say with all confidence that my future phone plans do not involve the Neo1973. I still want the phone to succeed, because the openmoko team will go on to make other devices, but right now, the neo1973 offers -me- nothing. Emphasis on me here… it might be the most feature packed phone the majority of users have had so far. I shell out the money to buy unlocked higher end symbian phones, which means I don’t have to worry about carrier crippled devices. The symbian OS has a shitload of user developed software, so the neo offers little new in this department. I buy feature packed phones because I know how to milk my devices for all they are worth. Up until now, phones running linux have been lower end or lower mid end level. A linux phone that can compete with the Nokia N95 in terms of features is something I will be happy to snap up. The Neo is unfortunately not the One. When openmoko starts working on a higher end phone, with kickass camera and EDGE (I’m on tmobile, so 3G doesn’t matter for the time being), then I will pay attention. For now, I sit on the sidelines quietly cheering them on.

T-Mobile tethering on OpenSuse

In linux, opensuse, phones, tech on September 26, 2007 at 2:19 am

FYI: These settings will work with any phone with modem capabilities.

Woot! I just set up bluetooth tethering on my linux box with my trusty Nokia N80. I am currently typing this on my laptop while connected to T-Mobile’s EDGE. Amazing how easy everything was. Of course it helps that I don’t mind getting my hands dirty (so to speak) with the command line and that I was following a guide on Howard Forums wiki. This guide to be exact. I am using knetwork manager + opensuse’s yast networking tool which simply made setup a breeze.

As an aside, I’ve said this before, but let me reiterate how much joy it is to surf with EDGE. Sure it’s not as fast as my wifi connection, or anywhere near the speed of my wired AT&T connection, but loading times are just a smidgen away from instantaneous. I should mention that speeds are about as bad or worse than dialup if I have one bar or less as I discovered recently. Not really surprising when you think about how bad packet transmission has to be in that situation. Anyhoo, the reason for this tangent is twofold. One, the iphone got a lot of flak for having only EDGE. Makes me think that the people complaining are either instantly instant gratification junkies or they just never surfed on EDGE. Knowing the sorry state of journalism today, I’m honestly leaning towards the latter. The second reason is that a smart phone without EDGE does not deserve that title. Neo I’m looking at you. Follow the white rabbit.

Back to the point of this post, which is putting together a quick and dirty guide for both cable and bluetooth tethering on opensuse. I’m using opensuse 10.3 RC1 but this should apply to any version of opensuse since most of the work is done in Yast. The input boxes should be similar for other gui based network managers.

First off, open up Yast and go to Network Devices.

Yast Control Center

Select the Modem, not the Network Card option.

Yast Modem Manager

Let’s do cable tethering first. As you can see, opensuse detected the make and model of the phone and also identified it as a modem as soon as it was hooked up. If this doesn’t happen for you and the entry doesn’t show up in the list, just click on Add. Otherwise, select Edit. Everything is the same.

Yast Modem Manager 2

My device location is /dev/ttyACM0, which unless you have another pda/phone connected (that doesn’t fall in the palm pilot, treo or visor category) will probably be the same for you. If ya want to verify, open up the command line and type dmesg. One of the last entries should be about a usb connection. The device location should be next to it. Next up, hit that Details button.

Yast Modem Manager 3

If you’re using AT&T, you’ll have to look up their url for yourself and replace the entry with it. OK out of that window to go back to the previous dialog, then Next to enter your service provider.

Yast Modem Manager 4

Make sure Custom Providers is selected then click Add. T-Mobile FTW. Username and password aren’t needed by T-Mobile, but Yast wants you to put something in those boxes, so you can fill in tmobile for both.

Yast Modem Manager 5

Fill in the boxes like so, click Next and leave all the following dialogs as default. That’s it for setup. Told you it was easy. OK and Finish out of the Yast window. To use your spanking new connection, right click the Network Manager icon on your task bar, go to Dial-Up Connections and voila. Connecto. If you’re using KInternet, the new dial-up entry should also show up in the list.


Network Manager is the white icon next to the digital clock. Man am I up late today.

It takes about 5 seconds for the connection to become active, but once it does, you can look at your phone and see the GPRS-connected icon.

If you’re using tzones, the old old T-Mobile Internet offering, you’ll have to set up a manual proxy for your browser before you can browse. On Firefox, this is as easy as going to Edit / Preferences / Advanced / Network. Select Settings to configure how Firefox connects to the internet. From what I understand, T-Mobile Internet users don’t need to do this.


Happy EDGE browsing!

Time for bluetoothing. Setting up the device requires a little more work, but here we go.

A few things you have to be sure about:

1. This goes without saying. Make sure you have bluetooth working on your box. Suse has been excellent for me on hardware detection but I know some peeps out there aren’t so lucky.

2. Your phone has to have the ability to work as a bluetooth modem, otherwise, this exercise would be pointless.

To confirm number 2 as well as find other info you need, the command line comes in handy. If you use KDE, you can find this info with kdebluetooth, but for the sake of reproducability and the fact that I know squat about gnome’s bluetooth manager, let’s stick to the command line for now.

Type in hcitool scan. The output will give you the MAC address followed by name of the phone like so:

Scanning ...
00:12:D2:A1:0E:C8 Lillith

Next, enter sdptool browse <your MAC address here>

Find the Dial-Up Networking entry:

Service Name: Dial-Up Networking
Service RecHandle: 0x10014
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

We’re interested in channel info. Open up /etc/bluetooth/rfcomm.conf with your favorite text editor. You want a final entry that looks like this, with data for your phone filled in:

rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:12:D2:A1:0E:C8;
# RFCOMM channel for the connection
channel 2;
# Description of the connection
comment "T-Mobile Dialup";

Save and restart your bluetooth by entering service bluetooth restart

Yast setup is the same as for cable tethering, but you need to change the device location.

Yast Modem Bluetooth

Happy bluetooth EDGE surfing!