Ubuntu on Amilo SI 1520

Posted by emil on February 20th, 2007

If you are looking for a HOW TO on installation of Ubuntu, please scroll down a bit.

I recently bought a new laptop from Fujitsu-Siemens - the Amilo SI 1520. My requirements for this laptop was that it should be fairly cheap (max 1000 euros), run Linux with ease and feature a 12 inch wide screen.
After browsing through some local (Swedish) internet stores I soon concluded that I had to go with the high end consumer segment instead of the business segment, otherwise my budget requirement would have gone through the roof. I narrowed the selection down to either the Lenovo 3000 V100 or the FSC Amilo SI 1520. The Lenovo sported a higher build quality, but the FSC had better specs in almost any area (CPU, HDD, battery time etc). Both of them were proven to run Linux (Ubuntu and Gentoo), but the resources on the web was very limited (that is one of the reasons for me writing this article right now).

Ubuntu

Installing Ubuntu 6.10 on this piece of hardware was very straightforward. I just chose to resize my Windows XP partition (want to keep it for some experimentation) to 10 GB and use the rest for Ubuntu.
After the installation was completed it was just a matter of installing the 915resolution package to get the native resolution (1280 x 800) of the screen.

The wireless network card (Intel Corporation PRO/Wireless 3945ABG, kernel module ipw3945) was detected without problems, but ipw3945 and Gnome Network Manager applet 0.6.3 did not play together. It didn’t take long until I found out that 0.6.4 supports ipw3945 and is available in the development version of Ubuntu (Feisty 7.04).

I thought it could be fun to test the latest Ubuntu (and have nice wireless controls in Gnome) so I started to upgrade my Edge to Feisty. It is a very simple procedure. Simply make sure that your system is up to date. Then run the command:

gksudo "update-manager -c -d"

If it whines about authorization problems you must execute GPG as the super user (root) one time before running the update-manager. It is also very simple:

sudo su
gpg
[CTRL+c]
exit

Then run the update-manager again.

Hardware status

I have read a few articles about Linux on the Amilo SI 1520 and the only thing that seems a bit tricky is the built-in microphone. I can confirm that it does not work out of the box, but I have not tried to get it working. Other than that all works fine, even the so called multimedia-buttons and suspend/hibernate.

lspci - for reference


00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller AHCI (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
07:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 02)
07:09.0 FireWire (IEEE 1394): Ricoh Co Ltd Unknown device 0832
07:09.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
07:09.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
07:09.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
07:09.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)


TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones

buglix.se » First article

Posted by emil on August 24th, 2006

I just now published my first article on buglix.se. It was first published in a Swedish computer magazine back in 2003 so I will probably update this online version a bit when I have the time.

buglix.se » FluxBox – en funktionell lättviktare

I’m still tinkering with the UI of buglix.se so don’t be surprised if it looks completely different the next time you pay a visit.

Updated ~/.vimrc

Posted by emil on July 2nd, 2006

After hours of testing different settings I finally came up with a new configuration file for Vim. This all started after I upgraded to version 7.0 of this magnificent editor. I also spent several hours trying to find the optional coding font to use in Gnome/GTK/Vim, and belive me, it was HARD. I finally settled for MonteCarlo which reders nice with my current settings. Here is a small sample of how it looks: http://hacka.mine.nu/screens/2006/07/20060702-2313-vim-nice-font.png

My new .vimrc can be found here: http://buglix.org/vimrc.html
And the old one here: http://buglix.org/vimrc-old.html

Gaim plugin development (in Ubuntu)

Posted by emil on May 19th, 2006

I recently remembered that Gaim has a nice Perl API for writing plugins (or actually I was rembembered by a friend). I decided to test it out by writing a plugin for displaying the current playing song in Rhythmbox in instant messages when the keyword '%rb' is found (I know there is a plugin for that already, but I did not get that to work).

The first step was to download the small source for the Perl API example from the Gaim site and try to get it to work. I placed the script in ~/.gaim/plugins, but sadly it did not load when I started Gaim. Time to start to debug the supposed-to-work-sample-code ... how I love that.
The first thing that hits you when you are starting to read the debug messages from a Gaim session is that many of them are a bit strange, like these two:

CODE:
  1. dns[30097]: Oops, father has gone, wait for me, wait...!
  2. dns[742]: nobody needs me... =(

After firering up Gaim with the -d flag I started to realize that the version of Gaim I was using was not compiled with the Perl extension. Or actually, the Ubuntu package I use does not include it (I probably will check out why later on and submit a bug because I think it should be there).
Fortunately it was pretty straight forward to build the Perl extension by hand and just moving to /usr/lib/gaim without disturbing anything else in my system.

So when the Perl extension was available and Gaim.pm was ready in @INC I could finally load the sample script into Gaim. I thought this was going to be easy. I had already prepared the script that reads information from Rhythmbox by executing the command line interface with different flags. How hard could it be to just plug that in when a message was sent? Pretty hard I tell you :-)

I understod from the API that I could connect my callback functions to different signals, but I could not find any complete listing of these signals. I finally found this test file signals-test.c in the Gaim source tree containing test calls for all the supported signals. From there I got a fairly good idea of how the signals was implemented in C and which signal I should use (sending-im-msg).
The next headache was this anoying little message in the debug log of Gaim:

CODE:
  1. signals: Signal data for sending-im-msg not found.

The code snippet below is the one generating this irritating message. All the examples (which are few) of how to use the Gaim::signal_connect function passes in either an empty variable or undef as the last "data" parameter.

PERL:
  1. Gaim::signal_connect( Gaim::Conversations::handle,
  2.          "sending-im-msg",
  3.          $plugin,
  4.          \&signal_sending_im_cb,
  5.          undef);

However, the sending-signals requires this variable to be a Perl hash. This took some time to figure out. I had to go to the Gaim plugin repository at Sourceforge.net and find another Perl plugin to compare with. So after changing "undef" to \%data (which is some undefined variable by the way) it all worked out nicely.
After entering the magic string %rb in a Gaim IM conversation, my counterpart got these magic words:
Emil is playing "Nutshell" by Alice in Chains from Unplugged at 2:22 (5:00).

The conclusion from this small coding adventure is that the API for writing Perl plugins for Gaim is fairly weak. The introduction tuturial is quite good, but lacks certain details. If I get some time over sometime I could perhaps help out with that.
If you would like to see the result, you can get it here (or see it syntax highlighted by VIM here).