Linux on a Gateway Solo 9100

This particular solo 9100 is a pentium 166mmx with 192MB of ram, 13.3" TFT with 4 megs of video ram.

video
With the vanilla redhat 7.3 install, I wasn't able to get X to run at a resolution any higher than 800x600 at 16bpp. 1024x768 would only work at 8bpp. After digging around on usenet, I found some appropriate modelines to make the screen work at the right resolution. Here is the X config file I ended up using for the 9100. The modelines in this file allow the 9100's LCD to display 1024x768x16bpp.

Section "ServerLayout"
        Identifier "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        FontPath "unix/:7100"
EndSection

Section "Module"
        Load  "dbe"             # Double-buffering
        Load  "GLcore"          # OpenGL support
        Load  "dri"             # Direct rendering infrastructure
        Load  "glx"             # OpenGL X protocol interface
        Load  "extmod"          # Misc. required extensions
        Load  "v4l"             # Video4Linux
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "XkbLayout" "us"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Device" "/dev/mouse"
        Option      "Protocol" "PS/2"
        Option      "Emulate3Buttons" "on"
        Option      "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
        Identifier "Generic Laptop Display Panel 1024x768"
        VendorName "Unknown"
        ModelName  "Unknown"
        HorizSync 31.5-48.5
        VertRefresh 40-70
        Option "dpms"

	# This dot-clock frequency works for 24-bit modes
	Modeline "1024x768"    37    1024 1025 1026 1027   768  769  770  771
	Modeline "960x720"     37     960  961  962  963   720  721  722  723
	Modeline "800x600"     37     800  801  802  803   600  601  602  603
	Modeline "640x480"     37     640  641  642  643   480  481  482  483

	# This dot-clock frequency works for 16-bit modes
	Modeline "1024x768"    56    1024 1025 1026 1027   768  769  770  771
	Modeline "960x720"     56     960  961  962  963   720  721  722  723
	Modeline "800x600"     56     800  801  802  803   600  601  602  603
	Modeline "640x480"     56     640  641  642  643   480  481  482  483

	# This dot-clock frequency works for 8-bit modes
	Modeline "1024x768"    94    1024 1025 1026 1027   768  769  770  771
	Modeline "960x720"     94     960  961  962  963   720  721  722  723
	Modeline "800x600"     94     800  801  802  803   600  601  602  603
	Modeline "640x480"     94     640  641  642  643   480  481  482  483
EndSection

Section "Device"
        Identifier "Chips & Technologies CT65554"
        Driver "chips"
        BoardName "Unknown"
	Option "no_stretch"
	Option "lcd_center"
	VideoRam 4096
EndSection

Section "Screen"
        Identifier "Screen0"
        Device "Chips & Technologies CT65554"
        Monitor "Generic Laptop Display Panel 1024x768"
        DefaultDepth 16
        Subsection "Display"
                Depth 16
                Modes "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

Section "DRI"
        Mode 0666
EndSection

high res console
Append vga=791 to the Kernel line in grub.conf will give a 1024x768 console. This is good as it makes the characters look less chunky/scaled. 792 might also work, but I haven't tried this.

network and sound
The next problem was the Ambicom pcmcia NIC I had added. It uses the same driver as other Ambicom cards, but kudzu just wouldn't have it. So I edited modules.conf by hand. The last problem was sound, and I'm not really sure how I got the right combination of irq's and dma's and hex addresses for it to work, but it does. The result is this:

alias parport_lowlevel parport_pc
alias usb-controller usb-uhci

alias eth0 pcnet_cs
alias sound-slot-0 opl3sa2
post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :
pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :
options sound dmabuf=1
alias synth0 opl3
options opl3 io=0x388
options opl3sa2 mss_io=0x530 irq=11 dma=0 dma2=1 mpu_io=0x330 io=0x370