3. Linux Installation and Support

3.1. Installing Debian Linux

Installation of Linux on the Acer 361EVi is fairly straight forward, because the system includes a bootable (external) CD/DVD-ROM drive: set the drive to be bootable, put your Linux bootable CD in the drive, turn on. I installed Debian Linux 2.2r4 (Potato) from CD, as Debian Linux is the distribution I use on all my machines. Installation from CD was as with any other Debian installation, except that the built in network interface did not work during the installation.

The Intel EEPro100 ethernet interface is sufficiently new that it is not supported by older kernel versions (such as the 2.2.19 on the Debian 2.2 install CDs). I fixed this by installing a 2.4.17 Linux Kernel from a package provided by a friend, via the floppy drive (the kernel binary package will fit on two floppy disks). I am currently using a 2.4.21 kernel patched with XFS, LVM, the Low Latency patch, the ACPI patch, the UML SKAS mode patch, and the Bluetooth support patch. (Kernel Configuration)

Once the network was working I upgraded the laptop to Woody for its improved 2.4 kernel support, and more recent software support for various hardware. The upgrade was done over the network, as has all software installation since then. (Debian Linux 3.0 (Woody) was released mid-2002, after I did the initial install on the laptop).

Most other Linux distributions should work fine on the laptop, although obviously the more recent the distribution the more likely it is to support the new hardware items out of the box.

Update: Now that Debian Linux 3.0 (Woody) has been released and is generally available, it should be fine to directly install it, providing the bf2.4 boot floppies are used (ie, with a more recent 2.4.xx kernel).

3.2. Hardware Support in Linux

3.2.2. Sound

The sound controller is also the Intel 830M chipset. The controller is supported by ALSA (the Advanced Linux Sound Architecture). Getting sound working was simply a matter of installing a recent version of ALSA.

Update: In an earlier version of this document I lamented the lack of a good ALSA mixer. Since then I found "alsamixer", included with ALSA, which is quite suitable for my needs. Some graphical mixers supporting ALSA also seem to exist. I also use a small perl script as a frontend to the command line "amixer" to allow me to bind key combinations to volume up/down (since the laptop has no hardware volume control). I use Ctrl-Alt-PageUp to increase volume, and Ctrl-Alt-PageDown to decrease volume; the Function-Volume-Up and Fn-Volume-Down keys could also be used, possibly simply by assigning names to the keycodes generated, or possibly with a smart keys driver.

3.2.5. Modem

The built in modem is an AMR (Audio Modem Riser) device, and as such relies on the Windows drivers to work. There are no drivers available for Linux, as it is a Lucent/Agere SoftModem (SV92P, Scorpio). This is not the Lucent/Agere WinModem which is supported by Linux, and is not supported by Linux (earlier Acer laptops had hardware modems; later Acer laptops use a SmartLink software modem for which a Linux driver is available).

Occassionally I have found references suggesting Agere are working on Linux support for this modem, but nothing has appeared in the 18 months I've had the modem even though other Agere modems are now supported under Linux. So I doubt that a driver exists or will ever exist.

This doesn't especially bother me because I don't use a modem much (I have broadband at work and at home, and for that matter at most places I visit with any regularity), and because I already own a true hardware PCMCIA modem. So I use the PCMCIA modem on the rare occassions I need a modem.

3.2.6. PCMCIA support

The laptop has two PCI to CardBus bridges. One for for the 802.11b controller, a Texas Instruments PCI1410 CardBus controller, presumably on a daughter board with the 802.11b controller. And one for the PCMCIA slot itself, and for the SmartCard Reader. The PCMCIA card services detect the second bridge as an O2Micro OZ6933 PCI to CardBus bridge, which is also what the PCI IDS list it as. However given that the laptop has one Type II CardBus slot and one SmartCard Reader slot, I believe the laptop really has a O2Micro OZ711E1 CardBus and SmartCard Reader controller. Update:A representitive of O2Micro has confirmed that the OZ711E1 has the same PCI ID as the OZ6933, so it seems very likely that it's actually an OZ711E1.

The Type II CardBus slot does work at least with 16-bit PCMCIA cards (such as my PCMCIA modem), however I have not tested it with 32-bit CardBus cards, as I no longer own any.

Update:Note however that there is an issue with the PCI interrupts of the Cardbus bridges; they are listed on IRQ 11, but are actually connected to IRQ 10, which will lead to system lockups if the PCMCIA services are started after anything else is using IRQ 10. This can be resolved by building the PCMCIA subsystem as modules (to permit passing parameters to it), using a recent (or patched) version of the PCMCIA card services which uses the pci_irq_list values even if it can probe for them, and setting PCI_OPTS to include "pci_irq_list=10,10,10". Once this is done the PCMCIA subsystem can be started and stopped at will without adversely effecting anything else. See this bug on the pcmcia-cs.sourceforge.net project for how this fix was identified.

3.2.7. SmartCard Reader

The SmartCard Reader is on the O2Micro PCI to CardBus bridge (and in fact may be part of the bridge controller itself; see notes above in the PCMCIA support section). It is not recognised by the PCMCIA Card Services by default, but I was able to get some slightly sensible results by telling the PCMCIA Card Services that it was a memory device, with:

card "Acer SmartCard Reader"
  version "O2Micro", "SmartCardBus Reader", "V1.0"
  manfid 0xffff, 0x0001
  bind "memory_cs"

in the /etc/pcmcia/config.opts file. This gives access to a 1536 byte buffer of memory, which supposedly is read from the SmartCard. However the supposed memory contents are not terribly sensible (at least on the SmartCards supplied with the laptop), and attempts to write to the device appear to fail silently. Presumably an additional driver will be needed to make it work.

Since I have no real need for a SmartCard Reader I haven't spent much time on it. It would, however, perhaps be useful to use the SmartCard to hold GPG or SSH keys. (The intention of the SmartCard reader is that it should be used for user authentication, and apparently there is Windows software and BIOS support for initialising the cards with a user identity, and then only allowing the laptop to work if the right smart card is inserted.)

Update: The smart card reader is part of the O2Micro OZ711E1 cardbus bridge and smart card controller (as noted above in the PCMCIA section, while this bridge is recognised as an OZ6933 because it shares the same PCI ID, I believe it to be an OZ711E1). An O2Micro representitive has told me that they are working on a Linux driver for the chip, but (as of 2003/10/14) have no release date. And unfortunately they cannot release any documentation because they only licensed the technology.

Update: I purchased a small (16MB) USB flashram disk which I plan to use for these types of things (eg, GPG and SSH key storage) instead. Just as soon as I get around to setting it up.

3.2.10. IRDA

Both Slow IRDA (serial-speed InfaRed) and Fast IRDA (FIR) appear to work on the laptop. The IRDA is built into the Super-IO chip, which was identified as a SMC LPC47N267. The smc-ircc.o module identifies the IRDA in the Super IO chip, and can make use of it.

Slow IRDA (serial-speed InfraRed) appears to work fine providing IRDA is enabled in the BIOS and the irtty driver is loaded. For slow IRDA my irda.conf file contains:

#irda.conf Version: 1.0
IRDADEV=/dev/ttyS1
DONGLE=none
DISCOVERY=-s
ENABLE=yes # if you don't need to start irattach, set "no"

and this works fine with my Palm III (once the Palm III had the enhanced IR support installed). I can even do hotsyncs over the IR which is useful given that serial support on the laptop requires an external dongle or the laptop be plugged into the port replicator). I found the IR probing on the Palm III annoying (constantly popping up a window to say it'd found an IR device) so disabled that, and hence hotsync by starting hotsync on the Palm III, waiting briefly, and then starting the hotsync (with pilot-link via the IR device) on the laptop.

For Fast IRDA (FIR), IRDA must be enabled in the BIOS, and an line put into /etc/modules.conf:

alias irda0 smc-ircc

(eg by editing /etc/modutils/irda.conf, and then running update-modules (Debian specific)). Then irda.conf needs to contain:

#irda.conf Version: 1.0
IRDADEV=irda0
DISCOVERY=-s
ENABLE=yes # if you don't need to start irattach, set "no"

Fast IR does appear to work, getting throughput up to about 350Kbps (tested with irdaspray against a Toshiba laptop). However very precise alignment of the IRDA ports is required, and a fairly short distance is needed as well. Otherwise packets are lost, causing slow throughput.

Also the smc-ircc.o FIR module appears to generate a LOT of debugging log messages to the kernel, up to about 2 per second (eg, saying that is transmitting packets). This is one of the things you get with Experimental drivers...

Because I need only SIR (slow IRDA) for access to my Palm III, I'm currently using only the serial IRDA by default, and only enabling FIR when I want to test something. The IRDA port is also rather poorly positioned for using with other devices; eg it is neearly impossible to line it up correctly with my Ericsson T39 phone.

3.2.11. Floppy and DVD-ROM drive

The external Floppy and DVD-ROM drive work fine for basic reading, at least when they are connected as the laptop boots. In theory the external unit is hot pluggable, but I haven't tried this. Linux may need some persuasion to recognise the DVD-ROM drive if it is not plugged in during booting, and if it is unplugged during operation. An Acer 340 laptop user has found that simply rescanning the IDE bus is sufficient, with this script. It doesn't look particularly specific to that model so should work with the 361EVi; I haven't tried it yet.

Playing DVDs does work fine with the appropriate player software. (Without fully accelerated video drivers -- see above -- some care is required to get full speed video playback working. Using DGA video output appears to work best, although with software zooming to full screen.)

Updated: I have now tried hotplugging the external floppy/DVD-ROM drive, and it works fine providing the IDE bus is told to look for the device after it is plugged in. This script (which I found on the Internet), can be used to rescan the IDE bus. There appears to be an ACPI event generated on plug-in, which could possibly be used to trigger this behaviour automatically; I haven't tried to do this though, as I only rarely use the floppy/DVD drive unit.

3.2.12. Keyboard

The keyboard is reasonable, but not really good (not that I really like laptop keyboards much, or indeed most modern keyboard -- I'm still mainly using two carefully preserved AT 101-key extended keyboards with real keyswitches). The slight curve of the keyboard (claimed 5 degrees) makes it a little like a split keyboard, but not quite as dramatic. Acer believe that it makes typing more natural; I'm dubious. Mostly the keys end up in usable positions, although the Esc key (very important -- can you tell I use vi?) is a little too far away, and a little crowded in by TAB/F1.

Normally I use an external keyboard with the laptop, plugged into the port replicator. (I have two port replicators, one at home and one at work. It's very convenient just to unplug a single cable and take the laptop away.)

A number of users have noted that ctrl-alt-F1, etc doesn't seem to work properly. In fact what appears to be going on is that like a number of laptops the ctrl-alt combination is mapped to Fn (function), so that ctrl-alt-F1 is the same as Fn-F1 and so on, performing various built in functions. Fortunately there is an easy solution -- simply tap the relevant function key twice quickly, and the function key code will get sent instead of the special action happening. Eg, hold down ctrl and alt, and tap F1 twice and you'll change to the first virtual terminal. Providing ctrl and alt remain down, it appear you can use other function keys without the double tapping being required. Slightly annoying, but not really a major problem.

There are also 6 quick-launch buttons on the laptop. These are not normal keys (eg, they don't generate scancodes) but instead are handled separately by the hardware itself. There is an experimental driver for the Acer Travelmate Launch keys, which appears to detect the key presses, and also allows toggling the "have mail" flashing LED. Since I'm typically using an external keyboard/mouse/screen and have the laptop lid closed these keys aren't terribly useful at present.

Update: There is also another driver which seems to have more configurable support for the hotkeys. I also managed to light/unlight the "wireless" LED, with one of the extra functions they uncovered, but haven't been able to detect any associated hardware changes. At one point I started digging into the Acer BIOS following instructions in the README file with these files, but didn't get much further than identifying the function call tables (and hence which functions were available, but not what they did). Further investigation may be rewarding, and may also shed more light on the Bluetooh support (or lack thereof).

3.2.13. Mouse

The laptop comes with a touch pad, with two normal mouse buttons and two additional buttons arranged a little like a scroll wheel. (I have difficulty seeing the point of a scroll wheel myself, let alone buttons arranged to be a scroll wheel! Why not just use page up/page down? :-) ) Anyway the two button mouse does work fine, with chording for the third button. Other reports on Acer laptops with Linux on Linux-Laptops.Net suggest that a more advanced driver can be used to enable the scroll buttons, or using one of them as a middle mouse button, and so on. I haven't tried this because I typically use an external three button PS/2 mouse. On the occassions when I'm not, I mostly just use the mouse for changing focus, and clicking on links, and try to avoid cutting and pasting.

3.2.14. Power Management

The Acer 361EVi supposedly comes with both APM 1.2 and ACPI. Having seen the very limited success reported with the Acer 35x range and APM under Linux (see Acer laptops with Linux for details) I opted to simply avoid APM. Hence I'm using the ACPI support in the Linux 2.4.18 kernel. This provides good monitoring of battery status (charging, discharging, time left), and thermal conditions (CPU and case temperature). The time left reports seem to be fairly accurate, particularly on discharge, unlike my previous laptop (a KTX1000).

Suspend with ACPI is pretty much a non-event. It isn't really supported yet, and the developers are largely tied up with building a notification system to tell all the drivers about the suspend/resume (which if it gets done should be better than the adhoc system used by APM). So I don't suspend my laptop.

However ACPI does work quite well for power off, both with shutdown -h powering off the laptop, and also initiating a shutdown and power off through the power button. I'm using acpid version 1.0.1 to monitor the power button, and have configured it to launch "shutdown -h" when it is pressed. So I can turn the laptop on and off with the power button, and everything works properly. Startup takes about 40-50 seconds, and shutdown about 20-30 seconds. Unsuspending used to take a good chunk of that time on my previous laptop, so I'm not much worse off. And most of my "where am I today" scripts work best if the programs are started afresh in the new location anyway.

The internal fans appear to be managed by the hardware. I configured the laptop to run in "battery optimising" mode, even though I normally run it on the mains. One side effect of this is that it normally steps down to 700MHz (from the full 1GHz) because very little I do requires even that much CPU power. This has the nice effect of keeping the CPU cooler, which means that the CPU fan doesn't run much at all, and hence the laptop is nearly silent in normal operation. I can hear the CPU/system fans come on occassionally when the laptop gets warmer, and while it's audible, fortunately it is relatively low frequency (rather than the high pitched whine of some small fans).

Update: I've now tried APM, and about the only thing which works with APM is reporting battery status. Since ACPI does that better, plus allows power-button-to-shut-down I quickly went back to ACPI. In theory Linux 2.5 should support ACPI much better, and I've seen reports on the Linux Kernel mailing list that with recent 2.5 kernels it should even be possible to suspending using ACPI with Acer laptops. I haven't verified this myself (still using 2.4.19 myself; and waiting for 2.4.21 to come out). Using a recent ACPI patch for 2.4, or a recent 2.4 kernel including updated ACPI support is highly recommended.

To work around the lack of battery low notifications I wrote a small script which uses the ACPI output to monitor the battery status, and informs init that the power is failing (triggering a shutdown). In practice this works quite well, and gives me adequate warning to find a power point. If I get time I may also get it to blink the "Mail" LED somewhat earlier as an additional warning.