MS-1013 - Ubuntu

The MS-1013 is sold in a number of forms and often goes under the name Megabook S270. This hardware is also sold as a barebones system which is rather rare or laptops. It is the only laptop I found with an AMD64 CPU and a 12 inch screen.

As of January 2006 there are many online retailers that will allow you to customize your laptop. I purchased mine from AVADirect and have been happy with it so far. Besides picking all the components you can also pick the OS you want. In my case that was none! RedHat was an inexpensive option and, though I don't want to use it, in retrospect it probably would have helped having a working configuration on the machine to look at while trying to get some things working. In the end it wasn't necessary, it may have sped things up a little though.

The information provided here is a collection of things I learned/discovered while getting this laptop working. Although I try to provide all the relevant details I do not provide a step by step guide.

Document Status

Overview

I chose to install Ubuntu 5.10, "Breezy Badger", AMD64 variant on the machine. Roughly speaking everything works. Roughly since I haven't tested everything and there are some tweaks necessary to get some things working. In the end I find them rather minor and I have been impressed that a relatively new laptop in 64bit mode works so flawlessly so easily. Given struggles I've had with other laptops I was quite shocked by this. I chose Ubuntu because I have been using Debian for awhile now and like it. Ubuntu releases branches from Debian unstable frequently thus creating a stable system with more up to date software.

Hardware

In this system is the following hardware:

      MS-1013 Turion64 Ultraportable Series Laptop, 12.1" WXGA LCD, ATI Radeon Xpress 200M Graphics
      AMD, Turion 64 MT-34 1.8GHz, 1MB L2 cache, 25W
      DDR400, 1GB DDR 400MHz PC-3200 SDRAM SODIMM, Non-ECC
      FUJITSU, 80GB MHT2080AH, 5400-RPM, 8MB cache, 9.5mm, EIDE
      MICROSTAR, MP54GBT2 Combo Wireless-G + Bluetooth Adapter, IEEE 802.11b/g 11/54Mbps, MiniPCI (for MSI n/b only)
    

Other Details

For gory details you can view the lspci -v and /proc/cpuinfo output.

Configuration

As noted above almost everything on the laptop just works in the default Ubuntu install. Everything that I have tried works after some tweaks. Here is a brief summary of the tweaks. More details are given below.

BIOS

For the configuration described here I am using BIOS version 4.30 which was the latest as of 10 January 2006. I upgraded this from 4.10 which had been on the machine. You can find more information from MSI. Be aware that there are two versions of the BIOS, a 6.x series and a 4.x series. Please carefully read their information to determine whether you have the RS480 or RS482 chipset.

Note that to upgrade your bios you can boot from a USB flash drive. The MS-1013 will only show this boot option in the BIOS boot menu if the USB drive is plugged in at boot and if it has a bootable image on it. Under Linux I just used dd to write such an image to the drive. You can find images in lots of places including Bootdisk.Com. Make sure you copy the new bios and flash utility to the drive before you reboot.

CPU Speed Control

The CPU speed is controlled by powernowd. The default mode is to run at the lowest speed (lowest power consumption) when the machine is idle, to step it up as demand increases, and to step it back down as demand lessens. Some of this can be controlled by configuring powernowd, see its manpage for more details. This is installed and run by default.

Video Driver

There are two options for driving the video display. The first is to use the open source driver (installed by default). The second is to install the proprietary driver. You may also want to read about my DVD playing experiences when decided which driver to use.

Open Source ati Driver

The video chip in this laptop is unfortunately made by ATI. It is the ATI Radeon Xpress 200M. The free driver, ati, in xorg 6.8.2 supports this card though it will not run with hardware acceleration. Thus after install X will not start up (it will try and fail). To fix this edit /etc/X11/xorg.conf and add Option "noaccel" to the Device section. In other words you should have something like the following:

Section "Device"
        Identifier      "ATI Technologies, Inc. Radeon Xpress 200M (RS480)"
        Driver          "ati"
        BusID           "PCI:1:5:0"
        # This option MUST be added for X to start.
        Option          "noaccel"
EndSection
      

After this X will start, recover from suspend/hibernation, but run without acceleration. You can view my full xorg.conf file if you like. Most of it comes from the default install/configuration.

Proprietary fglrx Driver

ATI does release a binary only driver that works with this card. You can install different versions of this. If you want to install the fglrx driver you should read the Ubuntu Howto posted in the Ubuntu forums. With the latest version (8.22.5) I did not have to follow the advice about using a different version of libdri.a on 64bit platforms.

Debian package

An older version of the driver comes as a prebuilt package, just apt-get install the xorg-driver-fglrx package. If you are going with the 64bit environment make sure you read the Ubuntu Howto as noted above. You can view a working xorg.conf file. To verify that you have full acceleration run fglrxinfo. I do not have the expected output for a working configuration on hand, but, if it reports that XFree86-DRI being missing or something about using Mesa then I think that something is wrong. The configuration file given above did work for me when I tried it.

Though the configuration file worked for me when I returned from suspend or hibernate X was frozen which subsequently froze the machine. This is due to DRI being turned on. When I commented it out suspend and hibernate worked. Note that version 8.16.20 of the driver, the version I got when I installed the package, is the first one that claims to support suspend and hibernate. It would seem all the bugs weren't worked out in it.

Latest Version

To install the latest version of the driver from ATI follow the directions in the Ubuntu Howto posted in the Ubuntu forums. I use the same xorg.conf as used for the Debian packaged driver. When I run fglrxinfo I get

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON XPRESS 200M Series SW TCL Generic
OpenGL version string: 2.0.5642 (8.22.5)
      

Notice that I'm using version 8.22.5 of the driver. This is running with full acceleration and both suspend and hibernate work! They only work when I boot with both the noapic and nolapic kernel options set. Also note that fireglcontrolpanel seems to be a 32bit application. For me it was easiest to just use libraries from my 32bit environment to get this to run.

Sound

The sound card is supported by alsa using the snd_atiixp module. This is all detected and configured correctly. Unfortunately sound does not come out the speakers and can only be heard, quietly, with headphones. The reason for this is one of the registers is set incorrectly. To fix this read on. Note that you also have to make sure that the External Amplifier is turned on. You can check this with alsamixer, for example. I believe it was for me but I don't remember.

The sound problem has been fixed in alsa 1.0.10 which will be included with future versions of Ubuntu so sound should only be a temporary problem. Unfortunately Breeze Badger comes with alsa 1.0.9. One fix mentioned online is to
echo 7a 2090 > /proc/asound/card0/codec97#0/ac97#0-0+regs
This only works if ALSA debugging is enabled in the kernel (option named CONFIG_SND_DEBUG). The Ubuntu kernel does not have this option set. Thus you would have to reconfigure and recompile your kernel to turn this on. This isn't that hard, but it is not the option I chose.

The alternative is to install the snd_atiixp module from a newer alsa. I did this by getting the alsa-utils source package from "Dapper Drake" and compiling the module. To do this make sure you have the linux-headers package installed that is consistent with the kernel you are using. Once you have the alsa-utils source installed (which can be done as an unprivileged user) do something like the following:

# Change to the directory where you have it installed.  For me that is ...
cd ~/tmp/sound/alsa-driver-1.0.10
# Configure just what I need.  The --with-kernel option should point to
# the headers for the kernel for which you are building the module.
./configure --with-kernel=/usr/src/linux-headers-2.6.12-10-amd64-k8 --with-cards=atiixp
make
make install  # as root
      

After installing the module it is probably easiest to reboot (I know, this sounds like and m$ suggestion). It is possible to run depmod -a, kill anything using sound, remove all the modules, use the scripts in /etc/init.d to help with this, etc. In the end 1 reboot isn't that bad.

Regardless of the option you choose you will have to remember to do this for every kernel you want to have working with sound and redo it anytime there is a kernel upgrade. This is one of the more difficult "tweaks" that is required but, fortunately, shouldn't be needed in the future.

Wireless

The miniPCI card includes a Ralink RT2500 WLAN device. This is supported without changes by an opensource driver. The device name is ra0.

Bluetooth

I have verified that the miniPCI card installed is the MP54GBT2 (aka MS6533B). This contains bluetooth. The vendor claims it was tested under windows and worked (I have no way of confirming this). I have not been able to get it to work under Linux. The expectation is that it should be controlled by the hci-usb module (that is, the bluetooth is implemented as a usb device). However I see no new usb device when I load this module. I have found a report with working bluetooth. I'm not sure if this is the same device as I have.

ACPI/Extra Buttons

No tweaks were made to acpi. The email and web buttons work by default (using your gnome preferences for your email client and web browser). The "wireless" button toggles the wireless LED (on the bottom, furthest to the right) but doesn't do anything else. It does not generate an acpi keycode so it is not handled by the acpi system. I don't know how to check the state of the LED. Using setkeycodes you can cause it to generate a keycode that can be assigned to a task (through a gnome keybinding, for example) though I haven't done this. The last button for bluetooth does nothing. I thought it was suppose to change the color of the wireless LED to indicate that bluetooth was active. This concerns me a little as there were some mini PCI cards that were originally shipped with the MS-1013 that were suppose to include bluetooth support but they didn't work with the motherboard. Again it isn't controlled by acpi but a key binding can be assigned to it.

Touch Pad

Works with no changes. This includes scrolling. It is controlled by the xorg-driver-synaptics package, which was installed by default for me.

Suspend and Hibernate

Both suspend (to RAM) and hibernate (to disk) work using the built in software suspend. For this to work you must boot the kernel with the noapic and nolapic options. To do this I made the following changes to /boot/grub/menu.lst.

## Added noapic and nolapic here ...
# kopt=root=/dev/hda1 ro noapic nolapic
## Added noresume here. If I have to recover I don't want to restore
## an old session, I want to start over.  This is a safety nicety.
# altoptions=(recovery mode) single noresume
## Added resume=....  The device is my swap space.  To find this use
## cat /proc/swaps and fill in the filename.
# nonaltoptions=quiet splash resume=/dev/hda5
      

After making these changes run update-grub. You will need to reboot of course.

By default suspend (to RAM) isn't turned on. Edit /etc/default/acpi-support and uncomment the ACPI_SLEEP=true line. After this when you login to gnome the logout options will include both Suspend and Hibernate. Both will work though see the notes above in the Video Driver section. Returning from suspend/hibernate does depend on which video driver you use and how it is configured.

USB

Works with no changes. This includes highspeed USB2.0 devices.

Firewire

Works. I found for my external hard drive I had to turn it on first, then plug in the firewire otherwise it wasn't reliably detected/automounted.

Modem

Hmm, so, there does appear to be a modem in the machine. This means I haven't looked at it. I haven't even considered looking at it. I expect it requires some proprietary driver. I have no reason to test it and expect I won't.

Other Configuration Notes

There are many other things I have done in configuring this laptop/Ubuntu. Not everything is ideal but I'm continually surprised by how many things work and how well.

32 Bit Environment

There are a few proprietary programs that don't work in 64bit mode. This includes Acrobat Reader and Flash (with Firefox). This can be solved by running these programs in a 32bit environment. Setting up a 32bit environment isn't hard. Information can be found in the Ubuntu Forums. Note that the link here is a little old, it applies to Ubuntu 5.04, not Ubuntu 5.10, but the Howto can be followed with small changes. This has proven useful to me for mplayer as many of the codecs are 32bit only.

DVD Playing

Playing DVDs works great on this laptop, however, some configuration is needed. This includes both the dvd device and the video driver choice. For the player I use totem. I would expect any of the many other choices (gxine, mplayer, ogle, vlc, etc.) to work fine too. It is necessary to install the libdvdcss2 package, and follow its instructions, to play encrypted dvds that you have legally obtained and legally want to view (yes, it is a shame that one must still go through this step).

hdparm

I don't know if this was necessary but the cdrom device is untuned for performance so I tweaked this. I am currently using the options suggested in /etc/hdparm.conf. In that file I have

/dev/cdrom {
        dma = on
        interrupt_unmask = on
        io32_support = 0
}
      

Video Driver Choice

To play dvds in full screen mode I found it necessary to have a video driver with DRI turned on. Without this video update lagged the sound and was choppy. For me this means using the latest fglrx proprietary driver as noted above in the Video Driver section.


Craig J Copi | craig@copi.org
TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones
Valid XHTML 1.0 Strict Valid XHTML 1.0 Strict Valid CSS! Valid CSS
$Id: breezy.html,v 1.1 2006/06/11 15:12:20 craig Exp $