In trasferimento da http://www.rigacci.org/comp/312T/
20 Sep 2000 - 25 Feb 2005
Niccolo Rigacci (niccolo@rigacci.org)
Absolutely NO WARRANTY, use this document at your own risk!
Any comment, correction, spelling or suggestion is welcome.
Some generic consideration about the notebook. It is a lilliput notebook: 23.5 x 18.5 x 4 cm, but the display (17 x 13 cm) is very good. The keyboard is not the better you can hope, the keys are 15.5 mm wide and the excursion is very little. It is more a keyboard for an hand-held than for a notebook. My previous portable was a Compaq Aero, it was a bit bigger (26 x 19 x 4 cm), but its keyboard was really better, with true 17.5 mm keys.
If you want Windows 98 and Linux together on the notebook, I think the best way is using Fips to reduce the Windows partition and make room for the Linux ones. I used Fips version 1.5 with FAT32 support.
It is also feasible to destructively repartition the disk, but reinstalling Windows is a little tricky. In fact you CAN'T use the Recovery CD coming with the notebook for installing Windows on a partitioned disk: the utility blindly and dumbly restore the disk in one large Windows partition, destroying any scheme you created.
On the Recovery CD there are also the plain Windows 98 installation files, so you can go through the standard Windows setup process, but finding and installing drivers for all the integrated peripherials require several efforts.
If you want the hibernation function to work, you have to know that it doesn't work in the default “hibernate to file” manner if the disk is splitted in several partitions. You must to use the “hibernate to partition” option. In brief:
See the Advanced Power Management section of this document for more details and read carefully Fips documentation.
For Linux installation, follow your distribution's guidelines. For Debian GNU/Linux 2.1 I think the best way is to copy files from debian/dists/slink/main/disks-i386/current/ directory into an Windows directory, restart in MS-DOS mode and launch INSTALL.BAT.
I used kernel 2.0.34 at the first, but there are some drawaback whit this version. External CD-ROM is supported only after patching the kernel (see below). Sound is not supported. PCMCIA does not work after a warm reboot from Windows 98 because it is “unable to map card memory!”. This was my /usr/src/linux/.config
file. Only a note: when I enabled the CONFIG_APM_CPU_IDLE=y
I got some keyboard hang running X-Window, so I disabled it.
I strongly suggest you to upgrade to kernel 2.2.12 or newer. I think it's a very good kernel: sound is supported for the Yamaha chip, PCMCIA package 3.1.3 works well on it, no patch is required to use the external CD-ROM, no problem initializing PCMCIA after a warm reboot from Windows. Here it is my /usr/src/linux/.config file for kernel 2.2.13. With Debian GNU/Linux 2.1 some additional steps are required when upgrading to kernel 2.2.x, see your distribution notes on using this branch of kernels.
Only a problem is unsolved: Linux is unable to initialize the sound card after a warm reboot from Windows 98. Isapnp seems to configure it well, sound modules load fine, but no audio is played and I get the message “IRQ/DRQ config error”. There is no IRQ/DRQ problem, simply Windows 98 disable the sound card at shutdown in a manner that Linux is unable to reinitialize it.
I use isapnptool 1.16 to configure the resources used by the sound card and the internal modem. Isapnp is needed to initialize the hardware, otherwise it does not work. I just run “isapnp /etc/isapnp.conf” at boot time. Here it is my /etc/isapnp.conf. Note that I don't initialize the internal Win Modem, so some resources remains free for other peripherials.
I downloaded and installed the pcmcia-cs-3.1.3.tar.gz package, this new version provides better support for 02Micro PCMCIA controller and support for kernels 2.2.x. The included PCMCIA-HOWTO is a very comprehensive reading.
Follow the instructions in the howto: you have to “make config”, “make all” and “make install”. If you change your kernel, redo the procedure. After that, all worked for me, but I still made some changes in /etc/init.d/pcmcia script and in /etc/pcmcia/config.opts, just to avoid potential resources conflicts. In the first I specified
PCIC_OPTS="irq_list=10,11,15 poll_interval=150"
This tells to card service what interrupts to use and that it have to run in poll mode, instead of using an IRQ for status change monitoring. In the other file I specified what I/O ports and memory resources to use and what interrupts don't use (the last is redundant, I know!) for allocating to PCMCIA cards. Have a look at the files for comments.
To configure some PCMCIA cards, editing /etc/pcmcia/ scripts is needed, but this is not specific to Acter TravelMate. For the PCMCIA CD-ROM boundled with the notebook, a little tricky solution is needed if you use kernel prior to 2.2.12 instead. See the specific chapter in this review.
The external floppy drive works under Linux, you can use mtools or mount it. I think the better procedure is:
With kernel 2.2.12 or newer, external CD-ROM is supported without problem. Simply compile the kernel with CONFIG_BLK_DEV_IDECD=y
and install the pcmcia-cs package
. If you use an older kernel you can fix it with the patch discussed below. This patch is now included in the official kernel.
What I'm writing below is applicable to kernel 2.0.34. In oreder to make the CD working under Linux, a little kernel hacking is needed. It seems that there is a problem caused by the drive which take too much time to respond, so with the standard kernel you get several errors when you try to mount the drive, like those:
Feb 22 10:36:43 chios kernel: hdc: status error: status=0x08 Feb 22 10:36:43 chios kernel: hdc: drive not ready for command Feb 22 10:36:43 chios kernel: hdc: ATAPI reset complete Feb 22 10:36:43 chios kernel: hdc: status error: status=0x00 Feb 22 10:36:43 chios kernel: hdc: ATAPI reset complete Feb 22 10:36:43 chios kernel: hdc: status error: status=0x00 Feb 22 10:36:43 chios kernel: end_request: I/O error, dev 16:00, sector 0
A workaround was proposed (31 Dec 1998) by Matthew Faupel (Matthew.Faupel@citrix.com) and it is posted at the Linux PCMCIA driver Hyper News system. I propose a little revised one:
1413,1415c1413,1418 < udelay(1); /* allow status to settle, then read it again */ < if (OK_STAT((stat = GET_STAT()), good, bad)) < return 0; --- > /* allow status to settle, then read it again */ > { int i; > for (i = 0; i < 10; i++) { > udelay(1); > if (OK_STAT((stat = GET_STAT()), good, bad)) return 0; > }}
hdc: CD-ROM CDR_U240, ATAPI CDROM drive ide1 at 0x300-0x307,0x30e on irq 10 hdc: media changed hdc : tray open or drive not ready hdc : tray open or drive not ready hdc : tray open or drive not ready ...
Ignore the error messages: we should increase some other timeout somewhere in the kernel source. The good thing is that now the device /dev/hdc
is ready to mount -t iso9660 /dev/hdc /cdrom
Remember to cardctl eject
the PCMCIA card before actually removing it, as the PCMCIA-HOWTO says.
This is a brief explanation of PCMCIA CD-ROM on the Acer TravelMate, refer to the PCMCIA-HOWTO and to your Linux distribution for any other detail. Note also that Debian 2.0 has a little bug in the pcmcia-cs package: the /sbin/ide_info binary is not installed with the package, but the /etc/pcmcia/fixed script refers to it. So auto mounting of PCMCIA IDE device fails.
I have two NE2000 compatible PCMCIA Ethernet adapter, the standard installation of Debian GNU/Linux properly recognize the cards as soon as I inserted it. Auto-configuring the inserted card require editing /etc/pcmcia/network.opts script. For any help read the PCMCIA-HOWTO.
The video card integrated in the TravelMate 312T is a NeoMagic MagicGraph 128ZV+, with 1.1 Mb of RAM capable of 65k colors at 800×600. Fortunately XFree86 supports this card, beginning from version 3.3.3.1.
Unfortunately my Linux distribution (Debian 2.1) installs XFree 3.3.2.3.
I'm too lazy to get the xfree sources and recompile them. I'm also so paranoid that I don't want to install xfree binaries which are not packaged in a .deb file. I adopted the following quick and dirty solution.
I had to use intern_disp and extern_disp options in XF86Config to select the output device. When only external monitor is selected, the graphic chip selects an higher refresh rate, like in Windows. Those are the values reported by my Sony Multiscan 200sx:
Frequencies | Output | Resolution |
---|---|---|
37.9 kHz/60 Hz | both | 800×600 and 640×480 |
53.4 kHz/84 Hz | external | 800×600 |
43.3 kHz/85 Hz | external | 640×480 |
See the hotkeys section about Fn+F5.
To switch virtual console when in X, use Ctrl+Alt+F2 or Ctrl+Alt+F3 only (once in character mode, you can use Alt+Fx). Other Ctrl+Alt+Fx combinations are interpreted by the BIOS as Fn+Fx. So Ctrl+Alt+F4 does not bring virtual console #4, but start hibernation!
The integrated modem is a WinModem, not supported directly by MS-DOS nor Linux. To save little money, Acer gave us a big hassle. What a shame!
Recently I was informed that there is a piece of software which can do the modem work. It is a kernel module produced - I think - by Lucent Technology. They released only the binary compiled against a 2.2.12 kernel. Not having the sources, you can experience problems with newer kernels. However I tested it successfully with 2.2.13.
The zip archive linux568.zip contains an installation script, but I suggest a do-it-yourself approach:
In brief:
unzip linux568.zip mknod /dev/ttyS14 c 62 78 chown root.dialout /dev/ttyS14 chmod 660 /dev/ttyS14 vi /etc/isapnp.conf ... isapnpn /etc/isapnp.conf insmod -f ./ltmodem.o
WinModems miss the internal processor, so a lot of time-sensitive work must be performed by the main CPU. This is very noticeable, specially if you do other work while using the modem. Just to get the idea, issue some AT&F commands in minicom, and see the CPU usage going above 1! Beside that the module itself is darned big: about 500 kb (bigger than the Linux kernel I use!).
I don't like to run closed-source software under Linux. For this and all of the above reasons, I still prefer to use my old 33.6 PCMCIA modem…
Sound support for this sound card is in kernel 2.2.x. With kernel 2.2.13 I was able to play midi and digital audio, but something still does not work: I'm unable to record from the microphone. Recently I received a mail from a Toshiba Satellite user, which reports that recording with OPL3-SAx sound card works using the Alsa audio driver. I haven't tested it.
The Acer TarvelMate 312 has an Yamaha OPL3-SAx (YMF719) chipset which implement the following devices:
Soundblaster Pro and MSS are both digital audio devices, but MSS has better capabilities than Soundblaster Pro (which handles only 8 bit audio), so we will use MSS sound driver in Linux.
The FM synthesizer is a digital instrument which generates “synthetic” notes. It is mainly used via the MPU401 MIDI interface, thus simulating a complete MIDI synthesizer.
The card is an ISA Plug and Play device, so some configuration is needed. I done that via isapnp, an utility which allows you to configure all the ISA PnP devices in the system. Isapnp sets the I/O, IRQ, DMA and memory resources used by those PnP devices.
In our notebook there are two PnP devices: the sound card and the (sic!) Win Modem. The resources I used was:
To set the resources I start isapnp /etc/isapnp.conf
at boot time. Here it is my isapnp.conf file.
This means also that the sound drivers must be compiled as modules and loaded after isapnp done its work.
I tested it with kernel 2.2.13. Basically you need to respond at the following questions (note that Soundblaster Pro is not activated, because MSS does the same better):
Sound card support, of course! Compiled as a module because I want to start it after isapnp initialized the hardware.
The driver for our sound card is included in the Open Sound System suite.
Generic OPL2/OPL3 FM synthesizer support. This generates the ad1848.o module
, needed by the specific opl3sa2.o
module.
MPU-401 support. This generates the mpu401.o
module, needed to have a midi device (used by playmidi and others).
This option is required by the specific driver of our card, it provides services for the audio device (/dev/audio
) and the mixer (used by aumix and other programs).
This is the specific driver of our sound card, it generates the opl3sa2.o
module.
This module provides a synthesizer device based on soft wavetable. A device capable of playing midi files where notes are NOT generated by FM synthesis, but generated using digital samples of true instruments. This is done in real time using a lot of CPU power. Documentation suggests to avoid it if you have less than a Pentium 133 and 16 Mb RAM. You also need to provide the instrument samples. See /usr/src/linux/Documentation/sound/README.OSS
. The module generated is softoss2.o
, the synth device provided is compatible with Gravis Ultrasound, so playmidi -g
should work.
FM synthesizer (YM3812/OPL-3) support. This generates the opl3.o
module, needed to have the FM synthesizer device.
After recompiling the kernel and installing it along with its modules you can load the sound modules with
insmod soundcore insomd sound insmod mpu401 insmod ad1848 insmod opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma2=7 insmod opl3 io=0x388 insmod softoss2
You can test if everything gone well by cat /dev/sndstat
. The output should reports an audio device “MS Sound System”, two synth devices “Yamaha OPL3” and “SoftOSS”, a midi device “MPU-401”, two mixers: OPL3-SAx and MSS (programs will refer to the last one).
Before testing the audio, run a program like aumix to set the proper master and devices volume. To record and playback digital audio you need programs like bplay and brec, which handle RAW, WAV and other formats. You should also be able to use /dev/audio
directly with commands like:
dd bs=8k count=4 < /dev/audio > sample.au cat sample.au > /dev/audio
Till now I was able only to playback audio. I don't know way recording from the microphone doesn't work. If it works for you, please drop a mail!
To play a midi file you must have a program like playmidi, run “playmidi sample.mid”. This plays the file using OPL3 FM synthesis. If, instead, you want to use the software wavetable provided by SoftOSS, put the MIDIA instrument samples in a directory called /dos/ultrasnd/midi/ and use “playmidi -g sample.mid”. The sound provided by SoftOSS is a lot better than those provided by FM synthesis, but I think that the SoftOSS module doesn't map MIDI notes to the proper instruments, so you ear good notes, but played with the wrong instrument.
MIDIA sound samples are downloadable from ftp://archive.cs.umbc.edu/pub/midia/instruments.tar.gz, they are about 8 Mb.
For people with kernel 2.0.x not much concerned with free software, there is a thing called Open Sound System, which is NOT free software. The OSS/Linux 3.9.2 package supports Yamaha OPL3-SAx. I have tested it: digital audio works the same as the free version: unable to record from the microphone too. The software wavetable is better instead, because it maps the MIDI file to the instruments in a better way.
I compiled the kernel 2.2.13 with CONFIG_APM=y
. Till now I don't have observed any strange behaviour, and cat /proc/apm
display all the info I need. I just didn't enable CONFIG_APM_CPU_IDLE
, I experienced some keyboard lock with this option. Again see my /usr/src/linux/.config
file for all the options.
The standby function (Fn+F3) works in Linux, time is properly restored after wakeup.
The hibernation function (Fn+F4) did not work in my system after I repartitioned the disk for Windows and Linux. I suppose that the default hibernate to file method works only with a single partition. Fortunately the hibernate to partition scheme works, with Windows and Linux.
The PHDISK utility is used to create the hibernation file or partition. It is installed in C:\Windows\Command\ or you can find it in the Recovery CD under \Drivers\Win98\Phdisk\.
WARNING: I THINK THAT THE UTILITY IS BUGGY, IT DESTROYED MY PARTITION TABLE LOOSING ALL MY DATA WITHOUT A WARNING!
It seems that “PHDISK /CREATE /PARTITION” uses the 4th entry of the partition table (/dev/hda4), allocating cylinders at the end of the disk, but not beyond the 1024 cylinder barrier. When I first executed the utility, I had Windows on hda2, Linux on hda3 and swap on hda4: Phdisk SIMPLY ERASED MY PARTITION TABLE, LOOSING ALL MY DATA! My be the problem was that the 4th partition was already used, and Phdisk can't manage that.
In the second, successful try I did the following:
The PHDISK utility will use the 4th primary partition marking it of type 0xA0 (IBM Thinkpad hibernation). The partition size will be equal to the RAM size plus some overhead, and it will accomodate at the end of the disk, but not after the 1024 cylinders barrier.
This means that with large disks (with more than 1024 cylinders) you have to accomodate partitions not in disk order and you have to keep the hybernation partition in the middle of the disk. Fortunately with the parted utility, it is possible to resize Linux or Windows partitions to accomodate the hybernation one.
As an example, this is the partition layout for my new 10Gb disk, notice that I have entrely removed Windows, that I have two Linux installations and that I expanded the RAM to 144 Mb:
Disk /dev/hda: 10.0 GB, 10056130560 bytes 240 heads, 63 sectors/track, 1299 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/hda1 1 1003 7582648+ 83 Linux /dev/hda3 1024 1299 2086560 5 Extended /dev/hda4 1004 1023 151200 a0 IBM Thinkpad hibernation /dev/hda5 1024 1057 257008+ 82 Linux swap /dev/hda6 1058 1299 1829488+ 83 Linux
Compiling kernel with the option CONFIG_APM_POWER_OFF=y
enables automatic power off when halt command is executed.
Hot key | Purpose | Works on Linux | Note |
---|---|---|---|
Fn+F1 | Displays the hot key list and help | Yes | |
Fn+F2 | Accesses the notebook setup utility | No | Of course: under Windows it starts a Windows application from a Windows directory, under Linux it can't. |
Fn+F3 | Puts the computer in Stanby mode | Yes | The Ethernet PC Card and the system time are properly restored. |
Fn+F4 | Puts the computer in Hibernation mode | Yes | The “hibernate to partition” must be activated. If the default “hibernate to file” scheme is choosen, it works only from Windows, not from Linux. See the APM section. The Ethernet PC Card and the system time are properly restored. |
Fn+F5 | Switches display output: internal, external or both | Partially | It works in text mode only. Under X-Window the display is selected within XF86Config file instead. See the X section. |
Fn+F6 | Turns the internal speaker on and off | Yes | |
Fn+F7 | Decreases the speaker's volume level | Yes | |
Fn+F8 | Increases the speaker's volume level | Yes | |
Fn+F9 | Decreases the screen brightness | Yes | |
Fn+F10 | Increases the screen brightness | Yes | |
Fn+F11 | Decreases the screen contrast | N/A | Not applicable to TFT display. |
Fn+F12 | Increases the screen contrast | N/A | Not applicable to TFT display. |
Fn+T | Turns the internal touchpad on and off | Yes | |
Fn+D | Turns the display backlight off to save power | Yes |
After six years I'm still using this little notebook. Just for reference I can confirm that it is possible to fit a 10 Gb disk and a 128 Mb RAM module: