Linux on the Acer TravelMate 350TE

14 January 2001
Romain Kang
romain@kzsu.stanford.edu

This document is available at
http://www-kzsu.stanford.edu/~romain/TM/TM350te.html

1. Description

Several of the web vendors had clearance markdowns on this unit. The main thing that caught my eye was the weight, which was very close to 4 pounds. I'd been waiting for a lightweight notebook to replace my 1996 DEC HiNote Ultra (50 MHz 486, 24 MB RAM max), but I had been hoping for deal as good as the one I had with the HiNote.

Acer's web site currently publishes specifications at <http://www.acer.com/aac/products/notebook/tm350/index.htm >, but in summary, you'll find:

The unit delivered with Windows Millenium Edition ("ME" in subsequent references). The unit is noticeably deeper and wider than the HiNote, but the same thickness and physically much stiffer (possibly in part because the HN had lost a few screws over the years, including a warranty repair back back in the East Coast).

The SmartCard seemed a nice idea, but I ran out of patience with it almost immediately. Anyhow, Linux wouldn't know what to do with it, so I removed the SC software from the ME side.

The keyboard is also a questionable innovation. The keys are arranged to fit a radial slice out of a large circle, so the top row keys are narrower than the bottom row. The idea seems to be that keys further away won't require larger stretches for your fingers to reach them. However, even with my relatively small hands, it's been awkward to get the top row keys.

There are also five additional keys above the Fn row, which are intended for user-assignable shortcuts such as checking email or calling a web search engine. In Linux, none of these keys seemed to be visible through X events or through showkey. My guess is that a special device driver is required for these special keys (as well as the rocker button on the touchpad, below).

2. Installing Linux

2.1 Preliminaries

I made the false step of defragmenting the C drive (in preparation to repartitioning to allocate space for Linux). When I tried rebooting ME, the NIC driver was hosed. It turns out that one of the Windows Update notes at M$'s web site described a problem with some defragmenters. I tried reinstalling using the upgrade option on the System CD, but still no joy. Using the System CD to use a "Full HDD restore" worked beautifully.

Of the 2 GB for Linux, I set aside 258 MB for swap and the rest as a single filesystem.

2.2 Linux Installation

The Red Hat 7.0 installation CD could not find any valid screen modes to use with X11, so the installation ran in character mode. (Fine with me, since I always felt graphical installers were mostly froo-froo). Because the boot/root partition was way back in the physical disk, I had to use "lba32" instead of "linear" addressing in order to write the LILO boot information.

The Ethernet showed up as an eepro100, and I had no trouble with it.

3. XFree86

3.1 XFree86 3.3.6 vs. 4.0.1

Trident's product blurb for the i7, a similar video controller, is available at <http://www.trid.com/videcomm/tridproducts/portable/cyberblade_i7.htm>.

The RH7 installer dropped in both the 3.3.6 XF86_SVGA and the 4.0.1 X servers. The Cyberblade Ai1 was not recognized. Several initial attempts with "startx -- -probeonly" failed with XF86-4.0.1.

I tried the 3.3.6 server, which announced that the "cyberblade" chipset was supported. I added Chipset "cyberblade", and voila, things started working. 32 bpp worked, though it scrolled very slowly. However, "ls -l /bin" was noticeably jerky. 24 bpp made a pattern of repeating vertical bands, though the keyboard and mouse responded well enough for me to exit the X server. My XFree86 3.3.6 XF86Config file is available from <http://www-kzsu.stanford.edu/~romain/TM/XF86Config>.

PROBLEM: Ctrl-Alt-F1 and the other Ctrl-Alt-Fn keys seemed to be swallowed up by the hardware -- I could not get them to switch virtual consoles.

I looked at 4.0.1 again and discovered that it supported several varieties of "cyberblade", and "cyberbladei1" seemed closest to the video controller at hand. So I tried several configurations with Chipset "cyberbladei1". 32 bpp wouldn't work for me, nor would "-depth 24 -fbbpp 32". All such attempts produced the banded screen artifacts. 16 bpp is fine, so I'm runng with that. My XFree86 4.0.1 XF86Config file is available from <http://www-kzsu.stanford.edu/~romain/TM/XF86Config-4>.

UPDATE: I installed XFree86 4.0.2 from The XFree86 Project. It recognizes ChipSet "cyberbladeAi1" and works much more reliably than 4.0.1. (4.0.1 would frequently lock up the display, and would take the whole system along with it unless I rebooted it within about 20 seconds of the first sign of trouble. With the Alt-Fn keys nonfunctional, this meant I had to keep a remote login window open...)

3.2 Screen Pointers

Using a PS/2 mouse on the PS/2 port nullifies the Synaptics touchpad, though it seems hot-pluggable. So I have a Logitech Marble Mouse plugged in on the USB port, using the 4.0.1 XF86Config to allow both pointers at once. A few times before I had this worked out, the touchpad went haywire, and without any other access, I had to power-cycle the machine. I also discovered the "tpconfig -x" option, even though tpconfig timed out because my kernel didn't have the pc_keyb patch. As someone else reported, there was no obvious way to get the up/down rocker on the Synaptics to send any X events.

Note that tpconfig --reset frequently proves useful when the touchpad goes bonkers and sends all kinds of trash to X. (Remember, though, the standard 2.4.0 kernel allows this only if no one else is holding the touchpad device open. I.e., you need to do this in console mode with gpm turned off.)

For more about using the Synaptics with Linux, see <http://www.compass.com/synaptics/>.

The courageous can have a look at Synaptics APIs at <http://www.synaptics.com/supp-touchutil.cfm>.

4. ALi Chipset Support

Acer Labs Linux Support Info is available at <http://www.ali.com.tw/eng/support/faqlnx.htm>. This shows that the easiest thing to do is install kernel 2.4 (specifically rev 2.4.0 as of this writing). With the correct configuration incantations, I built a kernel with the following configuration, as shown by looking in /proc/pci:
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Acer Laboratories Inc. [ALi] M1621 (rev 1).
      Prefetchable 32 bit memory at 0xe0000000 [0xe3ffffff].
  Bus  0, device   1, function  0:
    PCI bridge: Acer Laboratories Inc. [ALi] M5247 (rev 1).
      Master Capable.  No bursts.  Min Gnt=8.
  Bus  0, device   6, function  0:
    Multimedia audio controller: PCI device 10b9:5451 (Acer Laboratories Inc. [ALi]) (rev 1).
      IRQ 10.
      Master Capable.  Latency=32.  Min Gnt=2.Max Lat=24.
      I/O at 0x9000 [0x90ff].
      Non-prefetchable 32 bit memory at 0x82200000 [0x82200fff].
  Bus  0, device   7, function  0:
    ISA bridge: Acer Laboratories Inc. [ALi] M1533 PCI to ISA Bridge [Aladdin IV] (rev 0).
  Bus  0, device  10, function  0:
    Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 8).
      IRQ 10.
      Master Capable.  Latency=32.  Min Gnt=8.Max Lat=56.
      Non-prefetchable 32 bit memory at 0x80100000 [0x80100fff].
      I/O at 0x7000 [0x703f].
      Non-prefetchable 32 bit memory at 0x80200000 [0x802fffff].
  Bus  0, device  11, function  0:
    FireWire (IEEE 1394): PCI device 104c:8021 (Texas Instruments) (rev 2).
      IRQ 10.
      Master Capable.  Latency=32.  Min Gnt=3.Max Lat=4.
      Non-prefetchable 32 bit memory at 0x82400000 [0x824007ff].
      Non-prefetchable 32 bit memory at 0x82404000 [0x82407fff].
  Bus  0, device  16, function  0:
    IDE interface: Acer Laboratories Inc. [ALi] M5229 IDE (rev 195).
      IRQ 15.
      Master Capable.  Latency=32.  Min Gnt=2.Max Lat=4.
      I/O at 0x7050 [0x705f].
  Bus  0, device  17, function  0:
    Bridge: Acer Laboratories Inc. [ALi] M7101 PMU (rev 0).
  Bus  0, device  19, function  0:
    CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (rev 2).
      IRQ 11.
      Master Capable.  Latency=168.  Min Gnt=128.Max Lat=5.
      Non-prefetchable 32 bit memory at 0x10000000 [0x10000fff].
  Bus  0, device  19, function  1:
    CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (#2) (rev 2).
      IRQ 11.
      Master Capable.  Latency=168.  Min Gnt=128.Max Lat=5.
      Non-prefetchable 32 bit memory at 0x10001000 [0x10001fff].
  Bus  0, device  20, function  0:
    USB Controller: Acer Laboratories Inc. [ALi] M5237 USB (rev 3).
      IRQ 11.
      Master Capable.  Latency=32.  Max Lat=80.
      Non-prefetchable 32 bit memory at 0x82600000 [0x82600fff].
  Bus  1, device   0, function  0:
    VGA compatible controller: PCI device 1023:8620 (Trident Microsystems) (rev 93).
      IRQ 11.
      Master Capable.  Latency=32.  
      Non-prefetchable 32 bit memory at 0x80800000 [0x80bfffff].
      Non-prefetchable 32 bit memory at 0x81000000 [0x8101ffff].
      Non-prefetchable 32 bit memory at 0x81800000 [0x81bfffff].

4.1 IDE DMA

DMA started working after making this change. In response to some feedback in /var/log/messages, I added the following line to the main stanza in /etc/lilo.conf:
append="idebus=66"
"make depend; make; make modules" now takes 11 minutes, compared with my first successful build of 2.4.0 which took 21 minutes.

4.2 Sound

Added the following to /etc/modules.conf:
alias sound-slot-0 trident
sample.au and xboing .au files played fine. No /dev/sequencer support -- looks like a job for TiMiDiTy.

4.3 USB

Using with Logitech Marble Mouse. See XFree86 for more description of X configuration.

RH7 Installer left this line in /etc/modules.conf:

alias usb-controller usb-ohci
Using with Logitech Marble Mouse. See XFree86 for more description of X configuration.

4.4 AGP

Compiled but not using it.

4.5 IRDA

Compiled but not using it.

5. Soft Modem

I've tried various kernel 2.4 wrappers for the ltmodem softmodem from Lucent, but haven't been able to get them to actually work. The closest I've gotten is with the sound and the isapnp modules loaded, I get
racso# insmod ltmodem.o
ltmodem.o: init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
ME shows that the Lucent codec is somehow wired in through the sound system, but I haven't figured it out yet.

See <http://walbran.org/sean/linux/stodolsk/> for more about the Lucent softmodem and Linux.

Update, January 31, 2001: Saw reference to the Lucent Softmodem AMR on web page for the TravelMate 524 TXV.

Update, April 3, 2001: Debian Woody Linux on an Acer TravelMate 351TEV.

6. PCMCIA/PC Card

I'm not doing anything with this yet. I note that Linux doesn't recognize the SmartCard reader, which shows up as an unknown PCMCIA device.

7. Power Management

The Acer documentation says that the system uses ACPI instead of APM.

However, "apm -S" and the lid switch key are able to put the machine into some kind of power saving mode. But I haven't found a way to make the system run again afterward. The screen shows its previous contents, but none of the interfaces respond. Also, apmd and the information in /proc/apm seems to be rational.

Go figure...