Gary E. Rafe
May 2001 (current)
February 2000 (original)
ATTENTION -- The information offered here is provided without warranty of any kind. Use it at your own
risk.
This document describes our continuing experience with the FreeBSD operating system on a Toshiba Satellite 4030CDT notebook computer. The 4030CDT is configured as follows:
| Partition | Type | Operating System |
| 1 | unused | |
| 2 | FAT16 (6) | DR-DOS 7.03 |
| 3 | FreeBSD (165) | FreeBSD 3.3-R with PAO3 patches |
| 4 | FreeBSD (165) | /home |
Additional detailed specification can be found at this hyperlink.
Update: The IBM hard disk drive was replaced under warranty in August 2000 by Toshiba Depot Service. Turn-around time for this service was 4 days.
| irq | port | Device | Description |
| 0 | -- | -- | System Timer |
| 1 | -- | atkbd0 | -- |
| 2 | -- | -- | PIC |
| 3 | -- | -- | unassigned (note 1) |
| 4 | IO_COM1 | sio0 | DB9 serial port (16550A UART) |
| 5 | -- | -- | unassigned (note 1) |
| 6 | IO_FD1 | fdc0 | Floppy diskette controller (DMA2) |
| 7 | ? | ppc0 | Parallel Port (ECP) |
| 8 | -- | -- | RTC |
| 9 | 0x3e0 | pcic0 | PCIC-compatible controller (note 2) |
| 10 | -- | -- | unassigned (note 1) |
| 11 | -- | -- | unassigned (note 3) |
| 12 | -- | psm0 | PS/2 mouse port (Logitech MouseMan) |
| 13 | IO_NPX | npx0 | Floating point unit |
| 14 | IO_WD1 | wdc0 | Primary IDE controller |
| 15 | IO_WD2 | wdc1 | Secondary IDE controller |
Notes
Update: Assigned to pcic(4) in 4.1-R.
Update: After reviewing 4.1-R kernel configurations, we found that interrupt 9 is reserved for the Intel System Management Bus device intpm(4).
We investigated the use of the OSS kernel module sound driver for FreeBSD. While it did allow us
access to /dev/mixer (and thus, use of the internal CD drive for audio discs), we found
that audio files played through /dev/dsp were not interpreted correctly. We also found the size of
the kernel module to be overly excessive for the benefit achieved. Given the size of the OSS kernel module and its
inability to drive /dev/dsp reliably, we did not pursue this method.
Update: The USB uhci(4) and pcm(4) devices share interrupt 11 on pci0 in 4.1-R.
The internal modem in the 4030CDT is a so-called winmodem, which appears to be supported only by Microsoft Windows operating systems at present. In order for PCCARD modem devices to use the resources associated with the internal modem, the internal modem must be disabled in the system's BIOS.
There have been reports from the Linux community that a kernel module driver offered by Lucent Technologies (available only as a pre-compiled binary at this hyperlink) operates properly in the 4030CDT. We are hopeful that a similar kernel module driver will be made available to the FreeBSD community.
The following 16-bit PCCARDs have been used regularly, with their respective kernel configuration entries:
In each case, actual port addresses and interrupts are defined in /dev/pccard.conf.
We experimented with the PAO3 patches for 3.3-R, dated 19991220 to drive an Adaptec SlimSCSI 1460D. While the kernel compiled without complaint, it failed to boot properly, as it attempted to mount an undefined root filesystem (immediately after mounting successfully the correct root filesystem).
The command vidcontrol -s 1 </dev/ttyv0 can be issued just prior to apm -z to prevent the resume failure described above. If the system is suspended from a shell script exec-ed by the window manager, an appropriate sleep m && vidcontrol -s n (where m is the time to sleep following the suspend command, and n is the virtual console running the X11 session) following the suspend command can restore the X11 display.
We compiled and ran a kernel with this debugging information for several days without a failed resume event. The amount of
debugging information emitted during normal operation was significant, so we modified /usr/src/sys/i386/apm/apm.c to report only the Execute APM hook messages.
Following this slight change to apm.c, resume/suspend appears to work well.
Update: We note that resumes to text mode fail occassionally when the video device is not reset correctly (multi-color vertical lines are observed on the LCD and the keyboard hangs). A hard reset is necessary to bring the system back.
Examination of /var/log/messages showed that, with no additional memory installed, the kernel reported 112K bytes less real memory than indicated by the system's BIOS. The kernel was rebuilt subsequently with the option MAXMEM=(m*1024-112) (where m is the total installed memory, in MB), and found APM suspend/resume events to work correctly again.
This hardware is not supported at present by the pcm kernel sound driver.
There have been reports from the Linux community that a kernel module driver (available as source from the following hyperlink) operates successfully on the 4030CDT. We are
hopeful that similar efforts will find their way into future FreeBSD releases.
Update: A driver for ESS Maestro sound systems became available in July 2000.
With the Xircom CM-56T PCCARD KFlex56 modem, occasional connections at 40,000+bps are observed.
This works as advertised (at the following hyperlink) although the system does not support EPP mode on the parallel port.
We have not yet investigated the use of this interface fully.
Update: USB support is greatly improved as of 4.1-R.
We upgraded the OS when 4.0-R became available in the Spring of 2000, rather than continuing with the 3.x releases to take advantage of developments with Linux emulation and device support.
Current kernel config, dmesg(8) output, and XF86Config files are available at their respective hyperlinks.
In the next sections, we describe our continued experience with various aspects of the system.
This works ``out-of-the-box'', both in polling mode and with hardware interrupt 10.
We recently purchased a USR XJ1560J (Japanese model) PCCARD modem for this system, and
soon discovered the modem's (undocumented) blacklisting ``feature'' while attempting to connect to a busy ISP.
A search of the usual Internet resources failed to uncover any direct references to this particular modem. Several
references, however, did suggest the use of (again, undocumented) S register settings. We have since
found that ATS40.1=1 appears to override the modem's NUMBER BLACKLISTED feature when a
busy number is dailed repeatedly.
Update: After the LucentTech WinModem Linux driver module was installed successfully, we removed this PCCARD device from the system.
APM also works out-of-the-box, under 4.x, although the resume problem with X and the Trident video controller remains. We use apmd(8) to handle resume events, primarily to restore audio levels to the mixer device and to restore the X display if the server is running.
We found that the vpo(4) device for parallel port Zip drives was broken for non-EPP
parallel port chip sets in 4.0-R. This prompted us to obtain a USB Zip drive and experiment with the
4030CDT's USB functionality. While we experienced some difficulties when using the umass(4) driver (e.g., occasional system crashes when attaching/detaching from the system), we found
the performance of the USB Zip drive to be significantly better than the parallel port version.
Update: A minor patch to ppb_base.c submitted on XXXX fixed the vpo device for non-EPP parallel port chip sets in 4.1-R.
As noted above, we had some success with an Iomega USB Zip drive while running 4.0-R. The umass(4) device in 4.1-R appears to be more robust, and we use it rather than the parallel port vpo(4) device.
Prior to 4.1-R, the ESS Maestro-2E audio subsystem was not supported by FreeBSD. The kernel module maestro.ko by Taku Yamamoto
appears to drive /dev/mixer, /dev/dsp (4 playback channels), and /dev/audio (4 playback channels) reliably.
Update: Support for the ESS Maestro-2E device was added to 4.3-R.
We have been pleased with the robustness and usefulness of FreeBSD on this Toshiba notebook computer. The ability to
run applications built for Linux/i386 system seamlessly is a tremendous asset.
| gary.rafe@utoledo.edu | 27 October 2001 |