Linux on Acer Extensa 503 T


3 Sep 99: Second part completely rewritten to merge previous updates (and fix many typos)

20 Sep 99: Note on APM and kernel 2.2.x from RedHat 6.0

23 Sep 99: Added a paragraph on modem

6 Oct 99: News on WinModem: something is coming out

7 Jan 00: It seems someone made a WinModem to work

10 Jan 00: At last, I upgraded to RH 6.1 !

18 Jan 00: Instructions on PCMCIA with DLink 660 card

31 Jan 00: Another user made the modem to work

23 Feb 00: News on sound with kernel 2.3

6 Mar 00: wlinmodem works!

24 May 00: More info on SuSE 6.3


I briefly report here how I installed Linux on a laptop Acer Extensa 503T. I do not claim this is THE way to install it, it is simply how I did ! Usual disclaimers apply (i.e.: if You follow these instructions, You do at Your own risk, and I will be not liable of any damage, hardware or software, You could end up with; no warranty is implied; etc.).

All commercial names cited in this note are TradeMarks of their Owners.

I apologize for my not-so-good English writing. If something is not clear, You can contact me at the address reported at the end of this note: I will be happy to hear from You.

Laptop Acer Extensa 503 T (All-in-one)

Except for the net card, everything else was already installed on the laptop when I bought it.

I had no particular problem in installing Linux. I chose the RedHat, although it is not my preferred distribution, because I could borrow more easily the installation CD.

The only problem was during the preliminary phase when shrinking the only existing partition, with the Sleep Manager. As the laptop was a brand new one, I could safely play with it and reinstall Windows a couple of times.

The Sleep Manager is a Windows program used to hibernate the laptop when the batteries are getting low; it saves the state of the computer (mainly the memory content) in a disk file. The first time I did the partition shrinking (I'll describe in point 3), after rebooting the program crashed immediately with the message [I translate from Italian, the actual message may vary] "The program executed an invalid instruction and will be terminated", followed by a program stack. Starting it from the Program Menu made no change. I reinstalled the system with the recovery CD, then before the shrinking I stopped the Sleep Manager and uninstalled it. After the shrinking I reinstalled it, but it still gave me the same errors. The third time (after a second recovery...) I removed the backup file using its Remove button, I stopped it, I uninstalled it, I manually removed all other files which may be related to it (SLEEPMGR.FTS and the hidden file SLEEPMGR.GID, both located in C:\WINDOWS). After the shrinking I reinstalled it in the same place; now the error changed: it said it could not read a physical block and so it deduced there was no hard disk (!). After having said a certain number of 4-letters words I will not report here, I decided to go on with Linux installation. And - miracle! - after rebooting the Sleep Manager worked perfectly ! I suspect it was not able to read the disk partition table, but this is a personal feeling. And I'm not an expert! In any case I suggest to remove it before the partition shrinking and reinstall it after (although some users reported it is not necessary).

If You have sufficient money, You can buy a second disk to put Linux on (I usually do so with my Department's PCs); or You can cast away Windows. I have no money for the first option, and as I already paid for it, I didn't want to follow the second. So I decided to do what most of PC users do: to shrink the only existing partition on the C disk to make room for Linux. To do so, I took FIPS from a Web site in which there was the Linux stuff (but You can find it also on the Linux CD if You have one), I read CAREFULLY the instructions, then I i) uninstalled Sleep Manager (see above why), ii) checked the hard disk with Scandisk, iii) ran the defragmentation program, iv) immediately shut down and rebooted with a floppy diskette with FIPS, v) ran FIPS to create a new partition, vi) rebooted Windows, checked again the disk with Scandisk, and reinstalled the Sleep Manager.

I chose to left about 1100 MB in the first partition for Windows (I'm not going to use it very much), the rest went in the second one.

Matthias Beil made me know that in case You reinstall Windows 98 with the recovery CD, it will made all Linux code unavailable: the partition table will be rewritten, so after the reinstallation You will have only one big partition with only Win on it - just a coincidence ? ;-) Anyway You have been warned: You cannot install Win after Linux.

I made my boot and supplementary diskettes from a mirror site of the Red Hat one, then I booted with no problem. But with my great surprise, it did not recognized my PCMCIA hardware, so I was not able to install Linux from the network as I planned (opening a shell and checking the files, it seemed to me that the PCMCIA drivers were symbolic links pointing nowhere). I was compelled to borrow a Red Hat 5.2 CD-ROM from the Computing Centre of my Department and perform a Local CD installation.

I used fdisk to repartition the hard disk. I deleted the partition created by FIPS and I created 3 primary partitions, 1000 MB for / (root) (because it will hold also the /home area), 96 MB for swap and the rest (about 1900 MB) for /usr (after some months of experience, and as I didn't buy more memory as planned, I admit the swap area is overestimated: maybe I wasted some MB...).

The installation process recognized the PS/2 touchpad mouse. I chose the default (Generic PS/2) with the 3-button emulation. It then found the NeoMagic chip and loaded the SVGA server (but see later). Instead of a custom screen, I selected "LCD Panel 800x600". Then the default "640x480 8 bit/pixel".

For the time being I skipped network and printer configuration. I chose my timezone and I did not select "Hard clock on GMT" (not suggested if there are more OS running on the same machine).

Finally for the first kick-off I made only a boot floppy and skipped the lilo installation (I was afraid to mess up the MBR).

I rebooted and... WOW! Now my laptop was a "real" computer !

I took a lot of time before buying my laptop, because a friend of mine told me NeoMagic was not supported by Linux. Then I found that at last a server was created also for this chip, and I ran the risk of buying it. I was lucky.

Actually, the SVGA server put in by the installation procedure (from XFree86 3.3.2) works also with NeoMagic, but - at least for me - only with a resolution of 640x480 (if I heard correctly, 3.3.3 should work fine; check at http://www.xfree86.org ). I tried to change some parameters inside XF86Config, with no success. (Note 1: José Luis Gordo Rivera told me that "if you select an acerview screen you will be able to reach 800x600 and 64 k colors!" - Note 2:Matthias Beil said that SuSE 6.0 comes with XFree 3.3.3 and he also had no problem in configuring the screen with a 800x600 resolution). RedHat and PrecisionInsight created a working server for NeoMagic. So I downloaded their RPM file (which You can find in any RedHat mirror, such as ftp://ftp.mpi-sb.mpg.de/pub/linux/mirror/ftp.redhat.com/ under the XFCom/ directory), I read the instructions and I installed it. The only point I did different from what they said was that instead of using their XF86Config , I merged it with mine, in order not to loose the mouse and keyboard definitions. This is my /etc/X11/XF86Config file I'm using now.

startx was very satisfactory: now I have a beautiful 800x600 screen with fvwm2.

One point: when in X windows I cannot switch to a virtual console using CTRL+ALT+Fn , except with console 6. So I have to switch to it with CTRL+ALT+F6, and then switch to the others with ALT+Fn . I think this is due to the fact that the system interprets these keystrokes as commands to control audio, sleep, hibernation, CRT switch, etc.

Please note that what follows refers to RedHat Linux; if You have a different installation the relevant files may be in different locations and/or have different names. Read carefully the PCMCIA-HOWTO: it contains a lot of information on how to bring up the whole thing.

Personally I edited /etc/sysconfig/pcmcia and added the following lines

(the number follows the fact I have a O2Micro Cardbus; check the HOWTO for your model). Then I tried by hand to start it with and in /var/log/messages appeared the correct message (your figures may vary of course).

When I pushed in the net card, it was properly recognized: /var/log/messages showed

and its HW address. But the set up was not completed (one high beep followed by a low beep).

According to the HOWTO instructions I created the file /etc/pcmcia/network.opts ; but it still didn't work: it said eth0 does not exist. So I went in /etc/sysconfig/network-scripts and created ifcfg-eth0 with the same data: and now it worked. Thus I was able to connect my laptop to my office's BNC Ethernet. Obviously I then tried to reboot to see if it worked also at boot time, and it went ok: actually You don't need to do anything else, since the boot procedure checks the pcmcia file and loads the drivers if needed.

A user reported to me that his net card, a DLink660, sometimes was not properly recognized or configured, or was mismatched as a memory card. I have a different net card, so I didn't know how to fix it. Now another user, Agri Ferrer, kindly provided instructions by D-Link Corporation on how to install this card on Linux; you can find here his text (I simply put it in HTML format).

As we have a laptop, it is supposed we usually power it with batteries. So it is useful to know how to reduce energy consumption and increase charge duration. I suggest You to read the Battery-Powered Mini-HOWTO: it contains a lot of tips to reach this goal. I applied a couple of them to my laptop (but there are many more):

- at the end of the rc.local file I added

in such a way the disk spins down if there are no accesses for at least 5 min (the figure is in 5-sec units, so 60x5 = 300 sec = 5 min) You can tune this number as You want, check the hdparm man page;

- in my .emacs I added

(actually the Mini-HOWTO suggests to put them in /usr/share/emacs/site-lisp/site-start.el) in such a way the autosave is not based on time but on the number of keystrokes (in this case buffers are auto-saved every 1000 keyboard actions).

But the best way is to activate the APM feature. See Kernel Recompiling.

The RedHat Linux 5.2 manual says "unless you know why you need to build your own kernel, you probably don't". I personally had at least three good reasons Among them, for me the first one was the most important, and the third one the less (with a P300 and 32 or maybe 64 MB, kernel slimness is not fundamental). Standard kernels usually have many features You don't need: mine for instance has support for SCSI, Appletalk, IPX, etc. physically compiled in it; as I will very rarely (or maybe never) use them, I prefer to have them supported as modules instead. In any case kernel compilation is one of the things a Linux user must do once in his/her life !

With the bare source code distribution I was able to make the sound card work partly (believe it or not, I was listening Beethoven's Seventh Symphony on CD while writing these notes !), and not APM at all. Two patches are needed here. Although both of them must be applied before compiling, I prefer to defer them later: here I report the overall compilation process (well, the final successful attempt, I will omit the ten or so try-and-fail cycles...), and I'll describe sound and APM patches separately.

So first of all I read the Kernel-HOWTO. Then I downloaded the source from a Linux mirror corresponding to the kernel version I was using (it was 2.0.36). I tried the RPM package kernel-2.0.36-0.7.src.rpm, but I didn't understand what it contained, and I preferred to get the original file linux-2.0.36.tar.gz . I unlinked /usr/src/linux (which was a symlink to linux-2.0.36) and unpacked there the tar file. Then I made

To the configuration questions I answered the default response except for the following ones




























(*) At first attempt I did not set this, but when mounting DOS filesystems it complained, although seeming to work; check if Your system needs other Codepages.

Kernel compilation took approx. 4 min (if You're curious, I have 598.02 BogoMips). Then I copied the new kernel image /usr/src/linux/arch/i386/boot/zImage on my boot floppy with a different name, I updated lilo.conf and ran lilo. I shut down and rebooted with the new kernel (the first time it complained for not founding /lib/modules/2.0.36/modules.dep : it's right, RedHat puts it in /lib/modules/2.0.36-0.7 ; for the same reason it couldn't mount my DOS partition). Then I went again in /usr/src/linux and made

to create and install the modules in /lib/modules/2.0.36 (it took approx. 1.5 min). Finally created the module dependencies file modules.dep . I rebooted again and now everything went fine: it found the module dependency file, it mounted my DOS partition, and I was able to mount floppy disks (both DOS and EXT2) and to run X windows. It still complained on PCMCIA: see later on.

With the default kernel I was able to hear only the CD: there was no way to play any sound file (note that the command cat /dev/sndstat gave me as first statement the line Sound Driver: 3.5.4-960630, while with the original Red Hat kernel I had OSS/Free 3.8.52-971130, which is newer).

After a couple of weeks I solved this problem too. First of all, I downloaded from ftp://ftp.linux.org.uk/pub/linux/alan/Sound the file 2.0.36-modular-1.test.patch (which I found searching for OSS/Free on AltaVista search engine), and followed the instructions (see README.Sound in the same directory):

To the configuration questions I answered the default response except for the following ones











After I rebooted with the new kernel.

But before activating the card I needed also to configure it using isapnp: so I grabbed in Windows the correct parameters for the sound card

        Windows Sound System (WSS) at addr. 530h IRQ 5 DMA 7 Reg 0
        Sound Blaster              at addr. 220h IRQ 5 DMA 0
        Synth. FM                  at addr. 388h
        MPU401                     at addr. 330h IRQ 5
(You can crosscheck Your card also using pnpdump), and I created the file /etc/isapnp.conf with the correct information (I put a copy here). (BTW, the template of this file is not mine: I modified the one I found in Christian Czezatke's instructions to install Linux on Asus Notebook.) Then I created a proper /etc/conf.modules, and I shut down again to see if it worked automatically: in facts in /etc/rc.d/rc.sysinit there is a command to configure IsaPnP cards - but You can also load it manually with Everything went Ok. Now not only the CD, but I can hear .au files (simply using cat on /dev/sound) and .wav files (using play); I can also use aumixer and xmixer to tune it. Only playmidi still doesn't work for me, so I still cannot hear MIDI files. Besides the volume seems to me still quite low, even if a bit better than with the default kernel. If You find that my isapnp.conf prints out too many info, comment out the (DEBUG) keyword. Finally shows the same version message as the original Red Hat kernel.

(Please note: I deleted the old instructions on sound with the default kernel; if You think You need them, mail me and I'll send You.)

Juergen Scheiderer had problems with sound when updating his 2.2.x kernel, which he then solved. He sent me what he did, and You can read here his instructions.

Stefano Ciccarelli owns an Acer Extensa 501DX, on which he installed the Red Hat 6.0 with kernel version 2.2.x . He noticed that both opl3sax and wss/mss drivers were not working properly. He says this is due to the new sound code (updated to make some DMA operations faster) giving problems to his laptop's chipset. He sent me his patch, after which the kernel must be compiled with the PCI_QUIRKS option enabled, that starts a workaround.

With the default 2.0.36 kernel source I didn't succeed in activating the APM: if compiled with this option the kernel crashes during the boot phase just after APM initialization (an Oops message from kswapd, and then the system freezes). The LinuxMama site has a patch for kernel 2.0.36 to fix another bug on some laptops (the so-called 0x40 bug), but it is not enough by itself. I think this patch is no more needed with 2.2.x, but I am not sure.

Finally Angelo Di Filippo sent me a really simple patch to be applied to APM code to make it work on Acer Extensa laptops. This patch was developed by Marek Wójtowicz and simply corrects a wrong offset value. Here You can find the original mail and the patch to be applied to kernel 2.2.x.

I still have kernel 2.0.36 , but I was able to use it too in combination with the LinuxMama patch. I downloaded their file apm-0x40-fix.bz2, I applied it to the original source

(You need bzip2 to unpack it); then I edited by hand the file drivers/char/apm_bios.c and changed two lines similarly to the given patch: here the differences are
   # diff apm_bios.c.orig apm_bios.c
   1177c1177
   <       set_limit(gdt[APM_40 >> 3], 4096 - (0x40 << 4));
   ---
   >       set_limit(gdt[APM_40 >> 3], 4095 - (0x40 << 4));
   1179c1179
   <       apm_bios_entry.offset = apm_bios_info.offset;
   ---
   >       apm_bios_entry.offset = apm_bios_info.offset & 0xffff;
Finally I recompiled the kernel (as usual, but asking for the APM of course) and it worked wonderfully !

To the configuration questions I answered the default response except for the following ones





Enabling other APM options gave me problems (in particular with ``CPU idle calls'' the computer never suspended or blanked the screen).

To say the truth I am not able to use all APM features which work under Windows. If I hit the Fn key for the Suspend on memory (i.e. Sleep) the screen blanks, the disk goes down and the cpu stops for a couple of seconds. Then everything comes back: the screen lights, the disk spins up again, etc. In two words: doesn't work. Instead I succeeded in Sleep-ing if I close the cover: in this case the screen remains off (I can see it just a moment before the complete closure), the disk stays off, etc, and the Sleep green led goes on. I verified that the computer is effectively suspended, because the battery has a longer life (quite equal to the time it remained off). On the contrary I cannot Suspend on disk (ie. Hibernate): the corresponding key simply beeps and does nothing else. I tried different combinations of APM options (not all possible of course) with no success.

I also installed two programs found on the net: apmd (v. 2.4) and xbatstat (v. 0.5.2). The first one is a daemon plus a couple of user programs to know some information about the battery status (like percentage of charge, estimated time of complete discharge, or of complete charge if connected to AC, etc.); the daemon can also take care of useful duties, such as sync-ing the disks, when the battery is going to die. The second one is a graphical program which creates a small window showing the charge percentage with both numbers and a coloured bar.

Note on kernel 2.2.x shipped with RedHat 6.0

Some users let me know that the kernel installed with the RedHat 6.0 distribution has by default the APM activated, but not the aformentioned fix. The consequence is a kernel panic showed by an Oops message, and then the system locks. Hans-Peter Nilsson suggested a good solution, using the "apm=off" boot option: so just after the installation, at the LILO prompt enter linux apm=off ; then patch the kernel, recompile it and install it as the default kernel.

After recompiling the kernel, it is suggested to recompile the PCMCIA package too (especially if APM has been activated: in facts in this case power saving instructions are added to the PCMCIA code). I first read carefully the PCMCIA-HOWTO; then I unpacked pcmcia-3.0.8.tar.gz in /usr/src and

(cardinfo, a graphical program to manage the PCMCIA cards, is created only if the XForms library is available on the system.) Ok, also this one works: my Ethernet card is correctly recognized. (In case You want to recompile too, read the HOWTO notes on different distributions; in particular RedHat changes a bit the default pcmcia behaviour to match its control-panel style; if You use the standard installation, as I did, You loose the possibility of using the control panel, but You gain the full flexibility; for a workaround read par. 2.5 of the HOWTO).

At last, during Christmas holydays I found some time to upgrade the system to Red Hat 6.1 . I downloaded the pcmcia.img from ftp://sunsite.cnlab-switch.ch/mirror/redhat/current/i386/images. Then I booted with it: it recognized by itself the net card, I chose FTP as installation source, and entered the IP address, the gateway, and the other network information needed. I used the same sunsite.cnlab-switch.ch as FTP site, and /mirror/redhat/current/i386 as RPM directory. Finally I chose Upgrade existing installation, and it went on more or less without any intervention. Everything went fine, except that it installed LILO without telling me (yes, ok, I've already planned to do it manually, but I would have preferred to be warned...). Now it perfectly booted both Windows and Linux from the hard disk, obviously entering apm=off at the LILO boot prompt, as all of you already know.

The XFree driver worked immediately with my NeoMagic card, using the old configuration file. Also the sound is good, and now I can play even the MIDI files using playmidi. The only unpleasant program is xmms which should play MP3 files, but freezes my box after a couple of notes, and I cannot recover it but turning it off :-((

Then I downloaded the kernel source from the same mirror site, under /mirror/linux/kernel/linux/kernel/v2.2; I got version 2.2.12 . I took also the pcmcia package from ftp://sourceforge.org/pcmcia. After some cleaning up of the old stuff, I untarred the file in /usr/src, I patched arch/i386/kernel/apm.c, and I compiled as previously. In the first attempts I still used a floppy to boot. When I felt confident, I put the kernel on the hard disk as the default one. It took 7'48" to compile the kernel, and 3'12" to compile the modules.

To the configuration questions I answered the default response except for the following ones











































Note on sound with kernel 2.3.x

Angelo Di Filippo (thanks again!) let me know of a DMA bug in the PCI-ISA host bridge; as a consequence the new ALSA sound drivers (0.5.x) do not work, making the laptop to freeze. He patched the file quirks.c in /usr/src/linux/drivers/pci for kernel version 2.3.45 and higher, and the drivers work again.

My laptop has a Winmodem. And as far as I know these models are not currently supported by Linux. But maybe they will be in the future.

Till now no kernel driver is available, there is only an experimental program running in user space, which you can find at http://www.suse.cz/development/ltmodem/. Anyway I'll try to stay tuned, and we all can check its progress at http://www.linmodems.org .

A user let me know a new address, whose owner seems to have succeeded in using a WinModem under Linux, although on a different laptop. I didn't try yet, but you can check at http://www.tony-curtis.cwc.net/toshiba/news.html.

Angelo Di Filippo was able to use the ISA modem under kernel 2.2.12, but it has to be configured with /etc/isapnp.conf; the Lucent driver works under 2.3.3x but not with kernel 2.3.4x .

Martin Schneebacher (thanks again!) got the linmodem running with ppp-connection. He got the modules from http://www.linmodems.org; then he put the following lines (actually taken from http://sow194.sow.Fh-Osnabrueck.DE/~97et0126/acer/index.php3) in /etc/modules.conf



for the module autoloading. Then he installed ppp as described in the HOWTO, got the autodial-scripts from http://www.zid.tu-graz.ac.at/zid/ki/netz/extern/erfahrung/linux.html, modified /etc/ppp/options with "noauth", and started it with /etc/ppp/scripts/ppp-on: so he got ppp-connection (about 4,5 - 5 kbyte). He tested it with both wmppp and netscape. The card needs to be configured with isapnp: the part of configuration concerning the modem can be found here.

I chose the RedHat distribution because it was easier for me to have the installation CD. Tim Mueller-Seydlitz sent me some tips (along with other infos) concerning SuSE distribution, which You can find here .

Marcel Sandow kindly sent me a message with more instruction on installing SuSE 6.3 on Acer Extensa.

Martin Schneebacher let me know he succeeded in installing the Debian distribution on his Extensa 501T.

If You are using other distributions, You can send me Your comments or instructions and I shall be glad to add them in this page.

I was able to install and use the following software, downloaded from various sites and put in /usr/local

bzip2 0.9.0c

compress/decompress utility

XEmacs 20.4 (precompiled)

enhanced X Emacs

g77 (egcs) 1.0.3a-14

Fortran compiler

xfig 3.2.2

figure drawing program

transfig 3.2.1

used by xfig to translate various formats

pstoedit 2.60

PostScript converter

psutils

manipulating PostScript files

AcrobatReader 4.0 (precompiled)

official PDF reader

xpdf 0.7a

free PDF reader

xforms 0.81

XForms library

apmd 2.4

APM daemon

xbatstat 0.5.2

X program to know the battery status

xlockmore 4.13.1

lock screen utility

xmahjongg 3.0b10

X game

xtetris 2.6

X game

I really have to thank a lot all people which sent me comments, suggestions and material, in particular

They all helped me in making this page more useful.


If You have comments or suggestions, feel free to mail me at sitta@mfn.unipmn.it or sitta@to.infn.it.

Last updated: 24 May 2000 - (C) Mario Sitta, Alessandria, Italy