Sunday, September 28, 2008

EEEPC: Going back to Xandros

So I have been living on the bleeding edge for a while, running the latest and greatest code that Ubuntu has to offer. That being said there are some nasty problems trying to run Ubuntu Intrepid on the eee PC 701 series. Here are the problems I had.
  • No hotkeys - None of my hotkeys worked. That means that I couldn't use the Fn+Key combos to enable/disable wireless, control volume, or suspend. Brightness hotkeys worked fine.
  • No suspend feature - What I thought was a hotkey problem was actually a suspend to disk issue. It seems that owners of the 900/901/1000 series of eee PC are not complaining. The new eeepc_laptop driver works just fine for them. But for a 701 owner, you are out of luck. From what I see, only one or two coders are looking at this under the Red Hat Linux team. Will the change make it into the Ubuntu branch any time soon? Probably not.
  • New wireless driver - The good news is that Intrepid provides the new Ath5k driver for wireless. This will replace the madwifi driver which Ubuntu use. But upon loading the OS my wireless didn't work because it was using ... an old madwifi driver. What the hell? After disabling the "vendor specific" driver and rebooting the ath5k came to life. It worked FAR better than the madwifi drivers I had been using. Now I was able to pick up distant networks, but the strength or quality was still not accurate.

Rather than continue to bitch about how this new stuff doesn't work I thought I could try the OS that this laptop shipped with. I only gave it about 10 minutes of my time when I unboxed it, and it worked just fine if I remember right. So I drug out the restore DVD and created a restore USB drive installer. Then just minutes later I was running the default OS ... an outdated copy of Xandros Linux.

There's a lot to like with this OS. It's very small providing you with lots of free space when the installation is complete. It comes with everything you need (or almost everything). The wireless driver works VERY well. Of course, all of the hotkeys work so you can suspend it and bring it out of sleep easily. It boots on a dime!

Now the complaints: it took FOREVER to update. And after I bricked it for the third time in a single day trying to install Firefox I decided to find a work-around. The eee PC (like any other Debian Linux install) stores it's downloaded .deb packages in /var/cache/apt/archives/. So I ran through the process of installing all the updates and then copied everything in /var/cache/apt/archives/ to a directory on my SD card. Then, the next time I reinstalled I just linked all those deb packages to the directory where the OS looks for them. It looked like this: ln -s /media/D:/updates/*.deb /var/cache/apt/archives/. The result is when you install an update, it's instantaneous.

Then I went to install the overclock module that I love so dearly which gives you a full 100Mhz of power on your FSB. But there was a problem ... nobody has compiled it for the Xandros installation. Long story short I found that a French fellow had provided a patch to make the code compile cleanly. I was able to compile it, and I have made it available. So if you are running Xandros, and you want the eeepc-linux module you can grab it here ...

http://www.oddree.com/rayhaque/eeepc/eeepc-linux-2.6.21.4-eeepc.tgz

I should note that I have not needed that module too much, as the Xandros install runs pretty well without it!

My only other chief complaint is that the version of Firefox which comes with Xandros is really old 2.0.1). I have found several different threads on installing Firefox on your Xandros install, the most notable being one written back when version 3 was in BETA. Typically you can just download Firefox and extract it to a directory. But that doesn't work for the eee PC because Xandros is using GTK 2.8 and Firefox 3 requres version 2.10. One solution was to install the newer GTK 2.10 library and a slew of other packages that went with it. I was a little uneasy about mixing and matching new and old libraries together. But I tried it anyway. The result was an inoperable browser and an unstable operating system. Reload!

Then I found that another user had been successful in downloading the newer libraries but not installing them. Instead he had extracted them to a directory and then modified the Firefox startup script to point to that directory. This makes far more sense to me, and I gave it a shot. In no time I was running Firefox 3.0.1 without any problems. But I was all ready out of date. The newest is 3.0.3. Good news, that worked too. I decided I would write a script to quicken the process of installation which I will share with you now:

#!/bin/bash
mkdir /home/user/firefox303
cd /home/user/firefox303
wget http://apt.linex.org/linex/gtk-2.10/libgtk2.0-0_2.10.13-2~bpo.1_i386.deb
dpkg-deb -x libgtk2.0-0_2.10.13-2~bpo.1_i386.deb gtk2-10
wget "http://download.mozilla.org/?product=firefox-3.0.3&os=linux&lang=en-US"
tar -xjf firefox-3.0.3.tar.bz2
cd /home/user/firefox303/firefox/
sed "2i\\
export LD_LIBRARY_PATH="/home/user/firefox303/gtk2-10/usr/lib"" /home/user/firefox303/firefox/firefox > /home/user/firefox303/firefox/eeefirefox
cp /home/user/firefox303/firefox/firefox-bin /home/user/firefox303/firefox/eeefirefox-bin
ln -s /home/user/firefox303/firefox/eeefirefox /home/user/runfirefox303
chmod 755 /home/user/firefox303/firefox/firefox-bin /home/user/firefox303/firefox/eeefirefox-bin /home/user/runfirefox303
wget "http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_9_linux.tar.gz"
tar -xzf install_flash_player_9_linux.tar.gz -C /home/user/firefox303/
ln -s /home/user/firefox303/install_flash_player_9_linux/libflashplayer.so /home/user/firefox303/firefox/plugins/libflashplayer.so


Here is the play-by-play. A directory is created in your home directory called firefox303. Then we download GTK version 2.10 and extract it there (NOT install it). Then we download Firefox 3.0.3 and extract it to /home/user/firefox303/firefox. Next we use 'sed' to insert a line into the script which starts Firefox. This line tells Firefox where to find the GTK library files and will prevent the error you would otherwise get. Notice that we call the new file eeefirefox. Because that file name becomes a working variable, we also need to habe "eeefirefox-bin" file which I created through a copy process (a symbolic link would have probably worked too). Next I created a symbolic link so that the user ends up with an executable script in the root of their home directory called "runfirefox303". Lastly the script grabs the latest version of Adobe Flash Player and installs it for you (because everybody needs it).

I also shared this script with the eee PC community here: http://forum.eeeuser.com/viewtopic.php?id=45742

Now you would think I would get some kudo's for my work on this project, but I've got nothing but crap from the user base. I'm not going to troll my own threads, but I will use my Blog to vent a little bit here.

Well, the other method worked fine for me! - Oh good. Because I spent several hours trying to make it and ended up reloading four times. Which is why I took the time to put this new method together. By the way, to "make it work" you totally tainted your system when you *INSTALLED* the newer GTK libraries to Xandros.
I didn't taint my system - Yes you did. When you start downloading packages that were built for a different version of Debian Linux you have tainted your install. You are driving full speed into dependency hell. Especially when you want to compile something new and you need those dev libraries.
I didn't taint anything, it still works - You tainted it. See the above.
No I didn't - Yes you did! Get out of my head!
I get a message telling me that GTK has to be 2.10 - You have to run the link that was left conveniently in your home directory. It's called runfirefox303. Vote Palin/McCain in 2008!
I have to start this from a terminal every time? - You could link a button to the startup script. It's not that difficult. Like foreign policy. Simple stuff.
Why didn't you make a package? - Because these all ready are packages, which I am hacking together to make work. I'm not going to re-package other peoples packages. I'm pretty sure that violates the terms of use from Mozilla any way.
Firefox 3.0.3 locks up! - What do I look like, the application developer? Report that shit to Mozilla. I have found some bugs too and I'm not talking about this hacked-together crap I'm pulling. It crashes in Windows too. That just gives us something to look forward to in Firefox 3.0.4! :-)

Okay, okay. That's enough user abuse for one day.

5 comments:

  1. Thanks a lot for your script for installing firefox, it worked like a charm for me. Cheers!

    Guillaume

    ReplyDelete
  2. I have worked with CPM , MSDos, Windows 2,3, to Ultimate Vista. Ubuntu Linux (just playing with that,Quick Basic Turbo, C++ and finally now Xandros on an EEE PC 701 (3 days I bought one) Now running KDE mode, and all I can say to your script, as ¨L¨ plates on Linux. Thank you your efforts are appreciated, any effort to share information and help other EEE/Xandros users IS NEVER WASTED. THANK YOU ! WWW.PAULA4U.NET

    ReplyDelete
  3. Thanks for you efforts !

    ReplyDelete
  4. Ubuntu is garbage. Try Arch linux and go by their eeepc guide to get everything working properly. The custom kernel from toofishes is great. You just might need to get used to the pacman package management system but it's not bad.

    ReplyDelete
  5. NickelB: I might just look into that. I have been running Xubuntu Intrepid for a while, but I have considered trying Puppy for the eee after having some nice dealings with it for another project. But then I did some Googling about Arch Linux and that also seems interesting. Here is a good link for anyone else stumbling around here: http://wiki.archlinux.org/index.php/Installing_Arch_Linux_on_the_Asus_EEE_PC

    ReplyDelete