In December 2004, I installed Slackware Linux 10.0 on my Dell
Dimension XPS T750r and Dell Dimension 8300 computers. Both computers
had previously run Microsoft Windows. I subsequently upgraded from
Slackware Linux 10.0 to 10.2, performed several kernel upgrades, and
added a Dell Inspiron E1505 to my computer collection. This article
summarizes my experiences in migrating from Windows to Linux.
Slackware comes on four CDs and installs in 20 minutes using the first
two CDs. I did a full install with default options. As part of the
installation, one must partition the disks with cfdisk and
configure the Linux loader lilo. On initial attempt, Linux
would not boot. Trying again with the Install to MBR option,
Linux successfully booted.
Optionally, Lilo can be configured to dual-boot Linux and Windows. I
ran a dual-boot configuration for the first month or so.
X Window System
Once installed, the next step is to configure the X Window System with
xorgsetup. My old Hitachi CM1786 monitor did not support extended
display identification data (EDID), and so I edited
/etc/X11/xorg.conf to specify monitor scanning rates:
DisplaySize 320 240 # mm
ModelName "SuperScan 17"
HorizSync 30.0 - 65
VertRefresh 60 - 90
On both desktop computers, I enabled the mouse scroll wheel:
Option "Protocol" "auto"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "4 5" # adding this enables the scroll wheel
Option "Buttons" "5" # you may need to force the number of buttons on the mouse
The X.Org drivers supported both desktop computer's video cards. 2D
features worked great; 3D features were not supported by the open source
drivers. The Inspiron E1505 required the ATI proprietary fglrx
driver to use the wide-screen display.
X has a configurable font renderer Xft. I increased the
dots-per-inch (DPI) from 96 to 105 in ~/.config/xfce4/Xft.rdb to make
fonts render at an appropriate size:
Linux file systems are specified in /etc/fstab. Since each
desktop computer has two hard disk drives, I mounted the root directory
on one drive and the /home directory on the other. This enables
installation of the operating system on the first drive without
disturbing data files on the second drive. I also created a swap
partition on the first drive.
Linux supports many file system types including NTFS and FAT. This is
invaluable to migrate data to Linux reiserfs.
The Dimension XPS T750r and Dimension 8300 required no additional kernel
parameters to use the parallel ATA (IDE) hard disks and optical disks.
The Inspiron E1505 required the kernel parameters hdc=noprobe
hdd=noprobe libata.atapi_enabled=1 to use the SATA hard disk and DVD
drive with DMA enabled.
The stock kernel is configured for uniprocessors with up to 1GByte of
memory. The Dimension 8300 with hyperthreading and 2GBytes of memory
required a kernel with SMP and HIGHMEM support enabled. A new kernel
may be created by editing the configuration file
/usr/src/linux/.config and rebuilding.
Configuring the kernel is a somewhat tricky task; expect to spend a few
tries getting a kernel that works as one intends. I eventually turned
off most kernel options that did not apply to my hardware. Once
configured, the Linux kernel is easy to build. Here are the complete
steps for unpacking and building the 220.127.116.11 kernel:
bzip2 -d linux-18.104.22.168.tar.bz2
tar -xf linux-22.214.171.124.tar
cp ../config .config
cp arch/i386/boot/bzImage /boot/vmlinuz
cp .config /boot/config
cp System.map /boot/System.map
Starting from the 2.4.26 kernel, I migrated to several versions of the
2.6 kernel, the latest being
126.96.36.199. The 2.6 kernel has improved scheduling - a load average of 5
causes the 2.4 kernel's interactive response to become sluggish, whereas
the 2.6 kernel is still very responsive even when the load average
If an error occurs, a useful technique is to cut-and-paste the error
message (from dmesg for example) into Google. Chances are near 100% that
someone else has encountered the same error message and found a
User accounts are created with adduser. For security reasons,
you should create a user account for yourself rather than use the root
Linux networking was easy to set up. Network configuration involves
running netconfig and pppsetup, and editing
/etc/ppp/options, /etc/resolv.conf, /etc/hosts, and
I assigned static IP addresses to all machines. Instead of DHCP, I
specified my ISP's nameserver IP addresses in /etc/resolv.conf.
Dell uses widely-available components and Linux supported almost all of
the hardware devices. The table below summarizes Linux support for each
|Dimension XPS T750r||Processor||Intel Pentium III 750MHz||Linux|
|Chipset||Intel 440BX, 82371AB (PIIX4)||Linux|
|VGA compatible controller||nVidia NV5M64 (RIVA TNT2 Model 64)||X.Org nv|
|Ethernet controller||Realtek Semiconductor RTL-8139||8139too|
|Multimedia audio controller||Aureal Semiconductor Vortex 2||au8830|
|Communication controller||Conexant HCF 56k Data/Fax Modem||Not supported|
|Dimension 8300||Processor||Intel Pentium 4 3.0GHz||Linux|
|Chipset||Intel 82875P, 82801EB/ER (ICH5)||Linux|
|VGA compatible controller||ATI Radeon R350 (Radeon 9800)||X.Org radeon|
|Ethernet controller||Intel 82562EZ 10/100 Ethernet Controller||eepro100|
|Multimedia audio controller||Creative Labs Sound Blaster Audigy||emu10k1|
|FireWire (IEEE 1394)||Creative Labs Sound Blaster Audigy FireWire Port||Not tested|
|Modem||Broadcom BCM4212 v90 56k modem||Not supported|
|Inspiron E1505||Processor||Intel Core Duo T2500 2.0GHz||Linux|
|Chipset||Intel 82945PM, 82801G (ICH7)||Linux|
|VGA compatible controller||ATI Mobility Radeon X1300||ATI proprietary fglrx|
|Ethernet controller||Broadcom BCM4401-B0 100Base-TX||b44|
|System peripheral||Ricoh R5C592 Memory Stick Bus Host Adapter||Not tested|
|Wireless network controller||Intel IPW3945||Intel ipw3945|
|Multimedia audio controller/Modem||Intel 82801G High Definition Audio Controller||hda driver partially functional as of 188.8.131.52; modem not supported|
In all computers the modems were problematic. Internal PCI modems
(winmodems) usually do not work under Linux because modem
manufacturers design both the hardware and software together, with the
interface between the two being proprietary. Therefore, only the
manufacturer can develop a driver. The solution was to buy an external
The HP Deskjet 882C printer was supported by hpijs from HP. HP
realizes that they can sell more inkjet cartridges if they provide Linux
Unix printing is based on the Postscript language. The ghostscript
interpreter gs converts Postscript into pixels.
Since Canon provides only Windows drivers, the Powershot A40 digital
camera had the potential for being a showstopper. Fortunately, gphoto2 provides excellent drivers for
this camera and many other models.
Another potential showstopper was the the Epson Perfection 3490 scanner,
which came with only Windows drivers. Fortunately, this scanner is
supported by SANE, Scanner
Access Now Easy. The only difficulty I encountered during the
installation was in obtaining the scanner firmware file from the
installation CD. Wine ran just enough of the installation program to
extract the firmware file before the installer crashed.
Unlike Windows which comes with one desktop environment, a Linux
distribution comes with a choice of desktop environments. In the order
that I have tried them, I have used KDE, GNOME, and XFCE. I found KDE to be
full of features; GNOME was great looking; and XFCE was very fast. Of
course, it is possible to run the same applications on any of the
desktop environments. I regularly run applications from KDE on XFCE.
Slackware Linux includes roughly 3,000 applications as counted by ls
-1 /bin /usr/bin /usr/X11/bin /usr/sbin /opt/kde/bin | wc.
I have only used a small fraction of these. Slackware did most things I
wanted to do right out of the box.
Slackware includes the KDE office suite and Abiword. I found that
KSpread 1.4.1 could read Excel 2000 spreadsheets (except for
graphs), and Abiword 2.2.9 could read Word 2000 documents (except
for drawings and some formatting). Both programs are sufficient for
many office tasks.
In addition, a great deal of Linux software is available for free
download on the Internet. I have downloaded a new kernel, Firefox,
gphoto2, glade-2, hpijs, and wine. I have installed the same software on
all three computers, and keep their hard drives in sync through periodic
This is the one area in which Linux is lacking. Fortunately, I do not
have any PC games, and so I do not miss them!
The best part about Linux is that it was created by programmers for use
by programmers. Slackware includes a rich array of development tools.
I chose Glade-2, GTK+, gcc, gdb, GNU autoconf, and make as
the primary tools to develop C and C++ programs. Slackware also
includes two very capable shells bash and tcsh, and the
GNU implementation of the traditional Unix command-line tools. A
significant advantage of open-source software is that the source code
for everything is available for reference, modification, or to build on.
Porting from Win32 to GTK+ is not difficult. I used Wine to run my old Win32 executables
side-by-side with the new GTK+ versions. Wine greatly helped the
porting process. Overall, I find GTK+ to be well-designed.
As of the time of writing, I have been running Linux exclusively for 1.5
years on my home computers. Today's Linux is a very mature operating
Trademarks are property of their respective owners.