Linux Migration
Ed Grochowski
Original 12-3-2005
Revised 7-4-2006
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.
Installation
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:
Section "Monitor"
DisplaySize 320 240 # mm
Identifier "Monitor0"
VendorName "Hitachi"
ModelName "SuperScan 17"
HorizSync 30.0 - 65
VertRefresh 60 - 90
Option "DPMS"
EndSection
On both desktop computers, I enabled the mouse scroll wheel:
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
EndSection
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:
Xft.antialias: 1
Xft.hinting: 1
Xft.hintstyle: hintfull
Xft.dpi: 105
Xft.rgba: none
File Systems
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.
Kernel
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 2.6.16.19 kernel:
bzip2 -d linux-2.6.16.19.tar.bz2
tar -xf linux-2.6.16.19.tar
cd linux-2.6.16.19
make mrproper
cp ../config .config
make oldconfig
make
su
make install
make modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz
cp .config /boot/config
cp System.map /boot/System.map
liloconfig
Starting from the 2.4.26 kernel, I migrated to several versions of the
2.6 kernel, the latest being 2.6.16.19. 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 exceeds 10.
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 solution!
User Accounts
User accounts are created with adduser. For security reasons,
you should create a user account for yourself rather than use the root
account.
Networking
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
/etc/inetd.conf.
I assigned static IP addresses to all machines. Instead of DHCP, I
specified my ISP's nameserver IP addresses in /etc/resolv.conf.
Hardware Devices
Dell uses widely-available components and Linux supported almost all of
the hardware devices. The table below summarizes Linux support for each
device.
| Computer | Device | Type | Driver |
| 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 2.6.16.19; 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
serial modem.
Printer
The HP Deskjet 882C printer was supported by hpijs from HP. HP
realizes that they can sell more inkjet cartridges if they provide Linux
drivers.
Unix printing is based on the Postscript language. The ghostscript
interpreter gs converts Postscript into pixels.
Digital Camera
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.
Scanner
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.
Desktop
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.
Application Software
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 mirroring.
Games
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!
Software Development
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.
Conclusion
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
system.
Trademarks are property of their respective owners.
|