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:

Good things about this laptop:

Things I didn't really like:

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:

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 <Crtl><Alt><BS> server abort sequence # This allows clients to receive this key event. #DontZap # Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> 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.


[ms free site] Email
Link to Home Page

Last updated on May 16th 1999. V 1.3