Chembook 9780
General info
This page only has information specific to this laptop. If you haven't come from
there, and before Emailing me, please look at the
main page for more info and specs.
Warning: There are two Chembook that go by this name. The AMD K6/Mobile
Pentium modem and the Pentium II one (9780M). I have gotten reports
that the P II model is different, and has among other things an O2Micro PCMCIA
chipset, which are known not to work well with linux.
In other words, I do not recommend buying the P II model if you plan to use
linux with it (Reported by VA Linux
Systems and Doug Morgan).
If you are wondering what the hell a Chembook is, because you've never heard
that name, you are just like I was before I got mine. They are sold by a small
store in Santa Clara, California (in the Silicon Valley), and don't let this
draw you away because they are excellent laptops, and I'm sure Hitron would be
more than happy to build a custom one for you and ship it to you.
I think they have 2 or 3 different "shells" depending on whether or not you
need swapable bays, and what CPU you want. I can't vouch for the other ones
personally, but I know someone who is using a Chembook 3300 without any problems
with linux (Nathan Myers, ncm@best.com).
Hitron has also told me that they have other people who successfully use their
laptops with linux.
On my model, I got to choose the following elements:
- Amount of memory
- Type of CPU
- Type of Battery (the floppy can be removed to insert a second battery of
equal capacity and the floppy works on the parallel port, including under
linux)
- Hard drive size (up to 8 gig).
- floppy vs LS-120 vs Zip vs second hard drive
- 24X CD-Rom vs 2X/20X DVD (includes MPEG 2 decoding card)
Good things about this laptop:
- You get what you ask (and pay) for, this is by far the best advantage.
- Two swapable bays
- Video in and out (only under windows though)
- The AMD CPU has two fans, one under the laptop to suck air, and one to
blow on the side. The laptop will not overheat and crash, even if the bottom
fan is prevented from sucking air, like when you set the laptop on a couch or
a bed
- You can choose between doze, suspend to RAM and suspend to disk, and you
do get all three at once (many other laptops based on the Phoenix bios will
only offer suspend to Ram or to disk, depending on what you selected in the
bios
Things I didn't really like:
- The sound volume is not a rolling button, it's a function key combinaison
- There is no full mute, PC speaker sound can't be muted without inserting
a headphone
- Keyboard layout sucks (backspace too small and space bar also too small
because of all the keys on the bottom row)
Tips for using the laptop with linux
I have to admit that there were a few things that weren't obvious.
BIOS
I recommend you set it up like this:
- PnP OS: yes
- IO/serial 1: enabled / 3F8-IRQ4
- IO/serial 2: enabled / 2F8-IRQ3 / FIR / DMA 3
- IO/parallel: enabled / ECP / 378-IRQ7 / DMA 0
- Audio: SB 220 / WSS 530 / AdLib 388 / MPU 330 / CTRL 100 / DMA 1 / DMA 7 /
IRQ 9
- Power Mgnt: enabled / Suspend mode: suspend / Auto Save To Disk: 1H /
Battery Low Suspend: S2D
Sound
The soundchip is an OPL3-SA2, and there are a few things you need to do to
make it work. There is no plug and play involved, you do not need to use
isapnp and pnpdump
Sound will work with the (default) OSS drivers, and with the
Alsa drivers. Note that if you use the OSS
drivers (at least OPL3-SA2, I don't know about ad1848), you'll need to make sure
that you don't warm boot after windows, you need to turn off the laptop after
using windows or the OSS sound drivers won't work. You also need press Fn+F7
once or the sound won't output anything.
From my experience, if you suspend to disk while playing sound, sometimes the
laptop will resume playing right after it left off, sometimes you will need
to stop your sound appplication, unload the modules, and reload them, and
sometimes, sound won't work until your power off the laptop.
OSS with older kernels
If you have an old kernel, you need to use the ad1848 module and you need to
put the following in /etc/conf.modules:
alias sound ad1848
alias midi opl3
options mpu401 io=0x330
options opl3 io=0x388
options ad1848 io=0x530 irq=9 dma=1
Be careful not to put this in /etc/conf.modules if you're going to use the
opl3-sa2 module, because it will prevent it from working.
OSS with newer kernels
If you have 2.0.36 or above, or 2.1.13x or better, you can use the opl3-sa2
driver, which is supposed to be better. You can put the following in your
/etc/conf.modules:
alias sound opl3sa2
alias midi opl3
options mpu401 io=0x330
options opl3 io=0x388
options sb io=0x220 irq=9 dma=1 dma16=7 mpu_io=0x330
options opl3sa2 io=0x100 mss_io=0x530 irq=9 dma=1 dma2=7 mpu_io=0x330
Alsa drivers
The alsa drivers typically work better than the OSS ones, so I recommend you
try them if you get a chance (they typically do use a little more CPU though).
They will work even if you warm boot after windows, and won't require you to
press Fn+F7 after booting.
You can put the following in your /etc/conf.modules:
alias char-major-14 snd
alias snd-minor-oss-0 snd-mixer
alias snd-minor-oss-3 snd-pcm1-oss
alias snd-minor-oss-4 snd-pcm1-oss
alias snd-minor-oss-5 snd-pcm1-oss
alias snd-minor-oss-12 snd-pcm1-oss
alias snd-card-0 snd-opl3sa
options snd snd_major=14 snd_cards_limit=1
options snd-opl3sa snd_port=0x100 snd_wss_port=0x530 snd_midi_port=0x330 snd_fm_port=0x388 snd_irq=9 snd_dma1=1 snd_dma2=7
Video
The video chipset is a C&T 65555. There were couple of things I had to do
to get 1024x768 16bpp working.
In 16bpp, the maximum dot-clock announced by Xfree 3.3.3 is 64.59 Mhz, but there
were no 1024x768 modlines in the default XF86Config generated by RedHat's
Xconfigurator that worked which such a low dotclock. I had to create the
following one:
Modeline "1024x768" 64 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
By default, the display is messed up, and with versions of Xfree prior to 3.3.3,
restore from suspend to disk doesn't work. I got Xfree 3.3.3 and set the
following options:
Option "hw_cursor"
Option "use_vclk1"
Option "suspend_hack"
If you want a complete XF86Config file, here's mine:
# File generated by XConfigurator.
# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
# **********************************************************************
# **********************************************************************
# Files section. This allows default font and rgb paths to be set
# **********************************************************************
Section "Files"
# The location of the RGB database. Note, this is the name of the
# file minus the extension (like ".txt" or ".db"). There is normally
# no need to change the default.
RgbPath "/usr/X11R6/lib/X11/rgb"
# Multiple FontPath entries are allowed (they are concatenated together)
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection
# **********************************************************************
# Server flags section.
# **********************************************************************
Section "ServerFlags"
# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging
#NoTrapSignals
# Uncomment this to disable the server abort sequence
# This allows clients to receive this key event.
#DontZap
# Uncomment this to disable the / mode switching
# sequences. This allows clients to receive these key events.
#DontZoom
EndSection
# **********************************************************************
# Input devices
# **********************************************************************
# **********************************************************************
# Keyboard section
# **********************************************************************
Section "Keyboard"
Protocol "Standard"
# when using XQUEUE, comment out the above line, and uncomment the
# following line
#Protocol "Xqueue"
AutoRepeat 500 5
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
#ServerNumLock
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#Xleds 1 2 3
#To set the LeftAlt to Meta, RightAlt key to ModeShift,
#RightCtl key to Compose, and ScrollLock key to ModeLock:
LeftAlt Meta
RightAlt Meta
ScrollLock Compose
RightCtl Control
# To disable the XKEYBOARD extension, uncomment XkbDisable.
XkbDisable
# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults). For example, for a non-U.S.
# keyboard, you will probably want to use:
# XkbModel "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
# XkbModel "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
# XkbLayout "de"
# or:
# XkbLayout "de"
# XkbVariant "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
# XkbOptions "ctrl:swapcaps"
# These are the default XKB settings for XFree86
# XkbRules "xfree86"
# XkbModel "pc101"
# XkbLayout "us"
# XkbVariant ""
# XkbOptions ""
# XkbKeycodes "xfree86"
# XkbTypes "default"
# XkbCompat "default"
# XkbSymbols "us(pc101)"
# XkbGeometry "pc"
# XkbRules "xfree86"
# XkbModel "pc101"
# XkbLayout "us"
EndSection
# **********************************************************************
# Pointer section
# **********************************************************************
Section "Pointer"
Protocol "PS/2"
Device "/dev/mouse"
# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.
# Protocol "Xqueue"
# Baudrate and SampleRate are only for some Logitech mice
# BaudRate 9600
# SampleRate 150
# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)
Emulate3Buttons
Emulate3Timeout 50
# ChordMiddle is an option for some 3-button Logitech mice
# ChordMiddle
EndSection
# **********************************************************************
# Monitor section
# **********************************************************************
# Any number of monitor sections may be present
Section "Monitor"
Identifier "LCD Panel 1024x768"
VendorName "Unknown"
ModelName "Unknown"
# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
HorizSync 31.5-48.5
# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
VertRefresh 30-100
# Modes can be specified in two formats. A compact one-line format, or
# a multi-line format.
# These two are equivalent
# ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace
# Mode "1024x768i"
# DotClock 45
# HTimings 1024 1048 1208 1264
# VTimings 768 776 784 817
# Flags "Interlace"
# EndMode
# This is a set of standard mode timings. Modes that are out of monitor spec
# are automatically deleted by the server (provided the HorizSync and
# VertRefresh lines are correct), so there's no immediate need to
# delete mode timings (unless particular mode timings don't work on your
# monitor). With these modes, the best standard mode that your monitor
# and video card can support for a given resolution is automatically
# used.
# 640x400 @ 70 Hz, 31.5 kHz hsync
Modeline "640x400" 25.175 640 664 760 800 400 409 411 450
# 640x480 @ 60 Hz, 31.5 kHz hsync
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
# 800x600 @ 56 Hz, 35.15 kHz hsync
ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
#Modeline "1024x768" 44.9 1024 1048 1208 1264 768 776 784 817 Interlace
# 640x480 @ 72 Hz, 36.5 kHz hsync
Modeline "640x480" 31.5 640 680 720 864 480 488 491 521
# 800x600 @ 60 Hz, 37.8 kHz hsync
Modeline "800x600" 40 800 840 968 1056 600 601 605 628 +hsync +vsync
# 800x600 @ 72 Hz, 48.0 kHz hsync
Modeline "800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vsync
# 1024x768 @ 60 Hz, 48.4 kHz hsync
Modeline "1024x768" 64 1024 1032 1176 1344 768 771 777 806 -hsync -vsync
# 1024x768 @ 70 Hz, 56.5 kHz hsync
Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
# 1280x1024 @ 87 Hz interlaced, 51 kHz hsync
#Modeline "1280x1024" 80 1280 1296 1512 1568 1024 1025 1037 1165 Interlace
# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823
# 1280x1024 @ 61 Hz, 64.2 kHz hsync
Modeline "1280x1024" 110 1280 1328 1512 1712 1024 1025 1028 1054
# 1280x1024 @ 74 Hz, 78.85 kHz hsync
Modeline "1280x1024" 135 1280 1312 1456 1712 1024 1027 1030 1064
# 1280x1024 @ 76 Hz, 81.13 kHz hsync
Modeline "1280x1024" 135 1280 1312 1416 1664 1024 1027 1030 1064
# Low-res Doublescan modes
# If your chipset does not support doublescan, you get a 'squashed'
# resolution like 320x400.
# 320x200 @ 70 Hz, 31.5 kHz hsync, 8:5 aspect ratio
Modeline "320x200" 12.588 320 336 384 400 200 204 205 225 Doublescan
# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio
Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan
# 320x240 @ 72 Hz, 36.5 kHz hsync
Modeline "320x240" 15.750 320 336 384 400 240 244 246 262 Doublescan
# 400x300 @ 56 Hz, 35.2 kHz hsync, 4:3 aspect ratio
ModeLine "400x300" 18 400 416 448 512 300 301 602 312 Doublescan
# 400x300 @ 60 Hz, 37.8 kHz hsync
Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan
# 400x300 @ 72 Hz, 48.0 kHz hsync
Modeline "400x300" 25 400 424 488 520 300 319 322 333 Doublescan
# 480x300 @ 56 Hz, 35.2 kHz hsync, 8:5 aspect ratio
ModeLine "480x300" 21.656 480 496 536 616 300 301 302 312 Doublescan
# 480x300 @ 60 Hz, 37.8 kHz hsync
Modeline "480x300" 23.890 480 496 576 632 300 301 303 314 Doublescan
# 480x300 @ 63 Hz, 39.6 kHz hsync
Modeline "480x300" 25 480 496 576 632 300 301 303 314 Doublescan
# 480x300 @ 72 Hz, 48.0 kHz hsync
Modeline "480x300" 29.952 480 504 584 624 300 319 322 333 Doublescan
EndSection
# **********************************************************************
# Graphics device section
# **********************************************************************
# Any number of graphics device sections may be present
Section "Device"
Identifier "Generic VGA"
VendorName "Unknown"
BoardName "Unknown"
Chipset "generic"
# VideoRam 256
# Clocks 25.2 28.3
EndSection
# Device configured by Xconfigurator:
Section "Device"
Identifier "65555"
VendorName "Unknown"
BoardName "Unknown"
#VideoRam 2048
# Option "noaccel"
# Option "no_bitblt"
# Option "xaa_no_color_exp"
# Option "xaa_benchmark"
Option "hw_cursor"
# Option "sync_on_green"
# Option "fast_dram"
Option "use_vclk1"
# Textclockfreq 25.175
# Option "nolinear"
# MemBase 0x03b00000
# Device section for C&T cards.
Option "suspend_hack"
# Option "STN"
#Option "no_stretch"
#Option "lcd_center"
# Option "use_modeline"
#Option "fix_panel_size"
# videoram 512
# Insert Clocks lines here if appropriate
EndSection
# **********************************************************************
# Screen sections
# **********************************************************************
# The Colour SVGA server
Section "Screen"
Driver "svga"
# Use Device "Generic VGA" for Standard VGA 320x200x256
#Device "Generic VGA"
Device "65555"
Monitor "LCD Panel 1024x768"
Subsection "Display"
Depth 8
# Omit the Modes line for the "Generic VGA" device
Modes "1024x768" "800x600" "640x480" "480x300" "400x300" "320x240" "320x200"
#ViewPort 0 0
# Use#Virtual 320 200 for Generic VGA
#Virtual 1024 768
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480" "480x300" "400x300" "320x240" "320x200"
#ViewPort 0 0
#Virtual 1024 768
EndSubsection
EndSection
# The 16-color VGA server
Section "Screen"
Driver "vga16"
Device "Generic VGA"
Monitor "LCD Panel 1024x768"
Subsection "Display"
Modes "1024x768" "800x600" "640x480" "480x300" "400x300" "320x240" "320x200"
#ViewPort 0 0
#Virtual 800 600
EndSubsection
EndSection
# The Mono server
Section "Screen"
Driver "vga2"
Device "Generic VGA"
Monitor "LCD Panel 1024x768"
Subsection "Display"
Modes "1024x768" "800x600" "640x480" "480x300" "400x300" "320x240" "320x200"
#ViewPort 0 0
#Virtual 800 600
EndSubsection
EndSection
# The accelerated servers (S3, Mach32, Mach8, 8514, P9000, AGX, W32, Mach64
# I128, and S3V)
Section "Screen"
Driver "accel"
Device "65555"
Monitor "LCD Panel 1024x768"
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480" "480x300" "400x300" "320x240" "320x200"
#ViewPort 0 0
#Virtual 1024 768
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480" "480x300" "400x300" "320x240" "320x200"
#ViewPort 0 0
#Virtual 1024 768
EndSubsection
EndSection
I/O
DMA
0: ECP
1: MS Sound System
2: floppy
3: IrDA
4: cascade
5: free
6: free
7: MS Sound System
Interrupts
0: timer
1: keyboard
2: cascade
3: serial 2 (IrDA)
4: serial 1
5: PCMCIA card 1
6: floppy
7: printer (ECP)
9: MS Sound System / PCMCIA card 2
10: PCMCIA ctrl / MS Sound System
11: USB / free
12: PS/2 Mouse
13: fpu
14: ide0
15: ide1
PCMCIA
I use pcmcia-cs 3.0.6, but some if not most older versions should also work,
however they will not support as many PCMCIA cards
/etc/pcmcia/config.opts
#
# Local PCMCIA Configuration File
#
# System resources available for PCMCIA devices
#
include port 0x100-0x4ff, port 0x1000-0x17ff
include memory 0xc0000-0xfffff, memory 0xa0000000-0xa0ffffff
#
# Extra port range for IBM Token Ring
#
include port 0xa00-0xaff
#
# Resources we should not use, even if they appear to be available
#
# First built-in serial port
exclude irq 4
# Second built-in serial port
exclude irq 3
# First built-in parallel port
exclude irq 7
# Sound
#exclude irq 10
exclude irq 9
# Mouse
exclude irq 12
# Card 1 and Card 2
#reserve irq 5, irq 9
reserve irq 5
#
# Options for loadable modules
#
# To fix sluggish network with IBM ethernet adapter...
#module "pcnet_cs" opts "mem_speed=600"
#
# Options for Xircom Netwave driver...
#module "netwave_cs" opts "domain=0x100 scramble_key=0x0"
Interrupt driven or polling
If you do not use windows, you can use IRQ 10 instead of IRQ 9 for the sound
card because the PCMCIA drivers can be configured (it's automatic if I remember
well) to poll the controller and not use an interrupt. This unfortunately won't
work with windows which insists on using IRQ 10, so you can only use IRQ 10 for
sound, and free IRQ 9 only if you don't plan to use windows at all.
If you want to go ahead, you can use the commented lines in the file above
to replace the active ones.
The reason why you'd want to do that is to have both IRQ 5 and 9 available
for PCMCIA cards, otherwise you won't be able to use two cards which use and
interrupt at the same time.
Email
Link to Home Page
Last updated on May 16th 1999. V 1.3