This webpage was origionally here: http://xenu.phys.uit.no/~tom/OmniBook3000CTX.html, but that is a dead link. Somebody saved the page and mailed it to me since I have an OmniBook 3000. I didn't write this, I don't maintain this. /FrankB

Linux on an HP OmniBook 3000 CTX.

This is just a short (well, not so short anymore) summary of some of my experiences and tips from installing and running RedHat Linux on an HP OmniBook 3000 CTX.

Contents

The configuration

RAM
NEW! 96 MB (standard is 16 MB) I've recently upgraded to 96 MB using 64 MB of Kingston memory. For the kernel to see this new memory, I had to add the line
  append = "mem=96m"
    
to the linux entries in /etc/lilo.conf (and run lilo afterwards, naturally). I've had this memory for more than a month now, and I've had no problems with it.
HD
4 GB
Processor
Pentium 233 with MMX
Screen
13.3" TFT 1024x768
Video card
Neomagic MagicGraph NM2160 (rev 0)
Video RAM
2 MB
Sound Card
Crystal CS 4232 or similar

New!

The hibernation (save to disk) feature of the OmniBook does work under Linux, provided that no PC (PCMCIA) cards are installed. The cards do not have to be physically ejected, issuing the command cardctl eject before hibernation is sufficient.

Preparation

When I got the 'book, it was in factory default configuration, preinstalled with Microsoft Windows 95 and with the hard disk partitioned in three partition, two of about 2 GB each called C: and D: from Windows, and one ~150 MB partition for the "save to disk" feature. I advise you not to delete this partition. (On my first attempt at installation, I deleted it, and to reenable the save-to-disk feature of the computer, I had to recreate this partition using HPs phdisk program which completely reformats the entire drive. Duh!)

If you have already used Windows for a while, you might want to defrag your disk. There is a tool for that in the Win95 start menu. start->Programs->Accessories->System Tools->Disk Defragmenter

I used fips (from dosutils/ on the RedHat CD) to shrink the Win95 partition down to some 700 MB. Probably far too much, but who knows? 4 GB is still huge. After this, you may want to use scandisk to see that your Win95 partition is still OK.

The installation

Next step is the Linux installation. I installed with the CD-ROM drive in the internal bay and the floppy drive connected with the provided cable, booting from the RH boot floppy. I had the official RH 5.1 CD set and I installed from it.

I walked the RH installer, not touching much. I used Disk Druid to partition the 4G drive like this:
Partitions of my hard disk
partition size type mount point or comment
/dev/hda1 700 MB W95 FAT32 pre-existing
/dev/hda4 149 MB 0x0a save to disk partition
/dev/hda5 200 MB Linux Native /
/dev/hda6 1027 MB Linux Native /usr
/dev/hda7 127 MB Linux Swap swap
/dev/hda8 1700 MB Linux Native /home
with the /home partition simply eating whatever was left after the others had been specified. I wanted a rather large /usr partition since I intend to install Matlab from The MathWorks Inc. which eats some 170 MB in /usr/local and perhaps even Corel Word Perfect by SDC which takes up another 200 MB (low estimate) in /opt (which I symlink to /usr/local). Depending on your needs, you might want a smaller /usr partition.

In hindsight, I would probably have preferred making the root partition a primary partition (/dev/hda2) and having the /usr, swap and /home partitions in the extended partition /dev/hda3. This would let me install the boot loader in the /dev/hda2 partition and avoid touching the MBR - an advantage if I ever need to reinstall Windows. Of course, this means using fdisk to partition the disk - Disk Druid will put all Linux partitions in a single extended partition.

After selecting packages, the rest of the install went without problems.

Installing the X server

Like many other laptop computers, the OmniBook 3000 uses a Screen card from NeoMagic Corporation. Precision Insight and RedHat collaborated to release a binary-only (XBF) X server which I used during the install and have used without trouble since. I have made one change: By default, the X server will use eight bitplanes (256 colours), but the card is capable of 16 bitplanes at full resolution. You can specify the colour depth on the command line: startx -- -bpp 16 but a more permanent solution is to add the following line to the Screen section of /etc/X11/XF86Config:
    DefaultColorDepth  16

Due to the pressure from the Open Source community, NeoMagic recently decided to allow Precision Insight to release the code written for the XBF X server for the NeoMagic graphics cards, and the driver has been renamed XFCom (XFree86 Compliant). The code written for the XBF_NeoMagic server has been handed over to the XFree86 project, and I understand that support for NeoMagic is provided in XFree86 3.3.3. The XFCom_NeoMagic X server is available as rpm and gzipped tar for libc5 and glibc2 from RedHat's FTP server and several mirrors worldwide.

Here is the press release from RedHat on the matter.

Here is Precision Insight's own page on the collaboration, with download links and links to download mirrors worldwide.

Adding APM support

This has been a real headache. Even more so, since this is absolutely essential for a portable to live up to its description. This is, in broad terms, the approach I used to get within reach of a useful configuration. Using this configuration, I can suspend the machine by clicking the power button, by closing the lid or by the apm -s command. If suspended by simply closing the lid, the machine resuspends itself immediately upon waking up, but when waking it up a second time, everything is usually fine. Suspending it with a click on the power button or with apm -s avoids this problem.

The computer can be hibernated (state saved to disk and machine completely turned off -- uses no battery) by pressing Fn+F12. This will only work if you have ejected (either physically or logically using cardctl eject) all PC cards!

The computer can be set in standby mode (not as "deep sleep" as suspending it; any keypress or mouse motion will wake it up) through the apm -S command. If the computer is connected to the network, any activity on the network will wake it up.

NB!

If you have enabled BIOS password, this password must be entered whenever the computer wakes up from suspension or hibernation. In this case, only a small square of the screen will show any sign of life. (if X was running when the machine was suspended, a portion of the X screen will be visible. Otherwise, an exclamation mark icon is shown.

Built-in and external mice

The built-in mouse is a 2-button PS/2 touchpad from Synaptics. Some people are working on a driver for this touchpad, but I have not tested it yet. With the default PS/2 driver, the one that came with the distribution, the mousepad usually behaves well. Clicking by tapping, dragging and automatic motion when dragging to the edge of the pad works. It has some problems with moist fingers or callused fingertips, but nothing too serious. There is one glitch: sometimes it will suddenly start jumping the mouse cursor all over the screen and pushing buttons at random. This is most annoying. Perhaps the mouse driver mentioned above will correct this.
As a matter of fact, I'm beginning to wonder whether this is a problem with the driver or a hardware problem. I'd very much like to hear from others using this machine and/or mouse to hear if they experience anything similar.

There is a port for external keyboard/mouse on the back of the machine. I have tried plugging in an external mouse (Logitech 3-button mouse) without configuring anything. This does not work satisfactory. It has to be plugged in outside of X to do anything at all, and if you as much as touch the mousepad while it is plugged in, unpredictable behaviour results. This usually means random movement all over the screen and button-presses all over the place. Usually, the mouse cursor ends up stuck in a corner with neither mouse able to move it. I have therefore given up using this external mouse for now.

Sound support

I have now gotten sound to work in a way. My kernel is compiled with module support (but not MODVERSIONS) so getting sound to work was simply a question of loading properly compiled module into the kernel.

In later kernels than the 2.0.35 I'm using, some of the entries that need to be specified don't appear in the configuration menu, and I've not been able to make sound work with these newer kernels. Perhaps it'll be back and working in 2.2

The config settings I used for building the sound module are given below
Sound card support M
Support for Crystal CS4232 based (PnP) cards *
/dev/dsp and /dev/audio support *
CS4232 audio I/O base 530
CS4232 audio IRQ 5
CS4232 audio DMA 1
CS4232 second (duplex) DMA 0
CS4232 MIDI I/O base 330
CS4232 MIDI IRQ 9
Audio DMA buffer size 65536
The corresponding portion of the config file look like this:

#
# Sound
#
CONFIG_SOUND=m
# CONFIG_PAS is not set
# CONFIG_SB is not set
CONFIG_ADLIB=y
# CONFIG_GUS is not set
# CONFIG_MPU401 is not set
# CONFIG_UART6850 is not set
# CONFIG_PSS is not set
# CONFIG_GUS16 is not set
# CONFIG_GUSMAX is not set
# CONFIG_MSS is not set
# CONFIG_SSCAPE is not set
# CONFIG_TRIX is not set
# CONFIG_MAD16 is not set
CONFIG_CS4232=y
# CONFIG_MAUI is not set
CONFIG_AUDIO=y
CONFIG_MIDI=y
# CONFIG_YM3812 is not set
CS4232_BASE=530
CS4232_IRQ=5
CS4232_DMA=1
CS4232_DMA2=0
CS4232_MPU_BASE=330
CS4232_MPU_IRQ=9
DSP_BUFFSIZE=65536
# CONFIG_LOWLEVEL_SOUND is not set

NB!

The IRQ set during configuration must correspond to the IRQ assigned to the sound card from the BIOS setup.

All items not specifically mentioned here are not marked. With this setup, I am now able to play and record sound with the built-in speakers and microphone. The built-in microphone is located just beneath the center of the screen, in the notch above the small LCD display. It is not exactly hi-fi, but speech is recognisable.

I have not made many attempts to explore how much I can do with the sound system. I have not tried to install OSS drivers or any such. I have gotten report that MIDI support will work if I enable the selections for "Generic OPL2/OPL3 FM synthesizer support" and "MIDI interface support", but I have not had time to play with this.

Thanks to Clive Messer and Petter Reinholdtsen for pointing out obvious mistakes I had made in setting up the sound system.

Infrared (IrDA) port

I have made some attempts at using the Linux/IR project code on the OmniBook. Quoting that page:
The overall goal of this project is to incorporate an IrDATM compliant protocol stack into the Linux kernel.

Although the code is in an early stage of development, and its author warns that using it could crash your computer, I have not experienced any crashes while trying to use the modules from this distribution. (I have had kernel misbehaviour which made me reboot, though.)

In order to use Linux/IR, the first step is to enable the infrared port from the devices menu in BIOS setup. (I failed to to this, and naturally, nothing worked.)

After enabling the IR port in BIOS and assigning it IRQ 4, it showed up as tty02 or /dev/ttyS2 on my computer. With the snapshot of 1998-10-21, a friend with a Compaq Armada 7380DMT and I have made some experiments with the package. With the Armada as the IrLAN server, we managed to ping each other for up to 15 seconds at a time. With the OmniBook as the server, we had a LAN connection (ping, telnet, ssh etc.) for several minutes. After this time, the connection suddenly died and we were unable to revive it.

The bottom line is: The OmniBook 3000 CTX is able to use the IrDA kernel modules in their present state, although the IR port must be enabled in BIOS before it is available to Linux. The Linux/IR project is not in a finished state, so it is not particularly obvious to set up or use. The documentation of the project is not up to date with the code as I write this.

Admittedly, lots has happened in the Linux/IR project since last time I tried to do anything. Linux/IR is now part of the kernel source release for Linux 2.2 (as an experimental feature) and all development is currently concentrated on the 2.2 release, so I will not experiment further with this until I've upgraded to 2.2.

Complete overview of BIOS setup

This section tells you exactly how the BIOS on my computer was set up. I'm not saying this is the correct way to do it on all computers, but it works for me.
Main Time Date Quiet boot Video display device
(set to GMT) today's date enabled Auto
System devices PS/2 mouse External Fn key IDE controller FDD controller
Enabled Enabled Both Enabled
Serial port Infrared port Parallel port
Enabled, addr 2F8, IRQ 3 Enabled, mode FIR, addr 3E8, IRQ 4, DMA 3 Disabled
Audio SB I/O address WSS I/O address AdLib I/O address
Enabled 220h 530h 388h
Interrupt 1st DMA 2nd DMA
IRQ 5 DMA 1 DMA 0
MPU device I/O base Interrupt
Enabled 330h IRQ 9
Security Password on boot Password on resume
Enabled Disabled
Power Power management mode Time-out on AC Power button mode
Disabled Disabled suspend
resume on modem ring resume on time of day
Disabled Disabled
Boot 1: Hard Drive 2: CD-ROM 3: Diskette
Notes: I have fiddled with the settings in the "System Devices" menu. I had to disable the parallel port in order to enable the FDD controller. This should not be necessary.
I don't know what WSS or AdLib is, but those address settings look like the ones I use for configuring the sound module in the kernel. It appears MPU is Midi Processing Unit or something like that.
Disabling password on resume is probably less than safety-minded.
I have completely disabled the power management in BIOS, trusting Linux to do the job, but I am experimenting with "Custom" settings, using timeouts for standby and suspend, but disabling automatic hibernation, naturally.
The boot sequence is that way on purpose. Without my BIOS password, you can't easily boot something which is not already on my hard drive.

Contents of /proc/pci

PCI devices found:
  Bus  0, device   4, function  1:
    CardBus bridge: Texas Instruments PCI1131 (rev 1).
      Medium devsel.  IRQ 255.  Master Capable.  Latency=64.  Min Gnt=192.Max Lat=3.
  Bus  0, device   4, function  0:
    CardBus bridge: Texas Instruments PCI1131 (rev 1).
      Medium devsel.  IRQ 255.  Master Capable.  Latency=64.  Min Gnt=192.Max Lat=3.
  Bus  0, device   2, function  0:
    VGA compatible controller: Neomagic MagicGraph NM2160 (rev 0).
      Medium devsel.  Fast back-to-back capable.  IRQ 255.  Master Capable.  Latency=128.  Min Gnt=16.Max Lat=255.
      Prefetchable 32 bit memory at 0xfd000000.
      Non-prefetchable 32 bit memory at 0xfea00000.
      Non-prefetchable 32 bit memory at 0xfed00000.
  Bus  0, device   1, function  3:
    Bridge: Intel 82371AB PIIX4 ACPI (rev 1).
      Medium devsel.  Fast back-to-back capable.  
  Bus  0, device   1, function  2:
    USB Controller: Intel 82371AB PIIX4 USB (rev 1).
      Medium devsel.  Fast back-to-back capable.  IRQ 255.  Master Capable.  Latency=64.  
      I/O at 0xfcc0.
  Bus  0, device   1, function  1:
    IDE interface: Intel 82371AB PIIX4 IDE (rev 1).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  
      I/O at 0xfcf0.
  Bus  0, device   1, function  0:
    Bridge: Intel 82371AB PIIX4 ISA (rev 1).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  
  Bus  0, device   0, function  0:
    Host bridge: Intel 82439TX (rev 1).
      Medium devsel.  Master Capable.  Latency=32.  

Valid HTML 3.2! © 1998,1999 Tom Grydeland, All rights reserved.