Posts Tagged ‘linux’

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.

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!