Linux on M35X-S149

I’ve managed to totally wreck my laptop. I won’t be buying a new one anytime soon. This page will remain here mainly for historical purposes

I decided to buy a Toshiba M35X-S149 after reading James Lindenschmidt’s page on installing Linux on a Toshiba Satellite M35X-S149. Since buying my Toshiba yet another page has appeared on the net, you’ll find it here.

I can only agree with James’ statement to “install Ubuntu on this laptop”. I was a Ubuntu user already before so I had no problem with following his advice. I installed Ubuntu Hoary and had a working system in no time. After installing the base system I added ubuntu-desktop Sometime in the future I might trim it a bit, but it’s pretty nice to just have eveything you need installed. Here follows a few things that I have tweaked.

USB host controller

I think this is a general Ubuntu problem! Hotplug will install two host controllers: ehci_hcd and uhci_hcd. I noticed that my USB stick would behave funny with both modules in the kernel at the same time. (It seemed that the stick was passed between the two controllers, but never quite being handled by either.) I created the file /etc/hotplub/blacklist.d/local and put ehci_hcd in it to prevent it from being loaded.

Realtek 8139

This is similar to the USB host controller issue above. Hotplug loads both 8139cp and 8139too, even though only one is needed. I put 8139too in /etc/hotplug/blacklist.d/local.

Sony and Panasonic ACPI

I noticed that the modules sony_acpi and pcc_acpi were loaded on boot. It seems it was neither hotplug nor discover that triggered their loading. I put the following two lines in /etc/modutils.d/local to prevent it from happening:

alias sony_acpi off
alias pcc_acpi off

Getting the modem working

I am unfortunate enough to live in an area where broadband isn’t available yet (bloody BT needs to get its ass into gear!) so I was very happy to get the internal modem working under Linux. Installing sl-modem-daemon and wvdial is all that’s needed. Unfortunately it isn’t that easy since the sl-modem-daemon package in Hoary has dependencies that aren’t possible to satisfy! I’ve put up a fixed package (take a look here) for you to download. Hopefully the package will be fixed by the Ubuntu team soon.

Once you have installed both packages you make sure that snd_intel8x0m is loaded and that slmodemd is running. The execute wvdialconf /etc/wvdial.conf (you need to be root to do it, of course). Then edit /etc/wvdial.conf to reflect your ISP settings. That’s it! Now you can run wvdial (as root) to set up the connection.

X.org

Basically my setup is the same as James’s. I’ve only done two things differently:

  • I opted to use a frame-buffer device.
  • I installed an alternative font server (xfs-xtt) and changed the settings accordingly.

The touchpad

Improving the workings of the touchpad requires compiling the kernel with a small patch applied. I made sure xorg-driver-synaptics, linux-source-2.6.10, and kernel-package was installed. My user is a member of the src group so that I can write in /usr/src. Then I did the following:

$ cd /usr/src
$ tar -xjf linux-source-2.6.10.tar.bz2
$ cd linux-source-2.6.10
$ zcat /usr/share/doc/xorg-driver-synaptics/alps.patch.gz|patch -p1
$ cp /boot/config-2.6.10-5-686 .config
$ make-kpkg --rootcmd fakeroot --append-to-version .$(date +%g%m%d) \
  --revision 1 --bzimage --initrd kernel_image modules_image

Quite a few cups of coffee later I had a newly compiled kernel, packaged and ready for install in /usr/src. I installed it, rebooted, and then modified /etc/X11/xorg.conf. There is already an input device defined for Synaptics (it’s created when Ubuntu realises it’s being installed on a laptop). I modified it (strongly influenced by /usr/share/doc/xorg-driver-synaptics/README.alps) like this:

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"
        Option          "LeftEdge"              "120"
        Option          "RightEdge"             "830"
        Option          "TopEdge"               "120"
        Option          "BottomEdge"            "650"
        Option          "FingerLow"             "14"
        Option          "FingerHigh"            "15"
        Option          "MaxTapTime"            "180"
        Option          "MaxTapMove"            "110"
        Option          "EmulateMidButtonTime"  "75"
        Option          "VertScrollDelta"       "20"
        Option          "HorizScrollDelta"      "20"
        Option          "MinSpeed"              "0.2"
        Option          "MaxSpeed"              "0.5"
        Option          "AccelFactor"           "0.01"
        Option          "EdgeMotionMinSpeed"    "15"
        Option          "EdgeMotionMaxSpeed"    "15"
        Option          "UpDownScrolling"       "1"
        Option          "CircularScrolling"     "1"
        Option          "CircScrollDelta"       "0.1"
        Option          "CircScrollTrigger"     "2"
EndSection

Then I changed the layout to use the Synaptics Touchpad:

Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        #InputDevice    "Configured Mouse"
        InputDevice     "Synaptics Touchpad"
EndSection

A restart of X later I had a much nicer touchpad.