Debian GNU/Linux on a Gateway Solo 1450
Introduction
This page will have some information about how to install Linux on a Gateway
Solo 1450. The specs of the machine are:
| Intel Celeron 1.33Ghz |
| 256 MB SDRAM |
| 30GB Ultra ATA HD |
| Integrated 1.44MB 3.5" floppy diskette drive |
| Integrated 8x/8x/24x CDRW / 8X DVD Combo |
| 14.1" XGA TFT Active Matrix |
| 4X AGP with 8MB Video Memory |
| Integrated Sound and Stereo Speakers |
| Integrated V.92 56K Modem |
| Integrated 10/100 Ethernet |
The distribution that is used for this installation is Debian GNU/Linux and it is a mixture
of the current stable release (called Woody) and the testing branch.
Preparation
The 30GB harddisk has one big Windows XP NTFS partition. I decided to
make this machine dual boot, so I had to resize the current partition.
An alternative would be to re-install Windows, on a smaller partition.
Currently no open source tools can resize a NTFS partition so I had to
use Partition Magic 8.0 for it. I shrunk the existing 30GB partition to
about 15GB, which left 15GB of used space for Linux.
Installation of base system
The next step is the installation of the base system. I used a Woody
(Debian GNU/Linux 3.0) boot disk. This disk has various kernel
configurations. I started with the 2.4 kernel but that would lock up so
I used the 2.2 IDE version. By default Debian is using the frame buffer
mode so it can display Chinese and Japanese characters in the
installation. In this mode the display is really bad and hard to
read, so I rebooted again from the disk using the standard mode:
linux video=vga16:off
Going through the debian installer, the following paritions were
created:
/dev/hda5
|
512MB (swap)
|
/dev/hda6
|
7GB (ext2, /)
|
/dev/hda7
|
8GB (ext2, /home)
|
I want to use ext3 but the 2.2.20 kernel that is used doesn't support
this. We will change this later. As part of the installation a boot
floppy will be created, will deal with the dual boot issues later.
Kernel
Now the kernel needs to be replaced. Get the source for 2.4.19 and the
following kernel patches:
Preemptible kernel: http://www.tech9.net/rml/linux/
ACPI: http://acpi.sourceforge.net/
Apply both patches and run the kernel configuration tool. I prefer
the cursus mode. I also use the Debian kernel-package
to create kernel packages. Here is my kernel
configuration.
cd /usr/src
tar -xjvf linux-2.4.19.tar.bz2
zcat acpi-20020918-2.4.19.diff.gz | patch -p0
patch -p0 < preempt-kernel-rml-2.4.19-2.patch
cd linux-2.4.19
make menuconfig
make-kpkg clean
make-kpkg --revision=custom.1.0 kernel_image
This creates a Debian package which can be installed.
Dual boot
Now the new kernel is ready it is time to make it bootable. I installed
grub in /dev/hda6. For more information on how to install grub see Grub
in Debian howto
grub-install /dev/hda6
edit /boot/grub/menu.lst and make sure groot and kopt are set right:
# groot=(hd0,5)
# kopt=root=/dev/hda6 ro vga=773
Run the update script to reflect all the changes
update-grub
The next step is to capture the boot record in a file, the file then
has to be installed on the windows partition.
dd if=/dev/hda6 of=bootsect.lnx bs=512 count=1
cd \
attrib -s -r -h boot.ini
edit boot.ini
c:\bootsect.lnx="Linux"
Get the "bootsect.lnx" file and copy it in c:\. Now were done and can
put the boot.ini file back:
copy bootsect.lnx c:\
c:
cd \
attrib +s +r +h boot.ini
Now reboot the machine and the NT loader will show two entries, the
Windows and Linux entry. When we select the Linux entry we will get the
Grub menu, select the 2.4.19 kernel and we are booting the new kernel.
Fan
The fan is controlled by ACPI and by default is always running. I've
created a little script that I put in a cronjob. It runs every five
minutes and checks for the temperature. If the temperature is lower
than 40C it will turn the fan off, it will turn the fan on when the
temperature reaches 50C. The script looks like:
#/bin/bash
# check temperature
temp=`cat /proc/acpi/thermal_zone/THRM/temperature | awk {'print $2'}`
echo "Current temperature: $temp"
# turn fan on when too warm
if [[ "$temp" -ge "50" ]];
then
echo -n 0 >/proc/acpi/fan/FAN0/state
fi
# turn fan on when too warm
if [[ "$temp" -le "40" ]];
then
echo -n 3 >/proc/acpi/fan/FAN0/state
fi
To create a cron job for it you need to add the following to
/etc/crontab:
*/5 * * * * root /usr/local/bin/gateway-fan
XFree86
I installed the latest version of XFree86 from Debian/testing.
Currently that is 4.2.1. Unfortunately there is a problem with the
support of the Intel i830 chipset. It only sees 1MB of video RAM and
that is only enough for a 640x480x16 display. With the proper driver
the screen can show 1024x768x24. More information about this problem can
be found http://www.cse.unsw.edu.au/~chak/linux/c400.html#xfree86.
This site describes the installation of a Linux on a Dell laptop that
is using the same i830 chipset.
Fortunately there is a patch available for this problem. Also the new
4.3 version of XFree86 will have a fix for this problem. I decided to
install the patch. This means that a new driver has to be compiled. For
that we need to complete source code of XFree86. I took the tar ball as
it is found in the Debian archives xfree86_4.2.1.orig.tar.gz.
The patch can be found at http://www.jongans.com/1mb-stolen-fix.diff.
Now the patch has to be applied and the driver has to be build.
tar -xzvf xfree86_4.2.1.orig.tar.gz
cd xfree-4.2.1/upstream/archives
patch -p0 < 1meg-stolen-fix.diff
cd xc
make World
Watch the make carefully. XFree86 is using the Imake system for
generating the makefiles. To moment it starts compiling code you can
stop the "make World" command. Then go to the i830 driver section and
build the driver.
cd programs/Xserver/hw/xfree86/drivers/i810
make
Now the driver, called i810_drv.o, is ready. Copy this in the driver
directory.
cp i810_drv.o /usr/X11R6/lib/modules/drivers/i810_drv.o.fix
cd /usr/X11R6/lib/modules/drivers
mv i810_drv.o i810_drv.o.orig
cp i810_drv.o.fix i810_drv.o
Now X can be installed and configured. Here is my XF86Config-4.
Ethernet
The built-in ethernet port can be controlled by the eepro100 kernel
module. This works great.
Modem
Still investigating. Ran the scanModem tool as described at http://linmodems.technion.ac.il/.
The results can be found in ModemData.txt
and ModemData2.txt.
CDRW/DVD Combo
To be able to use the CDRW we need to use the ide-scsi kernel module.
To be able to use the DVD we need to use the ide-cd module. I made this
a selection at boot time using netenv. The two netenv
scripts are, for SCSI
netenv_id=SCSI_CDROM
export PROFILE=scsi
rmmod ide-cd
modprobe ide-scsi
and for IDE:
netenv_id=IDE_CDROM
export PROFILE=ide
rmmod ide-scsi
modprobe ide-cd
The /etc/fstab has two entries of which only one is valid at the
time:
/dev/hdc /cdrom iso9660 ro,user,noauto 0 0
/dev/scd0 /cdrw iso8660 ro,user,noauto 0 0
The sound chip is the ESS Technology ES1988. This is supported by
the 2.4.19 kernel but I'm very impressed by the work done by the ALSA project, so I'm using
their drivers. The ES1988
page on their website has all the details. To build the drivers download
the alsa-driver
package.
cd /usr/src
tar -xjvf alsa-driver-0.9.0rc6.tar.bz2
cd alsa-driver-0.9.0rc6
./configure --with-sequencer=yes --with-oss=yes --with-cards=maestro3
make
make install
Then add the following modules to /etc/modules
snd-maestro3
snd-pcm-oss
snd-mixer-oss
snd-seq-oss
| Revisions: |
|
| 2002/11/29 |
Initial version |
Lolke Bijlsma